All functions:
  Elements:
  - 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:
    - hpack_dht_alloc
    - free
    - malloc
    - hpack_decode_frame
    - memcpy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: parse_cfg
      Src: /src/fuzz_cfg_parser.c:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/fuzz_cfg_parser.c
    functionUses: 0
    functionsReached:
    - parse_cfg
    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_finish
    - AN
    - VSB_putc
    - AZ
    - vtc_fatal
    - vct_issp
    - VSB_new_auto
    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
    - AN
    - strcmp
    - AZ
    - VRE_error
    - VNUM
    - isgreaterequal
    - VRE_free
    - isless
    - VSB_init
    - VSB_fini
    - vtc_fatal
    - VRE_compile
    - isgreater
    - islessequal
    - strtoul
    - 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:
    - vtc_log
    - wait4
    - WCOREDUMP
    - assert
    - WIFSIGNALED
    - vtc_fatal
    - WIFEXITED
    - strerror
    - WTERMSIG
    - WEXITSTATUS
    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
    - read
    - VSB_bcat
    - strerror
    - vtc_dump
    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:
    - memset
    - pthread_self
    - pthread_join
    - VTIM_sleep
    - PTOK
    - pthread_equal
    - poll
    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:
    - vtc_log
    - strlen
    - VCLI_ReadResult
    - free
    - strerror
    - varnish_fatal
    - vtc_dump
    - write
    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:
    - vtc_log
    - strcmp
    - free
    - VTIM_sleep
    - varnish_ask_cli
    - varnish_fatal
    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:
    - vtc_log
    - strcmp
    - free
    - VTIM_sleep
    - varnish_ask_cli
    - varnish_fatal
    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_finish
    - VSL_CLIENT
    - VSL_DeleteCursor
    - VTIM_sleep
    - VSL_New
    - VSL_Delete
    - VSB_destroy
    - AZ
    - VSL_Error
    - VSL_BACKEND
    - VSM_Status
    - VSB_new_auto
    - VSB_data
    - VSB_quote
    - AN
    - VSL_LEN
    - CAST_OBJ_NOTNULL
    - VSL_CDATA
    - vtc_log
    - VSL_ID
    - VSB_clear
    - VSL_ResetError
    - VSL_CursorVSM
    - VSL_Next
    - VSL_TAG
    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:
    - ALLOC_OBJ
    - vtc_logopen
    - strdup
    - AN
    - VTAILQ_INSERT_TAIL
    - AZ
    - VSB_new_auto
    - macro_expandf
    - bprintf
    - system
    - VSB_destroy
    - VSB_data
    - REPLACE
    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:
    - vtc_logclose
    - VSM_Destroy
    - FREE_OBJ
    - free
    - CHECK_OBJ_NOTNULL
    - VSB_destroy
    - VSC_Destroy
    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: (dup2(1, 2) == 2)
      pos:
        line_end: 496
        line_start: 496
        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: (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(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: (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:
    - VSB_finish
    - VCLI_AuthResponse
    - assert
    - exit
    - VSUB_closefrom
    - VTCP_myname
    - execl
    - VSB_cat
    - closefd
    - fork
    - VSB_destroy
    - strcat
    - poll
    - varnish_fatal
    - VSM_Arg
    - dup2
    - AZ
    - open
    - macro_isdef
    - pipe
    - bstrcpy
    - macro_def
    - bprintf
    - VSM_New
    - VSB_data
    - VSB_new_auto
    - memset
    - AN
    - VSB_putc
    - pthread_create
    - accept
    - varnish_ask_cli
    - macro_expand
    - VTCP_listen_on
    - VSC_New
    - vtc_log
    - VSB_printf
    - VSM_Attach
    - macro_cat
    - free
    - PTOK
    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
    - AN
    - strcmp
    - macro_def
    - bprintf
    - strchr
    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:
    - wait_running
    - vtc_log
    - VARNISH_LAUNCH
    - varnish_listen
    - free
    - VTIM_sleep
    - varnish_ask_cli
    - varnish_fatal
    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:
    - vtc_log
    - VARNISH_LAUNCH
    - wait_stopped
    - varnish_ask_cli
    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:
    - AN
    - pthread_join
    - vtc_wait4
    - closefd
    - PTOK
    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:
    - vtc_log
    - varnish_cleanup
    - varnish_ask_cli
    - varnish_stop
    - varnish_fatal
    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:
    - vtc_log
    - VARNISH_LAUNCH
    - free
    - varnish_ask_cli
    - vjsn_delete
    - vjsn_parse
    - varnish_fatal
    linkageType: ''
    returnType: void
    signature: void varnish_cli_json(struct varnish *v, const char *cli)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:803,1
    - Dst: VRE_compile
      Src: /src/VTest2/src/vtc_varnish.c:805,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:807,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_varnish.c:807,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:808,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_varnish.c:808,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:809,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:809,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_varnish.c:810,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:811,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:815,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:816,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:818,1
    - Dst: VRE_match
      Src: /src/VTest2/src/vtc_varnish.c:820,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:822,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_varnish.c:822,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:823,1
    - Dst: VRE_error
      Src: /src/VTest2/src/vtc_varnish.c:823,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:824,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:824,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_varnish.c:825,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:826,1
    - Dst: VRE_free
      Src: /src/VTest2/src/vtc_varnish.c:829,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - v
    - cli
    - exp
    - re
    argTypes:
    - struct varnish*
    - char*
    - unsigned
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 794
    functionDepth: 2
    functionLinenumber: 794
    functionLinenumberEnd: 832
    functionName: varnish_cli
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - VARNISH_LAUNCH
    - VSB_finish
    - AN
    - AZ
    - VRE_error
    - VRE_free
    - VSB_init
    - VSB_fini
    - free
    - VRE_compile
    - varnish_ask_cli
    - VRE_match
    - varnish_fatal
    linkageType: ''
    returnType: void
    signature: void varnish_cli(struct varnish *v, const char *cli, unsigned exp,
      const char *re)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: VARNISH_LAUNCH
      Src: /src/VTest2/src/vtc_varnish.c:844,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_varnish.c:845,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:846,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:848,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:850,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:850,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:852,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:852,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_varnish.c:854,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:855,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:856,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:856,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_destroy
      Src: /src/VTest2/src/vtc_varnish.c:860,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:861,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:863,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:864,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:866,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:867,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: 868
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 868
    functionName: varnish_vcl
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - VARNISH_LAUNCH
    - VSB_printf
    - VSB_finish
    - AN
    - VSB_clear
    - AZ
    - VSB_data
    - varnish_ask_cli
    - VSB_destroy
    - VSB_new_auto
    - varnish_fatal
    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:880,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_varnish.c:881,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:882,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_varnish.c:884,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:885,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:887,1
    - Dst: cmd_server_gen_vcl
      Src: /src/VTest2/src/vtc_varnish.c:889,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:891,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:891,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:893,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:894,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:895,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:895,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:897,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:897,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:899,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:900,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:901,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_varnish.c:903,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_varnish.c:904,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:905,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_varnish.c:905,1
    - Dst: varnish_ask_cli
      Src: /src/VTest2/src/vtc_varnish.c:906,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_varnish.c:906,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_varnish.c:907,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:908,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_varnish.c:909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - v
    - vcl
    argTypes:
    - struct varnish*
    - char*
    assertStmts:
    - condition: (u == CLIS_OK)
      pos:
        line_end: 906
        line_start: 906
        source_file: /src/VTest2/src/vtc_varnish.c
    constantsTouched: []
    func_position:
      end: 910
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 910
    functionName: varnish_vclbackend
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VARNISH_LAUNCH
    - VSB_printf
    - VSB_finish
    - AN
    - VSB_clear
    - assert
    - AZ
    - VSB_data
    - varnish_ask_cli
    - VSB_destroy
    - VSB_new_auto
    - varnish_fatal
    - cmd_server_gen_vcl
    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:932,1
    - Dst: VSC_Value
      Src: /src/VTest2/src/vtc_varnish.c:934,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:936,1
    - Dst: fnmatch
      Src: /src/VTest2/src/vtc_varnish.c:937,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:941,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - priv
    - pt
    argTypes:
    - void*
    - struct VSC_point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 943
    functionName: do_stat_dump_cb
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - VSC_Value
    - fnmatch
    - strcmp
    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:950,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_varnish.c:951,1
    - Dst: VSM_Status
      Src: /src/VTest2/src/vtc_varnish.c:954,1
    - Dst: VSC_Iter
      Src: /src/VTest2/src/vtc_varnish.c:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - v
    - arg
    argTypes:
    - struct varnish*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 956
    functionName: varnish_vsc
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VSM_Status
    - VARNISH_LAUNCH
    - memset
    - VSC_Iter
    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:977,1
    - Dst: fnmatch
      Src: /src/VTest2/src/vtc_varnish.c:978,1
    - Dst: fnmatch
      Src: /src/VTest2/src/vtc_varnish.c:982,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - pattern
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 983
    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:993,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:994,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:994,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:995,1
    - Dst: VSC_Value
      Src: /src/VTest2/src/vtc_varnish.c:996,1
    - Dst: stat_match
      Src: /src/VTest2/src/vtc_varnish.c:1003,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1004,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1004,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1005,1
    - Dst: VSC_Value
      Src: /src/VTest2/src/vtc_varnish.c:1006,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - priv
    - pt
    argTypes:
    - void*
    - struct VSC_point*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1011
    functionName: do_expect_cb
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VSC_Value
    - AN
    - strcmp
    - AZ
    - stat_match
    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:1024,1
    - Dst: ZERO_OBJ
      Src: /src/VTest2/src/vtc_varnish.c:1025,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1030,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1032,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1033,1
    - Dst: strtoumax
      Src: /src/VTest2/src/vtc_varnish.c:1034,1
    - Dst: usleep
      Src: /src/VTest2/src/vtc_varnish.c:1043,1
    - Dst: VSM_Status
      Src: /src/VTest2/src/vtc_varnish.c:1044,1
    - Dst: VSC_Iter
      Src: /src/VTest2/src/vtc_varnish.c:1046,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1053,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1056,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1057,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1058,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1059,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1060,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1061,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1063,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1068,1
    - Dst: VSM_Error
      Src: /src/VTest2/src/vtc_varnish.c:1068,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:1072,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1075,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:1080,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1083,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 2
    argNames:
    - v
    - av
    argTypes:
    - struct varnish*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1086
    functionName: varnish_expect
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - usleep
    - strtoumax
    - VARNISH_LAUNCH
    - vtc_log
    - AN
    - strcmp
    - ZERO_OBJ
    - AZ
    - VSC_Iter
    - VSM_Status
    - VSM_Error
    - varnish_fatal
    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:1093,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/src/vtc_varnish.c:1096,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - struct varnish*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1097
    functionName: vsl_catchup
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - VARNISH_LAUNCH
    - VTIM_sleep
    linkageType: ''
    returnType: void
    signature: void vsl_catchup(struct varnish *v)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_varnish.c:1237,1
    - Dst: varnish_wait
      Src: /src/VTest2/src/vtc_varnish.c:1239,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_varnish.c:1240,1
    - Dst: varnish_delete
      Src: /src/VTest2/src/vtc_varnish.c:1241,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1246,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1246,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_varnish.c:1249,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_varnish.c:1250,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1251,1
    - Dst: varnish_new
      Src: /src/VTest2/src/vtc_varnish.c:1254,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1261,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1262,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1263,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:1264,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_varnish.c:1265,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1271,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1272,1
    - Dst: varnish_cleanup
      Src: /src/VTest2/src/vtc_varnish.c:1273,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1276,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1277,1
    - Dst: varnish_cli
      Src: /src/VTest2/src/vtc_varnish.c:1278,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1282,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1283,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1284,1
    - Dst: varnish_cli
      Src: /src/VTest2/src/vtc_varnish.c:1285,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_varnish.c:1285,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1289,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1290,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1291,1
    - Dst: varnish_cli
      Src: /src/VTest2/src/vtc_varnish.c:1292,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1296,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1297,1
    - Dst: varnish_cli_json
      Src: /src/VTest2/src/vtc_varnish.c:1298,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1302,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1303,1
    - Dst: varnish_cli
      Src: /src/VTest2/src/vtc_varnish.c:1304,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1308,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1310,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1311,1
    - Dst: varnish_vcl
      Src: /src/VTest2/src/vtc_varnish.c:1312,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc_varnish.c:1313,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1314,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_varnish.c:1318,1
    - Dst: free
      Src: /src/VTest2/src/vtc_varnish.c:1321,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1325,1
    - Dst: varnish_expect
      Src: /src/VTest2/src/vtc_varnish.c:1327,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1331,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_varnish.c:1332,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1336,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1337,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1338,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_varnish.c:1339,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1343,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1344,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_varnish.c:1345,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_varnish.c:1346,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1350,1
    - Dst: varnish_start
      Src: /src/VTest2/src/vtc_varnish.c:1351,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1354,1
    - Dst: varnish_stop
      Src: /src/VTest2/src/vtc_varnish.c:1355,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1358,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1359,1
    - Dst: strtod
      Src: /src/VTest2/src/vtc_varnish.c:1360,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1364,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1365,1
    - Dst: varnish_vcl
      Src: /src/VTest2/src/vtc_varnish.c:1366,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1370,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1371,1
    - Dst: varnish_vclbackend
      Src: /src/VTest2/src/vtc_varnish.c:1372,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1376,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_varnish.c:1377,1
    - Dst: varnish_vsc
      Src: /src/VTest2/src/vtc_varnish.c:1378,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1382,1
    - Dst: wait_stopped
      Src: /src/VTest2/src/vtc_varnish.c:1383,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1386,1
    - Dst: wait_running
      Src: /src/VTest2/src/vtc_varnish.c:1387,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1390,1
    - Dst: varnish_wait
      Src: /src/VTest2/src/vtc_varnish.c:1391,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_varnish.c:1394,1
    - Dst: vsl_catchup
      Src: /src/VTest2/src/vtc_varnish.c:1395,1
    - Dst: varnish_fatal
      Src: /src/VTest2/src/vtc_varnish.c:1398,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 157
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1228
    functionDepth: 5
    functionLinenumber: 1228
    functionLinenumberEnd: 1400
    functionName: cmd_varnish
    functionSourceFile: /src/VTest2/src/vtc_varnish.c
    functionUses: 0
    functionsReached:
    - varnish_wait
    - VSB_cat
    - atoi
    - varnish_vsc
    - varnish_stop
    - varnish_fatal
    - strstr
    - varnish_start
    - strcmp
    - varnish_cli
    - AZ
    - VTAILQ_FOREACH_SAFE
    - wait_stopped
    - VTAILQ_FOREACH
    - varnish_delete
    - varnish_new
    - varnish_cleanup
    - wait_running
    - AN
    - VTAILQ_REMOVE
    - varnish_expect
    - varnish_vcl
    - strtoul
    - vtc_log
    - strtod
    - VTC_CHECK_NAME
    - varnish_vclbackend
    - free
    - vsl_catchup
    - varnish_cli_json
    - REPLACE
    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:
    - ALLOC_OBJ
    - REPLACE
    - AN
    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:
    - TAKE_OBJ_NOTNULL
    - REPLACE
    - FREE_OBJ
    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:
    - CHECK_OBJ_NOTNULL
    - AN
    - atoi
    - strcmp
    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:109,1
    - Dst: http_process
      Src: /src/VTest2/src/vtc_sess.c:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - vl
    - vsp
    - spec
    - sock
    - sfd
    - addr
    argTypes:
    - struct vtclog*
    - struct vtc_sess*
    - char*
    - int
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: sess_process
    functionSourceFile: /src/VTest2/src/vtc_sess.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - http_process
    linkageType: ''
    returnType: int
    signature: "int 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:123,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_sess.c:125,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_sess.c:128,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_sess.c:129,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_sess.c:130,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_sess.c:132,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_sess.c:133,1
    - Dst: struct thread_arg::conn_f
      Src: /src/VTest2/src/vtc_sess.c:137,1
    - Dst: sess_process
      Src: /src/VTest2/src/vtc_sess.c:138,1
    - Dst: struct thread_arg::disc_f
      Src: /src/VTest2/src/vtc_sess.c:141,1
    - Dst: struct thread_arg::disc_f
      Src: /src/VTest2/src/vtc_sess.c:144,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_sess.c:145,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_sess.c:146,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_sess.c:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts:
    - condition: (vsp->repeat > 0)
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/VTest2/src/vtc_sess.c
    constantsTouched: []
    func_position:
      end: 149
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 149
    functionName: sess_thread
    functionSourceFile: /src/VTest2/src/vtc_sess.c
    functionUses: 0
    functionsReached:
    - vtc_logopen
    - vtc_log
    - vtc_logclose
    - assert
    - sess_process
    - struct thread_arg::conn_f
    - FREE_OBJ
    - struct thread_arg::disc_f
    - CAST_OBJ_NOTNULL
    - pthread_cleanup_push
    - CHECK_OBJ_NOTNULL
    - pthread_cleanup_pop
    linkageType: ''
    returnType: void
    signature: 'void *

      sess_thread(void *priv)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:165,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_sess.c:166,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:167,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:168,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:169,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_sess.c:170,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_sess.c:171,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_sess.c:180,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_sess.c:180,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: 182
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 182
    functionName: Sess_Start_Thread
    functionSourceFile: /src/VTest2/src/vtc_sess.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - AN
    - pthread_create
    - PTOK
    - CHECK_OBJ_NOTNULL
    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:
    - ALLOC_OBJ
    - vtc_logopen
    - AN
    - VTAILQ_INSERT_TAIL
    - pthread_mutex_unlock
    - VTC_CHECK_NAME
    - Sess_New
    - bprintf
    - PTOK
    - REPLACE
    - pthread_mutex_lock
    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:
    - vtc_logclose
    - Sess_Destroy
    - FREE_OBJ
    - free
    - macro_undef
    - CHECK_OBJ_NOTNULL
    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
    - VUS_bind
    - AN
    - closefd
    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:
    - VUS_resolver
    - unlink
    - assert
    - vtc_fatal
    - macro_def
    - strerror
    - umask
    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:
    - AN
    - assert
    - VTCP_name
    - VSA_Get_Proto
    - macro_def
    - bprintf
    - VSA_getsockname
    - VTCP_listen_on
    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:
    - server_listen_tcp
    - VUS_is
    - VTCP_close
    - vtc_fatal
    - CHECK_OBJ_NOTNULL
    - server_listen_uds
    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
    - VUS_is
    - accept
    - vtc_fatal
    - strerror
    - CAST_OBJ_NOTNULL
    - VTCP_hisname
    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:
    - vtc_log
    - VTCP_close
    - VTCP_Check
    - shutdown
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - strerror
    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:
    - CHECK_OBJ_NOTNULL
    - server_listen
    - vtc_log
    - server_start_thread
    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:
    - vtc_logopen
    - vtc_log
    - vtc_logclose
    - assert
    - VTCP_close
    - sess_process
    - VTCP_Check
    - shutdown
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - pthread_cleanup_push
    - strerror
    - pthread_cleanup_pop
    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:
    - vtc_logopen
    - vtc_log
    - vtc_logclose
    - assert
    - accept
    - PTOK
    - pthread_create
    - NEEDLESS
    - return
    - server_new
    - bstrcpy
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - pthread_cleanup_push
    - strerror
    - bprintf
    - pthread_cleanup_pop
    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:
    - vtc_log
    - server_listen
    - pthread_create
    - PTOK
    - CHECK_OBJ_NOTNULL
    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:
    - vtc_log
    - pthread_cancel
    - VTCP_close
    - pthread_join
    - PTOK
    - CHECK_OBJ_NOTNULL
    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
    - pthread_join
    - vtc_fatal
    - PTOK
    - CHECK_OBJ_NOTNULL
    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:
    - VUS_is
    - VSB_printf
    - pthread_mutex_unlock
    - VTAILQ_FOREACH
    - PTOK
    - pthread_mutex_lock
    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:
    - VUS_is
    - VSB_printf
    - pthread_mutex_unlock
    - VTAILQ_FOREACH
    - INCOMPL
    - PTOK
    - pthread_mutex_lock
    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:
    - server_new
    - vtc_fatal
    - server_wait
    - VTAILQ_FIRST
    - pthread_mutex_unlock
    - VTCP_close
    - strcmp
    - AZ
    - VTAILQ_FOREACH
    - bprintf
    - pthread_mutex_lock
    - CHECK_OBJ_ORNULL
    - server_dispatch
    - pthread_cancel
    - VTAILQ_REMOVE
    - server_start
    - Sess_GetOpt
    - CHECK_OBJ_NOTNULL
    - server_break
    - server_delete
    - PTOK
    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_row < pp->nlin)
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (pos->tp_col < pp->ncol)
      pos:
        line_end: 124
        line_start: 124
        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:
    - vtc_fatal
    - strerror
    - CAST_OBJ_NOTNULL
    - vtc_dump
    - write
    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:
    - term_resize
    - CAST_OBJ_NOTNULL
    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:
    - vtc_log
    - teken_get_cursor
    - 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
    - AN
    - teken_set_winsize
    - free
    - calloc
    - memcpy
    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:
    - strlen
    - memcmp
    - assert
    - strstr
    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:
    - usleep
    - vtc_log
    - pthread_mutex_unlock
    - vtc_fatal
    - strlen
    - VTIM_sleep
    - term_find_text
    - PTOK
    - strtoul
    - pthread_mutex_lock
    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
    - strtoul
    - vtc_fatal
    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_finish
    - VRE_free
    - vtc_fatal
    - VTIM_sleep
    - VSB_destroy
    - pthread_mutex_unlock
    - AZ
    - VSB_init
    - VSB_bcat
    - VRE_compile
    - VSB_data
    - VSB_new_auto
    - pthread_mutex_lock
    - AN
    - VSB_putc
    - VRE_match
    - vtc_log
    - VRE_error
    - VSB_fini
    - PTOK
    - strtoul
    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_256to16
    - teken_get_defattr_cons25
    - teken_get_winsize
    - teken_get_sequence
    - teken_set_cursor
    - teken_set_curattr
    - teken_get_curattr
    - teken_256to8
    - teken_set_defattr
    - 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:
    - ALLOC_OBJ
    - vtc_logopen
    - pthread_mutex_init
    - AN
    - VTAILQ_INSERT_TAIL
    - process_coverage
    - PROCESS_EXPAND
    - AZ
    - bprintf
    - system
    - teken_init
    - PTOK
    - term_resize
    - REPLACE
    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
    - vtc_logclose
    - FREE_OBJ
    - free
    - PTOK
    - CHECK_OBJ_NOTNULL
    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:
    - vtc_dump
    - CAST_OBJ_NOTNULL
    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:
    - write
    - vtc_log
    - assert
    - pthread_mutex_unlock
    - read
    - VLU_Feed
    - teken_input
    - vtc_hexdump
    - CAST_OBJ_NOTNULL
    - PTOK
    - vtc_dump
    - pthread_mutex_lock
    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:
    - write
    - vtc_log
    - assert
    - pthread_mutex_unlock
    - read
    - CAST_OBJ_NOTNULL
    - PTOK
    - vtc_dump
    - pthread_mutex_lock
    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_stderr >= 0)
      pos:
        line_end: 614
        line_start: 614
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (p->f_stdout >= 0)
      pos:
        line_end: 612
        line_start: 612
        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:
    - assert
    - closefd
    - vtc_fatal
    - VLU_New
    - VEV_Alloc
    - strerror
    - macro_undef
    - VLU_Destroy
    - pthread_cleanup_pop
    - VEV_Once
    - pthread_mutex_unlock
    - open
    - AZ
    - VEV_Destroy
    - pthread_cleanup_push
    - pthread_mutex_lock
    - VEV_New
    - AN
    - vtc_wait4
    - CAST_OBJ_NOTNULL
    - VEV_Start
    - PTOK
    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:
    - vtc_log
    - ioctl
    - memset
    - 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:
    - vtc_log
    - memset
    - cfsetispeed
    - cfsetospeed
    - 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: (slave == STDIN_FILENO)
      pos:
        line_end: 755
        line_start: 755
        source_file: /src/VTest2/src/vtc_process.c
    - condition: (master >= 0)
      pos:
        line_end: 740
        line_start: 740
        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
    - condition: (write(STDERR_FILENO, "+", 1) == 1)
      pos:
        line_end: 773
        line_start: 773
        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: (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
    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:
    - ptsname
    - getpid
    - assert
    - exit
    - VSUB_closefrom
    - unsetenv
    - execl
    - read
    - closefd
    - close
    - vtc_fatal
    - fork
    - strerror
    - setsid
    - VSB_destroy
    - dup2
    - AZ
    - open
    - pipe
    - macro_def
    - VSB_data
    - grantpt
    - write
    - AN
    - pthread_create
    - process_init_term
    - unlockpt
    - CHECK_OBJ_NOTNULL
    - macro_expand
    - vtc_log
    - setenv
    - ioctl
    - PTOK
    - posix_openpt
    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
    - vtc_log
    - pthread_join
    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:
    - vtc_log
    - AN
    - pthread_mutex_unlock
    - strcmp
    - vtc_fatal
    - kill
    - strerror
    - PTOK
    - CHECK_OBJ_NOTNULL
    - strtoul
    - pthread_mutex_lock
    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
    - vtc_fatal
    - strlen
    - strerror
    - write
    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:
    - assert
    - AZ
    - VSB_len
    - vtc_fatal
    - vtc_hexdump
    - VSB_tofile
    - VSB_destroy
    - VSB_data
    - vtc_hex_to_bin
    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:
    - process_kill
    - vtc_fatal
    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_undef
    - assert
    - process_close
    - atoi
    - vtc_fatal
    - sleep
    - VTIM_sleep
    - process_start
    - process_write_hex
    - process_wait
    - strcmp
    - pthread_mutex_unlock
    - AZ
    - VTAILQ_FOREACH_SAFE
    - VTAILQ_FOREACH
    - term_expect_text
    - process_write
    - process_kill
    - pthread_mutex_lock
    - AN
    - VTAILQ_REMOVE
    - term_match_text
    - term_screen_dump
    - term_expect_cursor
    - term_resize
    - process_winsz
    - strtoumax
    - vtc_log
    - process_new
    - VTC_CHECK_NAME
    - process_delete
    - PTOK
    - strtoul
    - REPLACE
    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: 106
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 106
    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: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    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:101,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:102,1
    - Dst: strtok_r
      Src: /src/VTest2/src/vtc_proxy.c:104,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:105,1
    - Dst: vtc_hex_to_bin
      Src: /src/VTest2/src/vtc_proxy.c:108,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:109,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_proxy.c:110,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_proxy.c:111,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:112,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_proxy.c:112,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:113,1
    - Dst: bsearch
      Src: /src/VTest2/src/vtc_proxy.c:117,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_proxy.c:120,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_proxy.c:121,1
    - Dst: strtok_r
      Src: /src/VTest2/src/vtc_proxy.c:124,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_proxy.c:126,1
    - Dst: vtc_hex_to_bin
      Src: /src/VTest2/src/vtc_proxy.c:128,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_proxy.c:130,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:131,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_proxy.c:132,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_proxy.c:133,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_proxy.c:133,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:135,1
    - Dst: free
      Src: /src/VTest2/src/vtc_proxy.c:136,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_proxy.c:138,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:139,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:140,1
    - Dst: vbe16enc
      Src: /src/VTest2/src/vtc_proxy.c:142,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:143,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:144,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:145,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_proxy.c:145,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:146,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 3
    argNames:
    - vl
    - vsb
    - kva
    argTypes:
    - struct vtclog*
    - struct vsb*
    - char*
    assertStmts:
    - condition: (sz >= 0)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (sizeof(le) == 2)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (sz <= UINT16_MAX)
      pos:
        line_end: 139
        line_start: 139
        source_file: /src/VTest2/src/vtc_proxy.c
    constantsTouched: []
    func_position:
      end: 147
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 147
    functionName: vtc_proxy_tlv
    functionSourceFile: /src/VTest2/src/vtc_proxy.c
    functionUses: 0
    functionsReached:
    - strdup
    - VSB_finish
    - AN
    - VSB_putc
    - assert
    - VSB_new_auto
    - AZ
    - VSB_cat
    - VSB_len
    - strtok_r
    - vtc_fatal
    - VSB_bcat
    - free
    - bsearch
    - vbe16enc
    - VSB_destroy
    - VSB_data
    - vtc_hex_to_bin
    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:157,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:158,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:159,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:160,1
    - Dst: VSA_Get_Sockaddr
      Src: /src/VTest2/src/vtc_proxy.c:162,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:163,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:164,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:165,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: 158
        line_start: 158
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (sl >= sizeof(*sin4))
      pos:
        line_end: 163
        line_start: 163
        source_file: /src/VTest2/src/vtc_proxy.c
    constantsTouched: []
    func_position:
      end: 167
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 167
    functionName: vpx_enc_addr
    functionSourceFile: /src/VTest2/src/vtc_proxy.c
    functionUses: 0
    functionsReached:
    - VSA_Get_Sockaddr
    - VSB_bcat
    - AN
    - assert
    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:174,1
    - Dst: VSA_Port
      Src: /src/VTest2/src/vtc_proxy.c:174,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vsb
    - s
    argTypes:
    - struct vsb*
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 176
    functionName: vpx_enc_port
    functionSourceFile: /src/VTest2/src/vtc_proxy.c
    functionUses: 0
    functionsReached:
    - VSB_bcat
    - vbe16enc
    - VSA_Port
    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:191,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:192,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:194,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_proxy.c:195,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_proxy.c:196,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_proxy.c:198,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:199,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_proxy.c:204,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:206,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:209,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_proxy.c:211,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_proxy.c:213,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_proxy.c:214,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_proxy.c:215,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_proxy.c:216,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:218,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_proxy.c:219,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_proxy.c:221,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_proxy.c:224,1
    - Dst: WRONG
      Src: /src/VTest2/src/vtc_proxy.c:227,1
    - Dst: vbe16enc
      Src: /src/VTest2/src/vtc_proxy.c:229,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_proxy.c:230,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_proxy.c:231,1
    - Dst: vpx_enc_addr
      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_port
      Src: /src/VTest2/src/vtc_proxy.c:234,1
    - Dst: vpx_enc_port
      Src: /src/VTest2/src/vtc_proxy.c:235,1
    - Dst: WRONG
      Src: /src/VTest2/src/vtc_proxy.c:237,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_proxy.c:239,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_proxy.c:239,1
    - Dst: VSB_tofile
      Src: /src/VTest2/src/vtc_proxy.c:240,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:241,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:243,1
    - Dst: VSB_tofile
      Src: /src/VTest2/src/vtc_proxy.c:247,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_proxy.c:248,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: 205
        line_start: 205
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (sizeof(le) == 2)
      pos:
        line_end: 229
        line_start: 229
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (version == 1 || version == 2)
      pos:
        line_end: 193
        line_start: 193
        source_file: /src/VTest2/src/vtc_proxy.c
    - condition: (proto == PF_INET6 || proto == PF_INET)
      pos:
        line_end: 198
        line_start: 198
        source_file: /src/VTest2/src/vtc_proxy.c
    constantsTouched: []
    func_position:
      end: 250
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 250
    functionName: vtc_send_proxy
    functionSourceFile: /src/VTest2/src/vtc_proxy.c
    functionUses: 0
    functionsReached:
    - VSB_finish
    - VSB_printf
    - AN
    - assert
    - VTCP_name
    - VSB_putc
    - vpx_enc_addr
    - AZ
    - VSB_cat
    - VSA_Get_Proto
    - WRONG
    - VSB_len
    - VSB_bcat
    - vpx_enc_port
    - VSB_tofile
    - vbe16enc
    - VSB_destroy
    - VSB_new_auto
    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:86,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:87,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc.c:88,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:89,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc.c:90,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:91,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - name
    - cmd
    - flags
    argTypes:
    - char*
    - cmd_f*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: add_cmd
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - strdup
    - AN
    - VTAILQ_INSERT_HEAD
    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:103,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:104,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:105,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc.c:109,1
    - Dst: dlopen
      Src: /src/VTest2/src/vtc.c:110,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:113,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:115,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:116,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 121
    functionName: find_cmd
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strcmp
    - VTAILQ_FOREACH
    - dlopen
    - bprintf
    - CHECK_OBJ_NOTNULL
    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: 129
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 129
    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: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    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: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    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:155,1
    - Dst: open
      Src: /src/VTest2/src/vtc.c:156,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc.c:158,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc.c:159,1
    - Dst: exit
      Src: /src/VTest2/src/vtc.c:160,1
    - Dst: close
      Src: /src/VTest2/src/vtc.c:162,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc.c:164,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:165,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc.c:166,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:167,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 169
    functionName: add_extension
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - strdup
    - AN
    - exit
    - open
    - close
    - fprintf
    - strerror
    - VTAILQ_INSERT_HEAD
    linkageType: ''
    returnType: void
    signature: void add_extension(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:176,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:177,1
    - Dst: dlopen
      Src: /src/VTest2/src/vtc.c:178,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:180,1
    - Dst: dlerror
      Src: /src/VTest2/src/vtc.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 186
    functionName: init_extensions
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - VTAILQ_FOREACH
    - dlopen
    - CHECK_OBJ_NOTNULL
    - dlerror
    linkageType: ''
    returnType: int
    signature: int init_extensions(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:211,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:212,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc.c:215,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:216,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc.c:217,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:218,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc.c:219,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:221,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:223,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:226,1
    - Dst: vbprintf
      Src: /src/VTest2/src/vtc.c:227,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc.c:228,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:229,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: 232
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 232
    functionName: macro_def_int
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - AN
    - VTAILQ_INSERT_TAIL
    - strcmp
    - AZ
    - VTAILQ_FOREACH
    - vbprintf
    - REPLACE
    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:245,1
    - Dst: macro_def_int
      Src: /src/VTest2/src/vtc.c:246,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc.c:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - name
    - func
    - fmt
    argTypes:
    - char*
    - macro_f*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: extmacro_def
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - macro_def_int
    - va_end
    - va_start
    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:262,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:264,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:267,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:270,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc.c:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 271
    functionName: init_macro
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - PTOK
    - vtc_log
    - pthread_mutex_init
    - VTAILQ_FOREACH
    linkageType: ''
    returnType: void
    signature: void init_macro(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:281,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc.c:284,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:288,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc.c:288,1
    - Dst: va_start
      Src: /src/VTest2/src/vtc.c:289,1
    - Dst: macro_def_int
      Src: /src/VTest2/src/vtc.c:290,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc.c:291,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:292,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:293,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc.c:293,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: 294
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 294
    functionName: macro_def
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 5
    functionsReached:
    - vtc_log
    - AN
    - pthread_mutex_unlock
    - macro_def_int
    - bprintf
    - va_start
    - PTOK
    - pthread_mutex_lock
    - va_end
    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:303,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:307,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc.c:307,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:308,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:309,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:313,1
    - Dst: CHECK_OBJ
      Src: /src/VTest2/src/vtc.c:314,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc.c:315,1
    - Dst: free
      Src: /src/VTest2/src/vtc.c:316,1
    - Dst: free
      Src: /src/VTest2/src/vtc.c:317,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc.c:318,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:320,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc.c:320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - vl
    - instance
    - name
    argTypes:
    - struct vtclog*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 321
    functionName: macro_undef
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 3
    functionsReached:
    - vtc_log
    - pthread_mutex_unlock
    - strcmp
    - VTAILQ_REMOVE
    - CHECK_OBJ
    - VTAILQ_FOREACH
    - FREE_OBJ
    - free
    - bprintf
    - PTOK
    - pthread_mutex_lock
    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:330,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:334,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc.c:334,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:335,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:336,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:338,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc.c:338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - instance
    - name
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 341
    functionName: macro_isdef
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - strcmp
    - VTAILQ_FOREACH
    - bprintf
    - PTOK
    - pthread_mutex_lock
    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:351,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:353,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:354,1
    - Dst: VAV_ParseTxt
      Src: /src/VTest2/src/vtc.c:356,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:357,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:360,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:363,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:365,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc.c:365,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:366,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:367,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:368,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:373,1
    - Dst: struct macro*::func
      Src: /src/VTest2/src/vtc.c:374,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:376,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:378,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc.c:380,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:385,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc.c:385,1
    - Dst: VAV_Free
      Src: /src/VTest2/src/vtc.c:387,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:390,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:395,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc.c:397,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc.c:401,1
    - Dst: free
      Src: /src/VTest2/src/vtc.c:402,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: 362
        line_start: 362
        source_file: /src/VTest2/src/vtc.c
    constantsTouched: []
    func_position:
      end: 403
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 403
    functionName: macro_cat
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 1
    functionsReached:
    - VSB_printf
    - VAV_ParseTxt
    - AN
    - assert
    - strcmp
    - AZ
    - struct macro*::func
    - pthread_mutex_unlock
    - VSB_cat
    - VTAILQ_FOREACH
    - vtc_fatal
    - VAV_Free
    - free
    - strchr
    - PTOK
    - CHECK_OBJ_NOTNULL
    - REPLACE
    - pthread_mutex_lock
    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:411,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:412,1
    - Dst: va_start
      Src: /src/VTest2/src/vtc.c:413,1
    - Dst: VSB_vprintf
      Src: /src/VTest2/src/vtc.c:414,1
    - Dst: va_end
      Src: /src/VTest2/src/vtc.c:415,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:416,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc.c:416,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc.c:417,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc.c:417,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc.c:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - vl
    - fmt
    argTypes:
    - struct vtclog*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 420
    functionName: macro_expandf
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 1
    functionsReached:
    - VSB_finish
    - AN
    - AZ
    - VSB_destroy
    - VSB_data
    - va_start
    - VSB_vprintf
    - VSB_new_auto
    - macro_expand
    - va_end
    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:428,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:429,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc.c:431,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc.c:433,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc.c:436,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:437,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc.c:439,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:442,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:443,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:444,1
    - Dst: macro_cat
      Src: /src/VTest2/src/vtc.c:446,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:449,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc.c:449,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - vl
    - text
    argTypes:
    - struct vtclog*
    - char*
    assertStmts:
    - condition: (p[0] == '$')
      pos:
        line_end: 441
        line_start: 441
        source_file: /src/VTest2/src/vtc.c
    - condition: (p[1] == '{')
      pos:
        line_end: 442
        line_start: 442
        source_file: /src/VTest2/src/vtc.c
    - condition: (q[0] == '}')
      pos:
        line_end: 443
        line_start: 443
        source_file: /src/VTest2/src/vtc.c
    constantsTouched: []
    func_position:
      end: 451
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 451
    functionName: macro_expand
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 3
    functionsReached:
    - VSB_finish
    - AN
    - assert
    - AZ
    - VSB_cat
    - macro_cat
    - VSB_bcat
    - strchr
    - VSB_new_auto
    - strstr
    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:474,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc.c:475,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:476,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:477,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:478,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:481,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc.c:486,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:499,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:501,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:503,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:505,1
    - Dst: memset
      Src: /src/VTest2/src/vtc.c:508,1
    - Dst: memset
      Src: /src/VTest2/src/vtc.c:509,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:513,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:514,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc.c:518,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:530,1
    - Dst: VAV_BackSlash
      Src: /src/VTest2/src/vtc.c:534,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:538,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:541,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:558,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc.c:562,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:568,1
    - Dst: assert
      Src: /src/VTest2/src/vtc.c:569,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:572,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc.c:574,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc.c:575,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc.c:578,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc.c:579,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:592,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc.c:593,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:595,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc.c:596,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:604,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc.c:605,1
    - Dst: find_cmd
      Src: /src/VTest2/src/vtc.c:611,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc.c:618,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:620,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:621,1
    - Dst: struct cmds*::cmd
      Src: /src/VTest2/src/vtc.c:622,1
    CyclomaticComplexity: 57
    EdgeCount: 57
    ICount: 127
    argCount: 3
    argNames:
    - vl
    - priv
    - spec
    argTypes:
    - struct vtclog*
    - void*
    - char*
    assertStmts:
    - condition: (tn < MAX_TOKENS)
      pos:
        line_end: 512
        line_start: 512
        source_file: /src/VTest2/src/vtc.c
    - condition: (p < e)
      pos:
        line_end: 513
        line_start: 513
        source_file: /src/VTest2/src/vtc.c
    - condition: (*p == '}')
      pos:
        line_end: 557
        line_start: 557
        source_file: /src/VTest2/src/vtc.c
    - condition: (tn < MAX_TOKENS)
      pos:
        line_end: 568
        line_start: 568
        source_file: /src/VTest2/src/vtc.c
    - condition: (*p != '\n')
      pos:
        line_end: 540
        line_start: 540
        source_file: /src/VTest2/src/vtc.c
    - condition: (p < e)
      pos:
        line_end: 529
        line_start: 529
        source_file: /src/VTest2/src/vtc.c
    - condition: (p <= e)
      pos:
        line_end: 567
        line_start: 567
        source_file: /src/VTest2/src/vtc.c
    constantsTouched: []
    func_position:
      end: 624
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 624
    functionName: parse_string
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 1
    functionsReached:
    - strdup
    - vtc_log
    - memset
    - isspace
    - AN
    - assert
    - strcmp
    - find_cmd
    - vtc_fatal
    - VSB_data
    - struct cmds*::cmd
    - strchr
    - CHECK_OBJ_NOTNULL
    - strtoul
    - VAV_BackSlash
    - macro_expand
    - parse_string
    - strstr
    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:635,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:636,1
    - Dst: struct cmds*::cmd
      Src: /src/VTest2/src/vtc.c:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 639
    functionName: reset_cmd
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - AN
    - find_cmd
    - 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:647,1
    - Dst: reset_cmd
      Src: /src/VTest2/src/vtc.c:648,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc.c:650,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc.c:651,1
    - Dst: struct cmds*::cmd
      Src: /src/VTest2/src/vtc.c:655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 641
    functionDepth: 3
    functionLinenumber: 641
    functionLinenumberEnd: 658
    functionName: reset_cmds
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - reset_cmd
    - VTAILQ_FOREACH
    - struct cmds*::cmd
    linkageType: ''
    returnType: void
    signature: void reset_cmds(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:671,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:677,1
    - Dst: reset_cmds
      Src: /src/VTest2/src/vtc.c:678,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:682,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:684,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 664
    functionDepth: 4
    functionLinenumber: 664
    functionLinenumberEnd: 689
    functionName: fail_out
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - reset_cmds
    linkageType: ''
    returnType: int
    signature: int fail_out(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:699,1
    - Dst: signal
      Src: /src/VTest2/src/vtc.c:701,1
    - Dst: VSUB_closefrom
      Src: /src/VTest2/src/vtc.c:703,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc.c:705,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc.c:705,1
    - Dst: VRND_SeedAll
      Src: /src/VTest2/src/vtc.c:708,1
    - Dst: vtc_loginit
      Src: /src/VTest2/src/vtc.c:711,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc.c:712,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:713,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc.c:715,1
    - Dst: init_cmd_list
      Src: /src/VTest2/src/vtc.c:717,1
    - Dst: init_extensions
      Src: /src/VTest2/src/vtc.c:718,1
    - Dst: fail_out
      Src: /src/VTest2/src/vtc.c:720,1
    - Dst: init_macro
      Src: /src/VTest2/src/vtc.c:722,1
    - Dst: init_server
      Src: /src/VTest2/src/vtc.c:723,1
    - Dst: init_syslog
      Src: /src/VTest2/src/vtc.c:724,1
    - Dst: init_tunnel
      Src: /src/VTest2/src/vtc.c:725,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc.c:727,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:728,1
    - Dst: macro_cat
      Src: /src/VTest2/src/vtc.c:730,1
    - Dst: strrchr
      Src: /src/VTest2/src/vtc.c:731,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc.c:733,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc.c:734,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc.c:736,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc.c:737,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:738,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc.c:738,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc.c:739,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc.c:739,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc.c:740,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:743,1
    - Dst: chdir
      Src: /src/VTest2/src/vtc.c:743,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc.c:744,1
    - Dst: strrchr
      Src: /src/VTest2/src/vtc.c:745,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:746,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:748,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc.c:749,1
    - Dst: fopen
      Src: /src/VTest2/src/vtc.c:752,1
    - Dst: AN
      Src: /src/VTest2/src/vtc.c:753,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc.c:754,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc.c:755,1
    - Dst: fclose
      Src: /src/VTest2/src/vtc.c:755,1
    - Dst: pthread_self
      Src: /src/VTest2/src/vtc.c:759,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc.c:760,1
    - Dst: fail_out
      Src: /src/VTest2/src/vtc.c:761,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: 762
      start: 691
    functionDepth: 5
    functionLinenumber: 691
    functionLinenumberEnd: 762
    functionName: exec_file
    functionSourceFile: /src/VTest2/src/vtc.c
    functionUses: 0
    functionsReached:
    - vtc_logopen
    - VSB_finish
    - VSUB_closefrom
    - init_server
    - fclose
    - VSB_len
    - vtc_loginit
    - VSB_destroy
    - fopen
    - signal
    - init_cmd_list
    - AZ
    - strrchr
    - fprintf
    - VSB_bcat
    - init_macro
    - macro_def
    - VSB_new_auto
    - VSB_data
    - init_syslog
    - pthread_mutex_init
    - parse_string
    - AN
    - VSB_putc
    - pthread_self
    - init_tunnel
    - fail_out
    - vtc_log
    - init_extensions
    - macro_cat
    - chdir
    - VRND_SeedAll
    - PTOK
    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: 49
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 49
    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: 63
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 63
    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: 77
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 77
    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:84,1
    - Dst: teken_tab_set
      Src: /src/VTest2/src/teken_subr.h:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 88
    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:96,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken_subr.h:97,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken_subr.h:98,1
    - Dst: teken_funcs_copy
      Src: /src/VTest2/src/teken_subr.h:112,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:123,1
    - Dst: teken_funcs_copy
      Src: /src/VTest2/src/teken_subr.h:136,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:147,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 2
    argNames:
    - t
    - amount
    argTypes:
    - teken_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 149
    functionName: teken_subr_do_scroll
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_copy
    - teken_funcs_fill
    - teken_assert
    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:157,1
    - Dst: snprintf
      Src: /src/VTest2/src/teken_subr.h:162,1
    - Dst: strcpy
      Src: /src/VTest2/src/teken_subr.h:171,1
    - Dst: strcpy
      Src: /src/VTest2/src/teken_subr.h:174,1
    - Dst: strcpy
      Src: /src/VTest2/src/teken_subr.h:177,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - t
    - cmd
    - response
    argTypes:
    - teken_t*
    - unsigned int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 183
    functionName: teken_subr_do_cpr
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - snprintf
    - strcpy
    - teken_printf
    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:195,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 201
    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:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 225
    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:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 232
    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:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 241
    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:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 253
    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:267,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - t
    - ntabs
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 272
    functionName: teken_subr_cursor_backward_tabulation
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_tab_isset
    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:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 284
    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:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 296
    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:310,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:314,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - t
    - ntabs
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 315
    functionName: teken_subr_cursor_forward_tabulation
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_tab_isset
    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:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 323
    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:338,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: 339
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 339
    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:347,1
    - Dst: teken_funcs_respond
      Src: /src/VTest2/src/teken_subr.h:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 352
    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:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 360
    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:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 372
    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: 393
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 393
    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:409,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 416
    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:441,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 448
    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:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 456
    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:464,1
    - Dst: teken_funcs_respond
      Src: /src/VTest2/src/teken_subr.h:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 469
    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:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 477
    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:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 485
    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:500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 501
    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:513,1
    - Dst: teken_subr_erase_line
      Src: /src/VTest2/src/teken_subr.h:526,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - t
    - mode
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 503
    functionDepth: 1
    functionLinenumber: 503
    functionLinenumberEnd: 537
    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:562,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - t
    - mode
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 563
    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: 570
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 570
    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: 577
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 577
    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: 584
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 584
    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: 591
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 591
    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: 598
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 598
    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: 605
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 605
    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:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - t
    - col
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 617
    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:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 624
    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:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 631
    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:640,1
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:642,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 644
    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:663,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - t
    - ncols
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 670
    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:695,1
    - Dst: teken_funcs_fill
      Src: /src/VTest2/src/teken_subr.h:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 702
    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:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 709
    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:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 716
    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:725,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 718
    functionDepth: 2
    functionLinenumber: 718
    functionLinenumberEnd: 731
    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:745,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:751,1
    - Dst: teken_subr_newline
      Src: /src/VTest2/src/teken_subr.h:753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 755
    functionName: teken_subr_newpage
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_funcs_fill
    - teken_subr_newline
    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:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 763
    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:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 771
    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:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 773
    functionDepth: 2
    functionLinenumber: 773
    functionLinenumberEnd: 778
    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:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - nrows
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 785
    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:794,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:796,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - request
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 798
    functionName: teken_subr_primary_device_attributes
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    - teken_funcs_respond
    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:817,1
    - Dst: teken_funcs_putchar
      Src: /src/VTest2/src/teken_subr.h:820,1
    - Dst: teken_funcs_putchar
      Src: /src/VTest2/src/teken_subr.h:831,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: 833
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 833
    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:843,1
    - Dst: teken_scs_process
      Src: /src/VTest2/src/teken_subr.h:846,1
    - Dst: teken_wcwidth
      Src: /src/VTest2/src/teken_subr.h:847,1
    - Dst: teken_subr_do_putchar
      Src: /src/VTest2/src/teken_subr.h:854,1
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:860,1
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:883,1
    - Dst: teken_subr_do_putchar
      Src: /src/VTest2/src/teken_subr.h:894,1
    - Dst: teken_subr_do_putchar
      Src: /src/VTest2/src/teken_subr.h:901,1
    - Dst: teken_subr_do_putchar
      Src: /src/VTest2/src/teken_subr.h:908,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:919,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 52
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 835
    functionDepth: 2
    functionLinenumber: 835
    functionLinenumberEnd: 920
    functionName: teken_subr_regular_character
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_subr_do_putchar
    - teken_subr_do_scroll
    - teken_wcwidth
    - 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:931,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:934,1
    - Dst: teken_subr_reset_to_initial_state
      Src: /src/VTest2/src/teken_subr.h:935,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:938,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:946,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:952,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:955,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:958,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:961,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:964,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:967,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:970,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 972
    functionName: teken_subr_reset_dec_mode
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_funcs_param
    - teken_subr_reset_to_initial_state
    - teken_printf
    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:983,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 985
    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: 994
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 994
    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:1012,1
    - Dst: teken_tab_default
      Src: /src/VTest2/src/teken_subr.h:1013,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 996
    functionDepth: 2
    functionLinenumber: 996
    functionLinenumberEnd: 1014
    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:1020,1
    - Dst: teken_subr_erase_display
      Src: /src/VTest2/src/teken_subr.h:1021,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1022,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1016
    functionDepth: 3
    functionLinenumber: 1016
    functionLinenumberEnd: 1024
    functionName: teken_subr_reset_to_initial_state
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 1
    functionsReached:
    - teken_subr_erase_display
    - teken_funcs_param
    - teken_subr_do_reset
    - teken_funcs_cursor
    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:1043,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1044
    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:1053,1
    - Dst: teken_subr_do_scroll
      Src: /src/VTest2/src/teken_subr.h:1055,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1046
    functionDepth: 2
    functionLinenumber: 1046
    functionLinenumberEnd: 1057
    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: 1066
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1066
    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:1074,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1076,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - t
    - request
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1078
    functionName: teken_subr_secondary_device_attributes
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_printf
    - teken_funcs_respond
    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:1089,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1092,1
    - Dst: teken_subr_reset_to_initial_state
      Src: /src/VTest2/src/teken_subr.h:1093,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1096,1
    - Dst: teken_funcs_cursor
      Src: /src/VTest2/src/teken_subr.h:1104,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1110,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1113,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1116,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1119,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1122,1
    - Dst: teken_funcs_param
      Src: /src/VTest2/src/teken_subr.h:1125,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1128,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1080
    functionDepth: 4
    functionLinenumber: 1080
    functionLinenumberEnd: 1130
    functionName: teken_subr_set_dec_mode
    functionSourceFile: /src/VTest2/src/teken_subr.h
    functionUses: 0
    functionsReached:
    - teken_funcs_cursor
    - teken_funcs_param
    - teken_subr_reset_to_initial_state
    - teken_printf
    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:1138,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken_subr.h:1142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1144
    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:1248,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: 1251
      start: 1146
    functionDepth: 0
    functionLinenumber: 1146
    functionLinenumberEnd: 1251
    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:1281,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: 1282
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1282
    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:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1290
    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:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1298
    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: 1309
      start: 1300
    functionDepth: 0
    functionLinenumber: 1300
    functionLinenumberEnd: 1309
    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:1317,1
    - Dst: memset
      Src: /src/VTest2/src/teken_subr.h:1320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - t
    - cmd
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1325
    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:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - t
    - row
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1337
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: teken_subr_regular_character
      Src: /src/VTest2/src/teken_subr.h:1344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - t
    - rpts
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1339
    functionDepth: 3
    functionLinenumber: 1339
    functionLinenumberEnd: 1345
    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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    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:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    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:82,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:83,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:85,1
    - Dst: teken_t*::t_funcs::tf_cursor
      Src: /src/VTest2/src/teken.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: teken_funcs_cursor
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 22
    functionsReached:
    - teken_t*::t_funcs::tf_cursor
    - teken_assert
    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:94,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:95,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:97,1
    - Dst: teken_t*::t_funcs::tf_putchar
      Src: /src/VTest2/src/teken.c:98,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: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    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:106,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:107,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:108,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:109,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:111,1
    - Dst: teken_t*::t_funcs::tf_fill
      Src: /src/VTest2/src/teken.c:112,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: 113
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 113
    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: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:123,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:124,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:126,1
    - Dst: teken_t*::t_funcs::tf_copy
      Src: /src/VTest2/src/teken.c:127,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: 128
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 128
    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:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 136
    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:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    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:150,1
    - Dst: teken_t*::t_funcs::tf_param
      Src: /src/VTest2/src/teken.c:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - cmd
    - value
    argTypes:
    - teken_t*
    - int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 152
    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:158,1
    - Dst: teken_t*::t_funcs::tf_respond
      Src: /src/VTest2/src/teken.c:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - buf
    - len
    argTypes:
    - teken_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 160
    functionName: teken_funcs_respond
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 4
    functionsReached:
    - teken_t*::t_funcs::tf_respond
    - teken_assert
    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:184,1
    - Dst: teken_set_winsize
      Src: /src/VTest2/src/teken.c:186,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: 187
      start: 169
    functionDepth: 3
    functionLinenumber: 169
    functionLinenumberEnd: 187
    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:215,1
    - Dst: teken_subr_backspace
      Src: /src/VTest2/src/teken.c:218,1
    - Dst: teken_subr_newline
      Src: /src/VTest2/src/teken.c:222,1
    - Dst: teken_subr_newpage
      Src: /src/VTest2/src/teken.c:225,1
    - Dst: teken_t*::t_nextstate
      Src: /src/VTest2/src/teken.c:229,1
    - Dst: teken_t*::t_nextstate
      Src: /src/VTest2/src/teken.c:235,1
    - Dst: teken_subr_carriage_return
      Src: /src/VTest2/src/teken.c:240,1
    - Dst: teken_subr_horizontal_tab
      Src: /src/VTest2/src/teken.c:243,1
    - Dst: teken_t*::t_nextstate
      Src: /src/VTest2/src/teken.c:246,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:257,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:258,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:260,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 58
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 264
    functionName: teken_input_char
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - teken_t*::t_nextstate
    - teken_subr_bell
    - teken_subr_horizontal_tab
    - teken_subr_carriage_return
    - teken_subr_backspace
    - teken_subr_newpage
    - teken_subr_newline
    - teken_assert
    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:276,1
    - Dst: teken_printf
      Src: /src/VTest2/src/teken.c:295,1
    - Dst: teken_input_char
      Src: /src/VTest2/src/teken.c:296,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 299
    functionName: teken_input_byte
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - teken_printf
    - teken_input_char
    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:306,1
    - Dst: teken_input_byte
      Src: /src/VTest2/src/teken.c:308,1
    - Dst: teken_funcs_post_input
      Src: /src/VTest2/src/teken.c:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - t
    - buf
    - len
    argTypes:
    - teken_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 301
    functionDepth: 6
    functionLinenumber: 301
    functionLinenumberEnd: 310
    functionName: teken_input
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 1
    functionsReached:
    - teken_funcs_post_input
    - teken_funcs_pre_input
    - teken_input_byte
    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: 317
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 317
    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:324,1
    - Dst: teken_assert
      Src: /src/VTest2/src/teken.c:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - teken_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 328
    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: 335
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 335
    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: 342
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 342
    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: 349
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 349
    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: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    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: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    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:372,1
    - Dst: tp_row::tp_row
      Src: /src/VTest2/src/teken.c:374,1
    - Dst: tp_row::tp_row
      Src: /src/VTest2/src/teken.c:375,1
    - Dst: tp_col::tp_col
      Src: /src/VTest2/src/teken.c:376,1
    - Dst: tp_col::tp_col
      Src: /src/VTest2/src/teken.c:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - t
    - new
    argTypes:
    - teken_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 378
    functionName: teken_trim_cursor_pos
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - tp_row::tp_row
    - tp_col::tp_col
    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:384,1
    - Dst: teken_subr_do_reset
      Src: /src/VTest2/src/teken.c:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - teken_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 387
    functionName: teken_set_winsize
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 2
    functionsReached:
    - teken_trim_cursor_pos
    - teken_subr_do_reset
    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:393,1
    - Dst: teken_subr_do_resize
      Src: /src/VTest2/src/teken.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - t
    - p
    argTypes:
    - teken_t*
    - teken_pos_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 396
    functionName: teken_set_winsize_noreset
    functionSourceFile: /src/VTest2/src/teken.c
    functionUses: 0
    functionsReached:
    - teken_trim_cursor_pos
    - teken_subr_do_resize
    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: 403
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 403
    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: 410
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 410
    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: 423
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 423
    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:429,1
    - Dst: teken_state_switch
      Src: /src/VTest2/src/teken.c:457,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 475
    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: 667
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 667
    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: 674
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 674
    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: 734
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 734
    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:
    - free
    - memset
    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
    - AN
    - strerror
    - CHECK_OBJ_NOTNULL
    - vtc_dump
    - write
    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:
    - vtc_log
    - AN
    - read
    - strerror
    - CHECK_OBJ_NOTNULL
    - poll
    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:
    - CHECK_OBJ_NOTNULL
    - vbe32dec
    - AN
    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:
    - CHECK_OBJ_NOTNULL
    - vbe32enc
    - AN
    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:
    - free
    - CHECK_OBJ
    - AN
    - FREE_OBJ
    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:
    - write
    - vtc_log
    - writeFrameHeader
    - AN
    - pthread_mutex_unlock
    - strerror
    - PTOK
    - CHECK_OBJ_NOTNULL
    - pthread_mutex_lock
    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
    - AN
    - AZ
    - realloc
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    - memcpy
    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:
    - vtc_log
    - VSB_len
    - CAST_OBJ_NOTNULL
    - HPK_FreeIter
    - HPK_DecHdr
    - CHECK_OBJ_NOTNULL
    - VSB_data
    - HPK_NewIter
    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
    - AZ
    - vbe32dec
    - VSB_bcat
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    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
    - vtc_log
    - AN
    - vbe32dec
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    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
    - vbe32dec
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    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:
    - vtc_log
    - vbe16dec
    - assert
    - vbe32dec
    - vtc_fatal
    - HPK_ResizeTbl
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    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
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    - memcpy
    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:
    - vtc_log
    - AN
    - vbe32dec
    - vtc_fatal
    - malloc
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    - memcpy
    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
    - vbe32dec
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    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:
    - parse_settings
    - VSB_finish
    - assert
    - parse_goaway
    - vtc_fatal
    - clean_frame
    - malloc
    - parse_hdr
    - parse_winup
    - VSB_destroy
    - pthread_cond_wait
    - parse_rst
    - pthread_mutex_unlock
    - AZ
    - VTAILQ_FOREACH
    - readFrameHeader
    - parse_data
    - VTAILQ_INSERT_HEAD
    - clean_headers
    - VSB_new_auto
    - pthread_mutex_lock
    - parse_ping
    - pthread_cond_signal
    - AN
    - parse_prio
    - CAST_OBJ_NOTNULL
    - get_bytes
    - ALLOC_OBJ
    - vtc_log
    - decode_hdr
    - WRONG
    - explain_flags
    - PTOK
    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:
    - (
    - idx
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 904
    functionName: RETURN_SETTINGS
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_SETTINGS(idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 910
    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:914,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:916,1
    - Dst: strncasecmp
      Src: /src/VTest2/src/vtc_http2.c:918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - h
    - k
    argTypes:
    - struct hpk_hdr*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 923
    functionName: find_header
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncasecmp
    - AN
    linkageType: ''
    returnType: char
    signature: 'char *

      find_header(const struct hpk_hdr *h, const char *k)'
  - BBCount: 54
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:943,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:944,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:945,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:946,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:956,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:957,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:960,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:961,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:962,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:970,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:971,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:972,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:985,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:986,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:987,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:989,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:990,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:991,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:994,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:995,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:996,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1003,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1004,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1005,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1031,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1032,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1034,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1035,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1038,1
    - Dst: isnan
      Src: /src/VTest2/src/vtc_http2.c:1039,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1042,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1044,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1047,1
    - Dst: RETURN_SETTINGS
      Src: /src/VTest2/src/vtc_http2.c:1047,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1048,1
    - Dst: RETURN_SETTINGS
      Src: /src/VTest2/src/vtc_http2.c:1048,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1049,1
    - Dst: RETURN_SETTINGS
      Src: /src/VTest2/src/vtc_http2.c:1049,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1050,1
    - Dst: RETURN_SETTINGS
      Src: /src/VTest2/src/vtc_http2.c:1050,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1051,1
    - Dst: RETURN_SETTINGS
      Src: /src/VTest2/src/vtc_http2.c:1051,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1058,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1059,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1060,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1073,1
    - Dst: CHECK_LAST_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1075,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1077,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1078,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1079,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1080,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1081,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1102,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1105,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1106,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1107,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1107,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1108,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1108,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1109,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1109,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1110,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1114,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1117,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1136,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1137,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1141,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1142,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1146,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1148,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1153,1
    - Dst: snprintf
      Src: /src/VTest2/src/vtc_http2.c:1155,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1179,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1179,1
    - Dst: sscanf
      Src: /src/VTest2/src/vtc_http2.c:1186,1
    - Dst: HPK_GetHdr
      Src: /src/VTest2/src/vtc_http2.c:1188,1
    - Dst: sscanf
      Src: /src/VTest2/src/vtc_http2.c:1191,1
    - Dst: HPK_GetHdr
      Src: /src/VTest2/src/vtc_http2.c:1193,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1196,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1197,1
    - Dst: HPK_GetTblSize
      Src: /src/VTest2/src/vtc_http2.c:1197,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1198,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1199,1
    - Dst: HPK_GetTblMaxSize
      Src: /src/VTest2/src/vtc_http2.c:1199,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1200,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1201,1
    - Dst: HPK_GetTblLength
      Src: /src/VTest2/src/vtc_http2.c:1201,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1232,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1232,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1240,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1242,1
    - Dst: RETURN_BUFFED
      Src: /src/VTest2/src/vtc_http2.c:1243,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1244,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1245,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1246,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1247,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1248,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1249,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1250,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1251,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1252,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1253,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1254,1
    - Dst: find_header
      Src: /src/VTest2/src/vtc_http2.c:1255,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 172
    argCount: 3
    argNames:
    - s
    - spec
    - buf
    argTypes:
    - struct stream*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 1263
    functionName: cmd_var_resolve
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - HPK_GetTblLength
    - AN
    - strcmp
    - snprintf
    - RETURN_BUFFED
    - strncmp
    - HPK_GetTblMaxSize
    - HPK_GetTblSize
    - vtc_fatal
    - find_header
    - sscanf
    - HPK_GetHdr
    - RETURN_SETTINGS
    - CHECK_OBJ_NOTNULL
    - isnan
    - CHECK_LAST_FRAME
    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: 1261
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1261
    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:1281,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1282,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1283,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1284,1
    - Dst: vtc_hex_to_bin
      Src: /src/VTest2/src/vtc_http2.c:1285,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1286,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http2.c:1286,1
    - Dst: vtc_hexdump
      Src: /src/VTest2/src/vtc_http2.c:1287,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_http2.c:1287,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http2.c:1287,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:1288,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:1288,1
    - Dst: http_write
      Src: /src/VTest2/src/vtc_http2.c:1289,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_http2.c:1289,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_http2.c:1289,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:1290,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:1290,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_http2.c:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (VSB_len(vsb) >= 0)
      pos:
        line_end: 1285
        line_start: 1285
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 1292
      start: 1273
    functionDepth: 2
    functionLinenumber: 1273
    functionLinenumberEnd: 1292
    functionName: cmd_sendhex
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - AN
    - assert
    - pthread_mutex_unlock
    - AZ
    - VSB_len
    - vtc_hexdump
    - http_write
    - CAST_OBJ_NOTNULL
    - PTOK
    - VSB_destroy
    - VSB_data
    - pthread_mutex_lock
    - 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: 1304
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1304
    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: 1317
      start: 1305
    functionDepth: 0
    functionLinenumber: 1305
    functionLinenumberEnd: 1317
    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:1445,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1446,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:1447,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1448,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1450,1
    - Dst: ONLY_H2_CLIENT
      Src: /src/VTest2/src/vtc_http2.c:1451,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1457,1
    - Dst: ONLY_H2_SERVER
      Src: /src/VTest2/src/vtc_http2.c:1458,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1462,1
    - Dst: ONLY_H2_SERVER
      Src: /src/VTest2/src/vtc_http2.c:1463,1
    - Dst: HPK_NewIter
      Src: /src/VTest2/src/vtc_http2.c:1472,1
    - Dst: HPK_NewIter
      Src: /src/VTest2/src/vtc_http2.c:1474,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:1479,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1481,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1487,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1487,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1488,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1492,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1493,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1493,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1494,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1498,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1498,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1499,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1499,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1500,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1504,1
    - Dst: CMD_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: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1512,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1513,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1516,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1518,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1519,1
    - Dst: HPK_EncHdr
      Src: /src/VTest2/src/vtc_http2.c:1519,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1521,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1523,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1524,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1525,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1527,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1530,1
    - Dst: STR_ENC
      Src: /src/VTest2/src/vtc_http2.c:1535,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1536,1
    - Dst: HPK_EncHdr
      Src: /src/VTest2/src/vtc_http2.c:1536,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1538,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1540,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: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1544,1
    - Dst: STR_ENC
      Src: /src/VTest2/src/vtc_http2.c:1547,1
    - Dst: STR_ENC
      Src: /src/VTest2/src/vtc_http2.c:1548,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1549,1
    - Dst: HPK_EncHdr
      Src: /src/VTest2/src/vtc_http2.c:1549,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1551,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1554,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1557,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1557,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1558,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:1559,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1561,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1561,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1562,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1564,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http2.c:1565,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1567,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1567,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1568,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_http2.c:1570,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1572,1
    - Dst: CMD_IS
      Src: /src/VTest2/src/vtc_http2.c:1572,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1573,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1574,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_http2.c:1575,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1576,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1577,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1581,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1582,1
    - Dst: VFIL_readfile
      Src: /src/VTest2/src/vtc_http2.c:1583,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1584,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1585,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1590,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1591,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_http2.c:1592,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1593,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1597,1
    - Dst: vtc_gzip_cmd
      Src: /src/VTest2/src/vtc_http2.c:1598,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1603,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1607,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1608,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1611,1
    - Dst: AV_IS
      Src: /src/VTest2/src/vtc_http2.c:1615,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1616,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1626,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:1628,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1631,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1632,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1633,1
    - Dst: ENC
      Src: /src/VTest2/src/vtc_http2.c:1634,1
    - Dst: gethpk_iterLen
      Src: /src/VTest2/src/vtc_http2.c:1636,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1641,1
    - Dst: memmove
      Src: /src/VTest2/src/vtc_http2.c:1642,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:1643,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:1647,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:1648,1
    - Dst: exclusive_stream_dependency
      Src: /src/VTest2/src/vtc_http2.c:1650,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1653,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1654,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1656,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1656,1
    - Dst: memmove
      Src: /src/VTest2/src/vtc_http2.c:1657,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1658,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:1660,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1660,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1661,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1662,1
    - Dst: HPK_FreeIter
      Src: /src/VTest2/src/vtc_http2.c:1667,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1668,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1669,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1674,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1677,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1678,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 231
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (HPK_EncHdr(iter, &hdr) != hpk_err)
      pos:
        line_end: 1518
        line_start: 1518
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (HPK_EncHdr(iter, &hdr) != hpk_err)
      pos:
        line_end: 1535
        line_start: 1535
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (HPK_EncHdr(iter, &hdr) != hpk_err)
      pos:
        line_end: 1548
        line_start: 1548
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (f.size + 5 < BUF_SIZE)
      pos:
        line_end: 1640
        line_start: 1640
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (f.size + strlen(pad) < BUF_SIZE)
      pos:
        line_end: 1655
        line_start: 1655
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (len < INT_MAX)
      pos:
        line_end: 1584
        line_start: 1584
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 1679
      start: 1422
    functionDepth: 3
    functionLinenumber: 1422
    functionLinenumberEnd: 1679
    functionName: cmd_tx11obj
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - assert
    - write_frame
    - VFIL_readfile
    - vtc_fatal
    - CMD_IS
    - malloc
    - gethpk_iterLen
    - STR_ENC
    - vtc_gzip_cmd
    - exclusive_stream_dependency
    - ONLY_H2_SERVER
    - strcmp
    - AZ
    - memmove
    - HPK_EncHdr
    - strlen
    - STRTOU32_CHECK
    - ENC
    - strdup
    - memset
    - AN
    - strncmp
    - CAST_OBJ_NOTNULL
    - INIT_FRAME
    - HPK_NewIter
    - vtc_log
    - AV_IS
    - ONLY_H2_CLIENT
    - free
    - vbe32enc
    - synth_body
    - HPK_FreeIter
    - REPLACE
    - memcpy
    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: 1477
      start: 1476
    functionDepth: 0
    functionLinenumber: 1476
    functionLinenumberEnd: 1477
    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: 1478
      start: 1477
    functionDepth: 0
    functionLinenumber: 1477
    functionLinenumberEnd: 1478
    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:1711,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1713,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1716,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1717,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http2.c:1719,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1720,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1721,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_http2.c:1723,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1724,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1725,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1727,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http2.c:1728,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1729,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:1730,1
    - Dst: synth_body
      Src: /src/VTest2/src/vtc_http2.c:1732,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1733,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1739,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http2.c:1742,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1746,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1747,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:1748,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1748,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1748,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1749,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1750,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:1752,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1752,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1753,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:1754,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1754,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1755,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:1758,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1761,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1762,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1763,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:1764,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1702
    functionDepth: 3
    functionLinenumber: 1702
    functionLinenumberEnd: 1765
    functionName: cmd_txdata
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - strdup
    - AN
    - write_frame
    - strcmp
    - AZ
    - vtc_fatal
    - strlen
    - free
    - malloc
    - CAST_OBJ_NOTNULL
    - synth_body
    - INIT_FRAME
    - memcpy
    linkageType: ''
    returnType: void
    signature: void cmd_txdata(CMD_ARGS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1785,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1787,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1790,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1793,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:1800,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1805,1
    - Dst: htonl
      Src: /src/VTest2/src/vtc_http2.c:1807,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1809,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1810
      start: 1777
    functionDepth: 3
    functionLinenumber: 1777
    functionLinenumberEnd: 1810
    functionName: cmd_txrst
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - write_frame
    - strcmp
    - vtc_fatal
    - STRTOU32
    - htonl
    - CAST_OBJ_NOTNULL
    - INIT_FRAME
    linkageType: ''
    returnType: void
    signature: void cmd_txrst(CMD_ARGS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1838,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1840,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1844,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1845,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1846,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1848,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:1849,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1854,1
    - Dst: exclusive_stream_dependency
      Src: /src/VTest2/src/vtc_http2.c:1859,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:1861,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1863,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1827
    functionDepth: 3
    functionLinenumber: 1827
    functionLinenumberEnd: 1864
    functionName: cmd_txprio
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - exclusive_stream_dependency
    - write_frame
    - strcmp
    - vtc_fatal
    - vbe32enc
    - CAST_OBJ_NOTNULL
    - INIT_FRAME
    - STRTOU32_CHECK
    linkageType: ''
    returnType: void
    signature: void cmd_txprio(CMD_ARGS)
  - 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: 1875
      start: 1866
    functionDepth: 0
    functionLinenumber: 1866
    functionLinenumberEnd: 1875
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1918,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1919,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:1921,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1922,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:1925,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:1925,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1927,1
    - Dst: vbe16enc
      Src: /src/VTest2/src/vtc_http2.c:1929,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1931,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:1932,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1933,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:1934,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1936,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1941,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1942,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1943,1
    - Dst: HPK_ResizeTbl
      Src: /src/VTest2/src/vtc_http2.c:1943,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1945,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1946,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1947,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1948,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:1949,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1953,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1954,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1955,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1956,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_http2.c:1957,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_http2.c:1960,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1962,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:1963,1
    - Dst: PUT_KV
      Src: /src/VTest2/src/vtc_http2.c:1964,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:1966,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:1972,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:1974,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:1975,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:1976,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:1976,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (u <= 0xffff)
      pos:
        line_end: 1962
        line_start: 1962
        source_file: /src/VTest2/src/vtc_http2.c
    - condition: (HPK_ResizeTbl(s->hp->decctx, val) != hpk_err)
      pos:
        line_end: 1942
        line_start: 1942
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 1977
      start: 1905
    functionDepth: 3
    functionLinenumber: 1905
    functionLinenumberEnd: 1977
    functionName: cmd_txsettings
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - memset
    - assert
    - AN
    - strcmp
    - write_frame
    - pthread_mutex_unlock
    - vbe16enc
    - strncmp
    - VTAILQ_FOREACH
    - vtc_fatal
    - PUT_KV
    - HPK_ResizeTbl
    - vbe32enc
    - CAST_OBJ_NOTNULL
    - PTOK
    - INIT_FRAME
    - strtoul
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void cmd_txsettings(CMD_ARGS)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:1996,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:1997,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:1998,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2001,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2004,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:2005,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2006,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2008,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2014,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:2017,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1989
    functionDepth: 3
    functionLinenumber: 1989
    functionLinenumberEnd: 2018
    functionName: cmd_txping
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - memset
    - write_frame
    - strcmp
    - vtc_fatal
    - strlen
    - CAST_OBJ_NOTNULL
    - INIT_FRAME
    linkageType: ''
    returnType: void
    signature: void cmd_txping(CMD_ARGS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2047,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:2049,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2052,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2055,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:2061,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2062,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:2063,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2064,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2067,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_http2.c:2068,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:2069,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2070,1
    - Dst: memcpy
      Src: /src/VTest2/src/vtc_http2.c:2071,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2076,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http2.c:2079,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2080,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:2082,1
    - Dst: vbe32enc
      Src: /src/VTest2/src/vtc_http2.c:2083,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:2084,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:2085,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2086
      start: 2038
    functionDepth: 3
    functionLinenumber: 2038
    functionLinenumberEnd: 2086
    functionName: cmd_txgoaway
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - AN
    - write_frame
    - strcmp
    - vtc_fatal
    - STRTOU32
    - strlen
    - malloc
    - memcpy
    - CAST_OBJ_NOTNULL
    - vbe32enc
    - free
    - INIT_FRAME
    - STRTOU32_CHECK
    linkageType: ''
    returnType: void
    signature: void cmd_txgoaway(CMD_ARGS)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2106,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2107,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_http2.c:2108,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2110,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2111,1
    - Dst: INIT_FRAME
      Src: /src/VTest2/src/vtc_http2.c:2113,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2117,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:2118,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2122,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2124,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2124,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2128,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2128,1
    - Dst: htonl
      Src: /src/VTest2/src/vtc_http2.c:2130,1
    - Dst: write_frame
      Src: /src/VTest2/src/vtc_http2.c:2132,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2096
    functionDepth: 3
    functionLinenumber: 2096
    functionLinenumberEnd: 2133
    functionName: cmd_txwinup
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - memset
    - AN
    - pthread_mutex_unlock
    - strcmp
    - pthread_mutex_lock
    - write_frame
    - vtc_fatal
    - htonl
    - CAST_OBJ_NOTNULL
    - PTOK
    - INIT_FRAME
    - STRTOU32_CHECK
    linkageType: ''
    returnType: void
    signature: void cmd_txwinup(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2140,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2142,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2142,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_http2.c:2143,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_http2.c:2144,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2147,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_http2.c:2147,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2148,1
    - Dst: pthread_cond_wait
      Src: /src/VTest2/src/vtc_http2.c:2148,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_http2.c:2150,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2151,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2151,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:2154,1
    - Dst: VTAILQ_LAST
      Src: /src/VTest2/src/vtc_http2.c:2155,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2156,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_http2.c:2157,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2158,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts:
    - condition: (s->hp->wf >= 0)
      pos:
        line_end: 2143
        line_start: 2143
        source_file: /src/VTest2/src/vtc_http2.c
    constantsTouched: []
    func_position:
      end: 2160
      start: 2135
    functionDepth: 3
    functionLinenumber: 2135
    functionLinenumberEnd: 2160
    functionName: rxstuff
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - pthread_cond_wait
    - VTAILQ_EMPTY
    - pthread_cond_signal
    - assert
    - pthread_mutex_unlock
    - VTAILQ_REMOVE
    - clean_frame
    - VTAILQ_LAST
    - PTOK
    - CHECK_OBJ_NOTNULL
    - pthread_mutex_lock
    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: 2171
      start: 2162
    functionDepth: 0
    functionLinenumber: 2162
    functionLinenumberEnd: 2171
    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:2195,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2198,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:2199,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2201,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2203,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2209,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2212,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2212,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2216,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2219,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2184
    functionDepth: 4
    functionLinenumber: 2184
    functionLinenumberEnd: 2220
    functionName: cmd_rxhdrs
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHKFRAME
    - rxstuff
    - strcmp
    - vtc_fatal
    - replace_frame
    - CAST_OBJ_NOTNULL
    - STRTOU32_CHECK
    linkageType: ''
    returnType: void
    signature: void cmd_rxhdrs(CMD_ARGS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2233,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2236,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:2237,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2239,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2241,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2246,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2249,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2249,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2253,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2255,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2222
    functionDepth: 4
    functionLinenumber: 2222
    functionLinenumberEnd: 2256
    functionName: cmd_rxcont
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHKFRAME
    - rxstuff
    - strcmp
    - vtc_fatal
    - STRTOU32
    - replace_frame
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void cmd_rxcont(CMD_ARGS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2283,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2286,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:2288,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2290,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2292,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2297,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2300,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2300,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2304,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2306,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2272
    functionDepth: 4
    functionLinenumber: 2272
    functionLinenumberEnd: 2307
    functionName: cmd_rxdata
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHKFRAME
    - rxstuff
    - strcmp
    - vtc_fatal
    - STRTOU32
    - replace_frame
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void cmd_rxdata(CMD_ARGS)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2328,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2330,1
    - Dst: ONLY_H2_SERVER
      Src: /src/VTest2/src/vtc_http2.c:2331,1
    - Dst: ONLY_H2_CLIENT
      Src: /src/VTest2/src/vtc_http2.c:2333,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2336,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2336,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_http2.c:2337,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2343,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2348,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2348,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_http2.c:2349,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2353,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2357,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2357,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_http2.c:2358,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2362,1
    - Dst: replace_frame
      Src: /src/VTest2/src/vtc_http2.c:2365,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2366
      start: 2320
    functionDepth: 4
    functionLinenumber: 2320
    functionLinenumberEnd: 2366
    functionName: cmd_rxmsg
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - ONLY_H2_SERVER
    - CHECK_OBJ_ORNULL
    - rxstuff
    - CHKFRAME
    - strcmp
    - ONLY_H2_CLIENT
    - replace_frame
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void cmd_rxmsg(CMD_ARGS)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2391,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2394,1
    - Dst: STRTOU32_CHECK
      Src: /src/VTest2/src/vtc_http2.c:2395,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2397,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2399,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2405,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2408,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2412,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2416
      start: 2380
    functionDepth: 4
    functionLinenumber: 2380
    functionLinenumberEnd: 2416
    functionName: cmd_rxpush
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHKFRAME
    - rxstuff
    - strcmp
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - STRTOU32_CHECK
    linkageType: ''
    returnType: void
    signature: void cmd_rxpush(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2428,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2429,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2430,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2422
    functionDepth: 4
    functionLinenumber: 2422
    functionLinenumberEnd: 2435
    functionName: cmd_rxwinup
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHKFRAME
    - rxstuff
    - CAST_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void cmd_rxwinup(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2449,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2450,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2451,1
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2452,1
    - Dst: CHKFRAME
      Src: /src/VTest2/src/vtc_http2.c:2453,1
    - Dst: isnan
      Src: /src/VTest2/src/vtc_http2.c:2454,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:2456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2460
      start: 2441
    functionDepth: 4
    functionLinenumber: 2441
    functionLinenumberEnd: 2460
    functionName: cmd_rxsettings
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHKFRAME
    - rxstuff
    - VTAILQ_FOREACH
    - CAST_OBJ_NOTNULL
    - isnan
    linkageType: ''
    returnType: void
    signature: void cmd_rxsettings(CMD_ARGS)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2470,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2472,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2475,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2477,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2483
      start: 2465
    functionDepth: 4
    functionLinenumber: 2465
    functionLinenumberEnd: 2483
    functionName: cmd_rxprio
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - rxstuff
    - CAST_OBJ_NOTNULL
    - vtc_fatal
    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: 2501
      start: 2485
    functionDepth: 0
    functionLinenumber: 2485
    functionLinenumberEnd: 2501
    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:2531,1
    - Dst: rxstuff
      Src: /src/VTest2/src/vtc_http2.c:2532,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2524
    functionDepth: 4
    functionLinenumber: 2524
    functionLinenumberEnd: 2534
    functionName: cmd_rxframe
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - rxstuff
    - CAST_OBJ_NOTNULL
    - vtc_fatal
    linkageType: ''
    returnType: void
    signature: void cmd_rxframe(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2546,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2548,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2550,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2550,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2553,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2554,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2555,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2556,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2557,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2557,1
    - Dst: cmd_var_resolve
      Src: /src/VTest2/src/vtc_http2.c:2558,1
    - Dst: cmd_var_resolve
      Src: /src/VTest2/src/vtc_http2.c:2560,1
    - Dst: vtc_expect
      Src: /src/VTest2/src/vtc_http2.c:2561,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2562,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2563
      start: 2536
    functionDepth: 2
    functionLinenumber: 2536
    functionLinenumberEnd: 2563
    functionName: cmd_expect
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - AN
    - pthread_mutex_unlock
    - strcmp
    - AZ
    - vtc_expect
    - CAST_OBJ_NOTNULL
    - PTOK
    - CHECK_OBJ_NOTNULL
    - cmd_var_resolve
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void cmd_expect(CMD_ARGS)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2578,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2580,1
    - Dst: vtc_gunzip
      Src: /src/VTest2/src/vtc_http2.c:2582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2569
    functionDepth: 1
    functionLinenumber: 2569
    functionLinenumberEnd: 2583
    functionName: cmd_gunzip
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - vtc_gunzip
    - CAST_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:2596,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2597,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2598,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2599,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2600,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2600,1
    - Dst: VFIL_writefile
      Src: /src/VTest2/src/vtc_http2.c:2601,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2602,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_http2.c:2603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2590
    functionDepth: 1
    functionLinenumber: 2590
    functionLinenumberEnd: 2604
    functionName: cmd_write_body
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - AN
    - strcmp
    - AZ
    - VFIL_writefile
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - strerror
    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:2651,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http2.c:2652,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - priv
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2646
    functionDepth: 4
    functionLinenumber: 2646
    functionLinenumberEnd: 2655
    functionName: stream_thread
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - CAST_OBJ_NOTNULL
    - parse_string
    linkageType: ''
    returnType: void
    signature: 'void *

      stream_thread(void *priv)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2666,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_http2.c:2668,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_http2.c:2670,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_http2.c:2674,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2675,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2676,1
    - Dst: pthread_cond_init
      Src: /src/VTest2/src/vtc_http2.c:2676,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_http2.c:2677,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2678,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/src/vtc_http2.c:2679,1
    - Dst: vtc_logopen
      Src: /src/VTest2/src/vtc_http2.c:2682,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_http2.c:2683,1
    - Dst: STRTOU32
      Src: /src/VTest2/src/vtc_http2.c:2688,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2690,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http2.c:2693,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2698,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2698,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc_http2.c:2699,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2700,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2700,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 2
    argNames:
    - name
    - h
    argTypes:
    - char*
    - struct http*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2660
    functionDepth: 1
    functionLinenumber: 2660
    functionLinenumberEnd: 2702
    functionName: stream_new
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - vtc_logopen
    - AN
    - pthread_mutex_unlock
    - strcmp
    - CHECK_OBJ_NOTNULL
    - pthread_mutex_lock
    - vtc_fatal
    - STRTOU32
    - bprintf
    - VTAILQ_INSERT_HEAD
    - PTOK
    - vtc_log_set_cmd
    - pthread_cond_init
    - REPLACE
    - VTAILQ_INIT
    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:2713,1
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_http2.c:2715,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_http2.c:2716,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:2717,1
    - Dst: vtc_logclose
      Src: /src/VTest2/src/vtc_http2.c:2719,1
    - Dst: clean_headers
      Src: /src/VTest2/src/vtc_http2.c:2720,1
    - Dst: clean_headers
      Src: /src/VTest2/src/vtc_http2.c:2721,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2722,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:2723,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:2724,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http2.c:2725,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_http2.c:2726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2708
    functionDepth: 3
    functionLinenumber: 2708
    functionLinenumberEnd: 2727
    functionName: stream_delete
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_logclose
    - VTAILQ_REMOVE
    - AZ
    - VTAILQ_FOREACH_SAFE
    - FREE_OBJ
    - clean_frame
    - free
    - clean_headers
    - CHECK_OBJ_NOTNULL
    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:2736,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2737,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2738,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_http2.c:2738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2733
    functionDepth: 1
    functionLinenumber: 2733
    functionLinenumberEnd: 2740
    functionName: stream_start
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - PTOK
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - pthread_create
    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:2751,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2752,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2753,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_http2.c:2753,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2755,1
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_http2.c:2758,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_http2.c:2759,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:2760,1
    - Dst: clean_frame
      Src: /src/VTest2/src/vtc_http2.c:2762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2745
    functionDepth: 3
    functionLinenumber: 2745
    functionLinenumberEnd: 2765
    functionName: stream_wait
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - VTAILQ_REMOVE
    - pthread_join
    - VTAILQ_FOREACH_SAFE
    - vtc_fatal
    - clean_frame
    - PTOK
    - CHECK_OBJ_NOTNULL
    linkageType: ''
    returnType: void
    signature: void stream_wait(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_start
      Src: /src/VTest2/src/vtc_http2.c:2774,1
    - Dst: stream_wait
      Src: /src/VTest2/src/vtc_http2.c:2775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2776
      start: 2771
    functionDepth: 4
    functionLinenumber: 2771
    functionLinenumberEnd: 2776
    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:2837,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http2.c:2839,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2839,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_http2.c:2842,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2843,1
    - Dst: stream_new
      Src: /src/VTest2/src/vtc_http2.c:2846,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2853,1
    - Dst: stream_wait
      Src: /src/VTest2/src/vtc_http2.c:2854,1
    - Dst: stream_wait
      Src: /src/VTest2/src/vtc_http2.c:2860,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2862,1
    - Dst: stream_start
      Src: /src/VTest2/src/vtc_http2.c:2863,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_http2.c:2866,1
    - Dst: stream_run
      Src: /src/VTest2/src/vtc_http2.c:2867,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2871,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_http2.c:2872,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2874
      start: 2830
    functionDepth: 5
    functionLinenumber: 2830
    functionLinenumberEnd: 2874
    functionName: cmd_stream
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - stream_new
    - stream_run
    - strcmp
    - AZ
    - stream_start
    - VTAILQ_FOREACH
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - stream_wait
    - REPLACE
    linkageType: ''
    returnType: void
    signature: void cmd_stream(CMD_ARGS)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2898,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2917,1
    - Dst: HPK_ResizeTbl
      Src: /src/VTest2/src/vtc_http2.c:2918,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http2.c:2920,1
    - Dst: HPK_ResizeTbl
      Src: /src/VTest2/src/vtc_http2.c:2921,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_http2.c:2924,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http2.c:2927,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 2
    argNames:
    - hp
    - s
    argTypes:
    - struct http*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2876
    functionDepth: 1
    functionLinenumber: 2876
    functionLinenumberEnd: 2930
    functionName: b64_settings
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - HPK_ResizeTbl
    - AN
    - vtc_fatal
    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:2935,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2936,1
    - Dst: pthread_mutex_init
      Src: /src/VTest2/src/vtc_http2.c:2936,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2937,1
    - Dst: pthread_cond_init
      Src: /src/VTest2/src/vtc_http2.c:2937,1
    - Dst: VTAILQ_INIT
      Src: /src/VTest2/src/vtc_http2.c:2938,1
    - Dst: HPK_NewCtx
      Src: /src/VTest2/src/vtc_http2.c:2945,1
    - Dst: HPK_NewCtx
      Src: /src/VTest2/src/vtc_http2.c:2946,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2947,1
    - Dst: pthread_create
      Src: /src/VTest2/src/vtc_http2.c:2947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - hp
    argTypes:
    - struct http*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2948
      start: 2932
    functionDepth: 1
    functionLinenumber: 2932
    functionLinenumberEnd: 2948
    functionName: start_h2
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - HPK_NewCtx
    - pthread_create
    - PTOK
    - CHECK_OBJ_NOTNULL
    - pthread_cond_init
    - pthread_mutex_init
    - 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:2955,1
    - Dst: VTAILQ_FOREACH_SAFE
      Src: /src/VTest2/src/vtc_http2.c:2956,1
    - Dst: stream_wait
      Src: /src/VTest2/src/vtc_http2.c:2958,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2959,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2959,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_http2.c:2960,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2961,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2961,1
    - Dst: stream_delete
      Src: /src/VTest2/src/vtc_http2.c:2962,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2965,1
    - Dst: pthread_mutex_lock
      Src: /src/VTest2/src/vtc_http2.c:2965,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2967,1
    - Dst: pthread_cond_signal
      Src: /src/VTest2/src/vtc_http2.c:2967,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2968,1
    - Dst: pthread_mutex_unlock
      Src: /src/VTest2/src/vtc_http2.c:2968,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2969,1
    - Dst: pthread_join
      Src: /src/VTest2/src/vtc_http2.c:2969,1
    - Dst: HPK_FreeCtx
      Src: /src/VTest2/src/vtc_http2.c:2971,1
    - Dst: HPK_FreeCtx
      Src: /src/VTest2/src/vtc_http2.c:2972,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2974,1
    - Dst: pthread_mutex_destroy
      Src: /src/VTest2/src/vtc_http2.c:2974,1
    - Dst: PTOK
      Src: /src/VTest2/src/vtc_http2.c:2975,1
    - Dst: pthread_cond_destroy
      Src: /src/VTest2/src/vtc_http2.c:2975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - hp
    argTypes:
    - struct http*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2976
      start: 2950
    functionDepth: 4
    functionLinenumber: 2950
    functionLinenumberEnd: 2976
    functionName: stop_h2
    functionSourceFile: /src/VTest2/src/vtc_http2.c
    functionUses: 0
    functionsReached:
    - pthread_mutex_destroy
    - pthread_cond_signal
    - HPK_FreeCtx
    - pthread_mutex_unlock
    - VTAILQ_REMOVE
    - pthread_join
    - stream_delete
    - VTAILQ_FOREACH_SAFE
    - pthread_cond_destroy
    - PTOK
    - CHECK_OBJ_NOTNULL
    - stream_wait
    - pthread_mutex_lock
    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
    - vtc_log
    - strcmp
    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
    - vtc_log
    - strcmp
    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_finish
    - VRE_free
    - vtc_fatal
    - VSB_len
    - strerror
    - VSB_destroy
    - vtc_dump
    - strstr
    - AZ
    - VSB_init
    - getc
    - VRE_compile
    - popen
    - VSB_data
    - VSB_new_auto
    - AN
    - VSB_putc
    - WTERMSIG
    - VRE_match
    - vtc_log
    - VSB_printf
    - VSB_clear
    - pclose
    - VRE_error
    - WIFSIGNALED
    - VSB_fini
    - WEXITSTATUS
    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:
    - AN
    - strcmp
    - atoi
    - vtc_fatal
    - cmd_shell_engine
    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:
    - strcmp
    - AZ
    - fclose
    - vtc_fatal
    - fputs
    - strerror
    - fopen
    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
    - AN
    - setenv
    - strcmp
    - vtc_fatal
    - strerror
    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:
    - vtc_log
    - AN
    - AZ
    - VNUM
    - vtc_fatal
    - VTIM_sleep
    - isnan
    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:
    - vtc_log
    - VFIL_readfile
    - vtc_fatal
    - free
    - strerror
    - parse_string
    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:
    - VSS_ResolveOne
    - VSA_free
    - VTCP_name
    - strcmp
    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:
    - VSS_ResolveOne
    - VSA_free
    - VTCP_bind
    - VTCP_close
    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:
    - VUS_resolver
    - AZ
    - close
    linkageType: ''
    returnType: int
    signature: int abstract_uds_works(void)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:617,1
    - Dst: ipvx_works
      Src: /src/VTest2/src/vtc_misc.c:617,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:618,1
    - Dst: ipvx_works
      Src: /src/VTest2/src/vtc_misc.c:618,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:619,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:620,1
    - Dst: addr_no_randomize_works
      Src: /src/VTest2/src/vtc_misc.c:620,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:621,1
    - Dst: dns_works
      Src: /src/VTest2/src/vtc_misc.c:621,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:622,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:623,1
    - Dst: geteuid
      Src: /src/VTest2/src/vtc_misc.c:623,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:624,1
    - Dst: getpwnam
      Src: /src/VTest2/src/vtc_misc.c:624,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:625,1
    - Dst: getpwnam
      Src: /src/VTest2/src/vtc_misc.c:625,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:626,1
    - Dst: getgrnam
      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: FEATURE
      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: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:632,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:633,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:634,1
    - Dst: FEATURE
      Src: /src/VTest2/src/vtc_misc.c:635,1
    - Dst: abstract_uds_works
      Src: /src/VTest2/src/vtc_misc.c:635,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:637,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:642,1
    - Dst: system
      Src: /src/VTest2/src/vtc_misc.c:643,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_misc.c:644,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:646,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_misc.c:649,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:654,1
    - Dst: find_cmd
      Src: /src/VTest2/src/vtc_misc.c:655,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_misc.c:659,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:666,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_misc.c:669,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 673
    functionName: cmd_feature
    functionSourceFile: /src/VTest2/src/vtc_misc.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - strcmp
    - geteuid
    - getpwnam
    - find_cmd
    - addr_no_randomize_works
    - ipvx_works
    - dns_works
    - vtc_fatal
    - FEATURE
    - getgrnam
    - abstract_uds_works
    - system
    - WEXITSTATUS
    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: 604
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 604
    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: 9
    argNames:
    - (
    - vl
    - ','
    - nm
    - ','
    - type
    - ','
    - chr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: VTC_CHECK_NAME
    functionSourceFile: /src/VTest2/src/vtc.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VTC_CHECK_NAME(vl, nm, type, chr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: 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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    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: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    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: 64
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 64
    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: 74
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 74
    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: 83
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 83
    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
    - vtc_logopen
    - VTAILQ_INSERT_TAIL
    - AN
    - REPLACE
    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
    - AZ
    - VSM_Destroy
    - vtc_fatal
    - CHECK_OBJ_NOTNULL
    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:
    - vtc_log
    - AN
    - VSM_Error
    - macro_expandf
    - VSM_Attach
    - vtc_fatal
    - vsm_detach
    - VSM_New
    - CHECK_OBJ_NOTNULL
    - VSB_destroy
    - VSB_data
    - 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:
    - vtc_logclose
    - FREE_OBJ
    - vsm_detach
    - CHECK_OBJ_NOTNULL
    - REPLACE
    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:
    - vtc_log
    - VSB_finish
    - STATUS_BITS
    - AN
    - vsm_attach
    - AZ
    - VAV_Parse
    - vtc_fatal
    - VAV_Free
    - VSM_Status
    - VSB_data
    - CHECK_OBJ_NOTNULL
    - VSB_destroy
    - VSB_new_auto
    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_delete
    - AN
    - vsm_expect_status
    - VTAILQ_REMOVE
    - strcmp
    - AZ
    - VTC_CHECK_NAME
    - VTAILQ_FOREACH_SAFE
    - vsm_attach
    - VTAILQ_FOREACH
    - vtc_fatal
    - vsm_detach
    - CHECK_OBJ_NOTNULL
    - vsm_new
    - REPLACE
    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: 36
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 36
    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:100,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 8
    argCount: 1
    argNames:
    - ucs
    argTypes:
    - teken_char_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 120
    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: 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:
    - VTAILQ_EMPTY
    - VTAILQ_REMOVE
    - VRE_free
    - FREE_OBJ
    - CHECK_OBJ_NOTNULL
    - VSB_destroy
    - VTAILQ_FIRST
    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:
    - vtc_logclose
    - logexp_delete_tests
    - AN
    - AZ
    - VSM_Destroy
    - FREE_OBJ
    - VSL_Delete
    - free
    - CHECK_OBJ_NOTNULL
    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:
    - ALLOC_OBJ
    - vtc_logopen
    - AN
    - VTAILQ_INSERT_TAIL
    - VSL_New
    - VSM_Error
    - macro_expandf
    - VSM_Attach
    - vtc_fatal
    - VSM_New
    - vtc_log_set_cmd
    - VSB_destroy
    - VSB_data
    - REPLACE
    - VTAILQ_INIT
    - VSM_Arg
    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:
    - vtc_log
    - logexp_clean
    - VTAILQ_INSERT_TAIL
    - NEEDLESS
    - logexp_next
    - CHECK_OBJ
    - VTAILQ_NEXT
    - abort
    - CHECK_OBJ_NOTNULL
    - VSB_data
    - VTAILQ_INIT
    - VTAILQ_FIRST
    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_CLEAR)
      pos:
        line_end: 392
        line_start: 392
        source_file: /src/VTest2/src/vtc_logexp.c
    - condition: (test->skip_max != LE_SEEN)
      pos:
        line_end: 391
        line_start: 391
        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:
    - vtc_log
    - AN
    - assert
    - logexp_alt
    - logexp_match
    - VSB_data
    - 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
    - assert
    - VTAILQ_FOREACH
    - VTAILQ_FIRST
    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: 529
        line_start: 529
        source_file: /src/VTest2/src/vtc_logexp.c
    - condition: (r == LEM_OK)
      pos:
        line_end: 543
        line_start: 543
        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:
    - VSL_CDATA
    - VSL_ID
    - AN
    - VSL_CLIENT
    - assert
    - CHECK_OBJ_NOTNULL
    - VSL_LEN
    - logexp_done
    - VSL_BACKEND
    - logexp_next
    - CAST_OBJ_NOTNULL
    - VSL_Next
    - logexp_match
    - VSL_TAG
    - logexp_failchk
    - VSL_Match
    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
    - AN
    - logexp_done
    - AZ
    - logexp_next
    - vtc_fatal
    - VSLQ_Dispatch
    - VTIM_sleep
    - CAST_OBJ_NOTNULL
    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:
    - CHECK_OBJ_NOTNULL
    - AZ
    - VSLQ_Delete
    - AN
    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:
    - VSLQ_New
    - AN
    - pthread_create
    - AZ
    - VSL_Error
    - VSL_CursorVSM
    - vtc_fatal
    - VSL_DeleteCursor
    - VSM_Status
    - PTOK
    - CHECK_OBJ_NOTNULL
    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
    - pthread_join
    - vtc_fatal
    - logexp_close
    - PTOK
    - CHECK_OBJ_NOTNULL
    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:
    - ALLOC_OBJ
    - VSB_quote
    - VSB_finish
    - VSB_printf
    - AN
    - VTAILQ_INSERT_TAIL
    - strcmp
    - AZ
    - VRE_error
    - vtc_fatal
    - VSB_init
    - strlen
    - VSB_fini
    - VRE_compile
    - strtoll
    - VSL_Name2Tag
    - VSB_new_auto
    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:
    - strcmp
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - cmd_logexp_common
    - 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:
    - ALLOC_OBJ
    - VSB_finish
    - VSB_printf
    - AN
    - VTAILQ_INSERT_TAIL
    - strcmp
    - AZ
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - cmd_logexp_common
    - VSB_new_auto
    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:
    - CHECK_OBJ_NOTNULL
    - logexp_delete_tests
    - parse_string
    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:
    - VSLQ_Name2Grouping
    - logexp_spec
    - atoi
    - vtc_fatal
    - logexp_start
    - strcmp
    - AZ
    - VTAILQ_FOREACH_SAFE
    - VSL_Error
    - VTAILQ_FOREACH
    - strlen
    - VSL_Arg
    - logexp_delete
    - pthread_cancel
    - VTAILQ_REMOVE
    - logexp_wait
    - CHECK_OBJ_NOTNULL
    - logexp_new
    - VTC_CHECK_NAME
    - REPLACE
    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:
    - ALLOC_OBJ
    - pthread_mutex_init
    - pthread_setspecific
    - AN
    - vbprintf
    - va_start
    - PTOK
    - VSB_new_auto
    - REPLACE
    - va_end
    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_setspecific
    - pthread_getspecific
    - FREE_OBJ
    - CAST_OBJ_NOTNULL
    - PTOK
    - VSB_destroy
    - REPLACE
    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:
    - exit
    - pthread_self
    - WRONG
    - fail_out
    - pthread_equal
    - pthread_exit
    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
    - VSB_printf
    - assert
    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:
    - vtc_leadinv
    - va_end
    - va_start
    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:
    - assert
    - pthread_mutex_unlock
    - snprintf
    - round
    - VSB_len
    - VTIM_mono
    - memcpy
    - PTOK
    - VSB_data
    - pthread_mutex_lock
    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
    - vtc_leadinv
    - vtc_logfail
    - va_start
    - GET_VL
    - REL_VL
    - va_end
    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
    - vtc_leadinv
    - vtc_logfail
    - va_start
    - GET_VL
    - REL_VL
    - va_end
    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_printf
    - AN
    - VSB_quote_pfx
    - VSB_putc
    - vtc_logfail
    - strlen
    - bprintf
    - GET_VL
    - REL_VL
    - vtc_leadin
    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:
    - VSB_printf
    - AN
    - VSB_cat
    - vtc_logfail
    - GET_VL
    - REL_VL
    - vtc_leadin
    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
    - fprintf
    - vtc_fatal
    - strerror
    - bprintf
    - abort
    - VBT_dump
    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
    - pthread_key_create
    - PTOK
    - 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:
    - strdup
    - VSB_finish
    - vtc_send_proxy
    - VSA_free
    - AN
    - VSS_ResolveOne
    - AZ
    - vtc_fatal
    - strtok_r
    - free
    - strerror
    - vtc_proxy_tlv
    - VSB_new_auto
    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
    - VTCP_open
    - AN
    - 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:
    - assert
    - AN
    - VUS_socklen
    - closefd
    - socket
    - VTCP_nonblocking
    - VTCP_connected
    - connect
    - poll
    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
    - vtc_log
    - strerror
    - assert
    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
    - VTCP_blocking
    - VUS_is
    - client_tcp_connect
    - client_proxy
    - vtc_fatal
    - client_uds_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:
    - vtc_log
    - VTCP_close
    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:
    - ALLOC_OBJ
    - vtc_logopen
    - AN
    - VTAILQ_INSERT_TAIL
    - Sess_New
    - bprintf
    - REPLACE
    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:
    - vtc_logclose
    - Sess_Destroy
    - FREE_OBJ
    - free
    - CHECK_OBJ_NOTNULL
    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:
    - vtc_log
    - AN
    - Sess_Start_Thread
    - CHECK_OBJ_NOTNULL
    - VSB_destroy
    - VSB_data
    - macro_expand
    - REPLACE
    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
    - pthread_join
    - vtc_fatal
    - PTOK
    - CHECK_OBJ_NOTNULL
    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:
    - client_delete
    - VTAILQ_REMOVE
    - client_wait
    - AZ
    - strcmp
    - VTAILQ_FOREACH_SAFE
    - VTC_CHECK_NAME
    - VTAILQ_FOREACH
    - REPLACE
    - Sess_GetOpt
    - client_start
    - vtc_fatal
    - bprintf
    - client_run
    - client_new
    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:
    - strdup
    - malloc
    - VTAILQ_INSERT_TAIL
    - AN
    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:
    - free
    - VTAILQ_FOREACH_SAFE
    - VTAILQ_REMOVE
    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:
    - strerror
    - VTAILQ_FOREACH
    - setenv
    - vtc_fatal
    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
    - VTCP_open
    - AN
    - 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:
    - vtc_log
    - VSB_finish
    - AN
    - strcmp
    - VTCP_Check
    - AZ
    - shutdown
    - VSB_cat
    - haproxy_cli_tcp_connect
    - vtc_fatal
    - VSB_tofile
    - CAST_OBJ_NOTNULL
    - VSB_data
    - strerror
    - vtc_dump
    - VSB_destroy
    - VSB_new_auto
    - macro_expand
    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:
    - recv
    - vtc_log
    - VTCP_close
    - vtc_fatal
    - strerror
    - VTCP_set_read_timeout
    - 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:
    - vtc_log
    - VSB_finish
    - AN
    - assert
    - strcmp
    - AZ
    - VRE_error
    - VRE_free
    - VSB_init
    - VSB_fini
    - vtc_fatal
    - VRE_compile
    - CAST_OBJ_NOTNULL
    - haproxy_cli_recv
    - 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:
    - vtc_log
    - VTCP_blocking
    - AN
    - haproxy_cli_tcp_connect
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - VSB_destroy
    - VSB_data
    - macro_expand
    - parse_string
    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
    - pthread_join
    - vtc_fatal
    - PTOK
    - CHECK_OBJ_NOTNULL
    - REPLACE
    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
    - CHECK_OBJ_NOTNULL
    - vtc_log
    - pthread_create
    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:
    - usleep
    - vtc_log
    - vtc_fatal
    - VTIM_mono
    - bprintf
    - VPF_Read
    - kill
    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:
    - bind
    - vtc_log
    - memset
    - assert
    - unlink
    - setenv
    - closefd
    - vtc_fatal
    - socket
    - strlen
    - bprintf
    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:
    - vtc_log
    - recv
    - memset
    - vtc_fatal
    - poll
    - 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:
    - ALLOC_OBJ
    - AN
    - malloc
    - bprintf
    - vtc_log_set_cmd
    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:
    - ALLOC_OBJ
    - AN
    - malloc
    - bprintf
    - vtc_log_set_cmd
    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:
    - assert
    - AN
    - VTCP_name
    - VSA_Get_Proto
    - vtc_fatal
    - macro_def
    - bprintf
    - VSA_getsockname
    - VTCP_listen_on
    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:
    - CHECK_OBJ_NOTNULL
    - REPLACE
    - FREE_OBJ
    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:
    - vtc_logopen
    - assert
    - getenv
    - VTCP_name
    - VSB_cat
    - vtc_fatal
    - VSB_destroy
    - VTCP_close
    - AZ
    - haproxy_cli_new
    - macro_def
    - bprintf
    - system
    - VSB_data
    - VSB_new_auto
    - VSA_getsockname
    - strdup
    - AN
    - VSA_Get_Proto
    - vtc_log_set_cmd
    - haproxy_mcli_new
    - macro_expand
    - VTCP_listen_on
    - ALLOC_OBJ
    - VTAILQ_INSERT_TAIL
    - REPLACE
    - VTAILQ_INIT
    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:
    - vtc_logclose
    - AZ
    - haproxy_cli_delete
    - closefd
    - FREE_OBJ
    - free
    - bprintf
    - system
    - CHECK_OBJ_NOTNULL
    - VSB_destroy
    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: (dup2(h->fds[3], 1) == 1)
      pos:
        line_end: 868
        line_start: 868
        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: (h->pid >= 0)
      pos:
        line_end: 862
        line_start: 862
        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_finish
    - assert
    - exit
    - execl
    - VSB_cat
    - closefd
    - fork
    - VSB_destroy
    - vtc_dump
    - haproxy_delete_envars
    - dup2
    - haproxy_wait_pidfile
    - AZ
    - pipe
    - macro_def
    - bprintf
    - VSB_data
    - VSB_new_auto
    - haproxy_create_mcli
    - strdup
    - AN
    - pthread_create
    - haproxy_write_conf
    - vtc_log
    - VSB_printf
    - haproxy_build_env
    - haproxy_bind_sdnotify
    - haproxy_wait_sdnotify_ready
    - chdir
    - PTOK
    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:
    - vtc_log
    - assert
    - pthread_join
    - AZ
    - vtc_wait4
    - haproxy_cli_run
    - closefd
    - VTIM_sleep
    - strerror
    - PTOK
    - kill
    - haproxy_start
    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:1009,1
    - Dst: VUDP_bind_on
      Src: /src/VTest2/src/vtc_haproxy.c:1019,1
    - Dst: VTCP_listen_on
      Src: /src/VTest2/src/vtc_haproxy.c:1022,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:1025,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:1027,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/src/vtc_haproxy.c:1028,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1029,1
    - Dst: VTCP_name
      Src: /src/VTest2/src/vtc_haproxy.c:1031,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:1032,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_haproxy.c:1033,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:1034,1
    - Dst: macro_def
      Src: /src/VTest2/src/vtc_haproxy.c:1036,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: bprintf
      Src: /src/VTest2/src/vtc_haproxy.c:1040,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:1041,1
    - Dst: haproxy_add_envar
      Src: /src/VTest2/src/vtc_haproxy.c:1043,1
    - Dst: free
      Src: /src/VTest2/src/vtc_haproxy.c:1046,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 2
    argNames:
    - h
    - vsb_data
    argTypes:
    - struct haproxy*
    - char*
    assertStmts:
    - condition: (sock > 0)
      pos:
        line_end: 1026
        line_start: 1026
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 1048
      start: 968
    functionDepth: 3
    functionLinenumber: 968
    functionLinenumberEnd: 1048
    functionName: haproxy_build_backends
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - strdup
    - vtc_log
    - assert
    - getenv
    - strcmp
    - AN
    - VTCP_name
    - memcmp
    - haproxy_add_envar
    - VSA_Get_Proto
    - VTCP_listen_on
    - vtc_fatal
    - macro_def
    - free
    - VUDP_bind_on
    - bprintf
    - VSA_getsockname
    - strstr
    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:1054,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1055,1
    - Dst: haproxy_start
      Src: /src/VTest2/src/vtc_haproxy.c:1057,1
    - Dst: haproxy_wait
      Src: /src/VTest2/src/vtc_haproxy.c:1058,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1059,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_haproxy.c:1059,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc_haproxy.c:1060,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1060,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:1061,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:1062,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:1063,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - h
    - expect
    argTypes:
    - struct haproxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1050
    functionDepth: 6
    functionLinenumber: 1050
    functionLinenumberEnd: 1064
    functionName: haproxy_check_conf
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - vtc_log
    - VSB_finish
    - AN
    - AZ
    - strstr
    - haproxy_wait
    - vtc_fatal
    - VSB_data
    - VSB_destroy
    - VSB_new_auto
    - haproxy_start
    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:1075,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1076,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_haproxy.c:1078,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1079,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_haproxy.c:1081,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:1083,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1084,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:1084,1
    - Dst: cmd_server_gen_haproxy_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1087,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1089,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_haproxy.c:1089,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1091,1
    - Dst: haproxy_build_backends
      Src: /src/VTest2/src/vtc_haproxy.c:1091,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1091,1
    - Dst: macro_expand
      Src: /src/VTest2/src/vtc_haproxy.c:1093,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1093,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1094,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:1096,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:1097,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - h
    - cfg
    - auto_be
    argTypes:
    - struct haproxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1070
    functionDepth: 4
    functionLinenumber: 1070
    functionLinenumberEnd: 1098
    functionName: haproxy_store_conf
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - VSB_finish
    - VSB_printf
    - haproxy_build_backends
    - AN
    - AZ
    - VSB_cat
    - cmd_server_gen_haproxy_conf
    - VSB_data
    - VSB_destroy
    - VSB_new_auto
    - macro_expand
    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:1105,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1105,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1106,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_haproxy.c:1107,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_haproxy.c:1107,1
    - Dst: vtc_dump
      Src: /src/VTest2/src/vtc_haproxy.c:1109,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1109,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_haproxy.c:1109,1
    - Dst: VFIL_writefile
      Src: /src/VTest2/src/vtc_haproxy.c:1110,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_haproxy.c:1111,1
    - Dst: VSB_len
      Src: /src/VTest2/src/vtc_haproxy.c:1111,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:1112,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_haproxy.c:1114,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_haproxy.c:1116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - h
    argTypes:
    - struct haproxy*
    assertStmts:
    - condition: (VSB_len(vsb) >= 0)
      pos:
        line_end: 1106
        line_start: 1106
        source_file: /src/VTest2/src/vtc_haproxy.c
    constantsTouched: []
    func_position:
      end: 1117
      start: 1100
    functionDepth: 4
    functionLinenumber: 1100
    functionLinenumberEnd: 1117
    functionName: haproxy_write_conf
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 1
    functionsReached:
    - AN
    - assert
    - VFIL_writefile
    - VSB_len
    - vtc_fatal
    - strerror
    - vtc_dump
    - VSB_destroy
    - VSB_data
    - macro_expand
    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:1194,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_haproxy.c:1195,1
    - Dst: haproxy_wait
      Src: /src/VTest2/src/vtc_haproxy.c:1199,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_haproxy.c:1200,1
    - Dst: haproxy_delete
      Src: /src/VTest2/src/vtc_haproxy.c:1201,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1206,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1206,1
    - Dst: VTC_CHECK_NAME
      Src: /src/VTest2/src/vtc_haproxy.c:1209,1
    - Dst: VTAILQ_FOREACH
      Src: /src/VTest2/src/vtc_haproxy.c:1210,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1211,1
    - Dst: haproxy_new
      Src: /src/VTest2/src/vtc_haproxy.c:1214,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1221,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1222,1
    - Dst: haproxy_store_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1223,1
    - Dst: haproxy_check_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1225,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1229,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1230,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1231,1
    - Dst: haproxy_store_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1232,1
    - Dst: haproxy_check_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1234,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1239,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1243,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1247,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1251,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1255,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1256,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_haproxy.c:1257,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:1258,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_haproxy.c:1259,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1264,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_haproxy.c:1265,1
    - Dst: haproxy_cli_run
      Src: /src/VTest2/src/vtc_haproxy.c:1267,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1272,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_haproxy.c:1273,1
    - Dst: haproxy_cli_run
      Src: /src/VTest2/src/vtc_haproxy.c:1275,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1280,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1281,1
    - Dst: haproxy_store_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1282,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1286,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_haproxy.c:1287,1
    - Dst: haproxy_store_conf
      Src: /src/VTest2/src/vtc_haproxy.c:1288,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1293,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_haproxy.c:1294,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1298,1
    - Dst: haproxy_start
      Src: /src/VTest2/src/vtc_haproxy.c:1299,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_haproxy.c:1302,1
    - Dst: haproxy_wait
      Src: /src/VTest2/src/vtc_haproxy.c:1303,1
    - Dst: vtc_fatal
      Src: /src/VTest2/src/vtc_haproxy.c:1306,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1185
    functionDepth: 7
    functionLinenumber: 1185
    functionLinenumberEnd: 1308
    functionName: cmd_haproxy
    functionSourceFile: /src/VTest2/src/vtc_haproxy.c
    functionUses: 0
    functionsReached:
    - haproxy_delete
    - VSB_cat
    - vtc_fatal
    - haproxy_start
    - strcmp
    - AZ
    - VTAILQ_FOREACH_SAFE
    - VTAILQ_FOREACH
    - haproxy_store_conf
    - haproxy_check_conf
    - haproxy_new
    - AN
    - VTAILQ_REMOVE
    - vtc_log
    - VTC_CHECK_NAME
    - haproxy_cli_run
    - haproxy_wait
    - strtoul
    - REPLACE
    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:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - c
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 2
    functionLinenumber: 31
    functionLinenumberEnd: 36
    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:57,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: 58
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 58
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - type
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 65
    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: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    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: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    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:92,1
    - Dst: teken_256to8
      Src: /src/VTest2/src/teken_subr_compat.h:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - t
    - fg
    - bg
    argTypes:
    - teken_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 96
    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:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - t
    - vt
    argTypes:
    - teken_t*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 103
    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:110,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: 112
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 112
    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:125,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: 127
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 127
    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: 143
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 143
    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:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - teken_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 152
    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:
    - pthread_cond_wait
    - pthread_cond_signal
    - assert
    - pthread_mutex_unlock
    - tunnel_is_open
    - AZ
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - PTOK
    - pthread_mutex_lock
    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_wait
    - pthread_cond_signal
    - AN
    - pthread_mutex_unlock
    - tunnel_is_open
    - assert
    - AZ
    - strcmp
    - atoi
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - PTOK
    - pthread_mutex_lock
    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:
    - pthread_cond_signal
    - assert
    - pthread_mutex_unlock
    - tunnel_is_open
    - AZ
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - PTOK
    - pthread_mutex_lock
    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
    - pthread_mutex_unlock
    - AZ
    - read
    - vtc_fatal
    - strerror
    - PTOK
    - pthread_mutex_lock
    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:
    - vtc_log
    - assert
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - vtc_fatal
    - strerror
    - PTOK
    - write
    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:
    - vtc_logopen
    - assert
    - vtc_fatal
    - strerror
    - pthread_cleanup_pop
    - poll
    - pthread_cond_wait
    - pthread_mutex_unlock
    - AZ
    - tunnel_write
    - pthread_cleanup_push
    - pthread_mutex_lock
    - memset
    - pthread_cond_signal
    - CAST_OBJ_NOTNULL
    - vtc_logclose
    - tunnel_is_open
    - tunnel_read
    - PTOK
    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->lsock >= 0)
      pos:
        line_end: 449
        line_start: 449
        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->asock < 0)
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/VTest2/src/vtc_tunnel.c
    - condition: (t->csock < 0)
      pos:
        line_end: 451
        line_start: 451
        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:
    - vtc_log
    - VTCP_blocking
    - pthread_cond_signal
    - assert
    - AN
    - VTCP_open
    - accept
    - pthread_mutex_unlock
    - vtc_fatal
    - strerror
    - PTOK
    - CHECK_OBJ_NOTNULL
    - VSB_destroy
    - VSB_data
    - macro_expand
    - pthread_mutex_lock
    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:
    - vtc_logopen
    - vtc_log
    - vtc_logclose
    - pthread_cond_signal
    - AN
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - CAST_OBJ_NOTNULL
    - pthread_cleanup_push
    - PTOK
    - vtc_log_set_cmd
    - tunnel_accept
    - pthread_cleanup_pop
    - parse_string
    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
    - vtc_logopen
    - pthread_mutex_init
    - AN
    - VTAILQ_INSERT_TAIL
    - pthread_mutex_unlock
    - bprintf
    - PTOK
    - pthread_cond_init
    - REPLACE
    - pthread_mutex_lock
    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
    - vtc_logclose
    - assert
    - VTCP_close
    - pthread_cond_destroy
    - FREE_OBJ
    - free
    - macro_undef
    - CHECK_OBJ_NOTNULL
    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:
    - assert
    - VTCP_close
    - AN
    - VTCP_name
    - VSA_Get_Proto
    - vtc_fatal
    - macro_def
    - bprintf
    - VSA_getsockname
    - VTCP_listen_on
    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:
    - vtc_log
    - assert
    - CHECK_OBJ_NOTNULL
    - pthread_create
    - PTOK
    - tunnel_listen
    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:
    - CHECK_OBJ_NOTNULL
    - tunnel_start
    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:
    - vtc_log
    - pthread_cond_signal
    - VTCP_close
    - pthread_join
    - vtc_fatal
    - PTOK
    - CHECK_OBJ_NOTNULL
    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:
    - CHECK_OBJ_ORNULL
    - pthread_mutex_unlock
    - VTAILQ_REMOVE
    - tunnel_wait
    - tunnel_delete
    - PTOK
    - pthread_mutex_lock
    - VTAILQ_FIRST
    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:
    - assert
    - pthread_mutex_unlock
    - strcmp
    - PTOK
    - AZ
    - VTC_CHECK_NAME
    - tunnel_wait
    - VTAILQ_FOREACH
    - tunnel_start_pause
    - vtc_fatal
    - bprintf
    - tunnel_start
    - tunnel_reset
    - CHECK_OBJ_NOTNULL
    - tunnel_new
    - pthread_mutex_lock
    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: 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: (size)
      pos:
        line_end: 88
        line_start: 88
        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: (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:
    - VTAILQ_EMPTY
    - assert
    - VTAILQ_REMOVE
    - free
    - VTAILQ_LAST
    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:
    - VTAILQ_EMPTY
    - pop_header
    - AN
    - assert
    - malloc
    - VTAILQ_INSERT_HEAD
    - HPK_GetHdr
    - memcpy
    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:
    - VTAILQ_EMPTY
    - pop_header
    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:
    - printf
    - VTAILQ_FOREACH
    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:
    - VTAILQ_EMPTY
    - pop_header
    - free
    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:
    - vtc_log
    - VSB_finish
    - memset
    - AN
    - assert
    - vtc_report_gz_bits
    - VSB_new_auto
    - AZ
    - VSB_len
    - VSB_bcat
    - inflateInit2
    - inflateEnd
    - inflate
    - APOS
    - VSB_data
    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:
    - vtc_log
    - VSB_finish
    - AN
    - AZ
    - vtc_gunzip_vsb
    - VSB_len
    - VSB_bcat
    - VSB_data
    - bprintf
    - APOS
    - VSB_destroy
    - VSB_new_auto
    - vtc_dump
    - memcpy
    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:
    - AZ
    - TRUST_ME
    - VSB_bcat
    - APOS
    - deflate
    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_finish
    - deflateEnd
    - assert
    - vtc_gzip_chunk
    - VSB_len
    - malloc
    - VSB_destroy
    - APOS
    - vtc_dump
    - vtc_report_gz_bits
    - AZ
    - strlen
    - bprintf
    - VSB_data
    - VSB_new_auto
    - memset
    - AN
    - deflateInit2
    - vtc_log
    - memcpy
    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:
    - AN
    - strcmp
    - free
    - vtc_gzip
    - synth_body
    - strtoul
    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:
    - ALLOC_OBJ
    - vtc_logopen
    - AN
    - VTAILQ_INSERT_TAIL
    - pthread_mutex_unlock
    - VTC_CHECK_NAME
    - malloc
    - bprintf
    - PTOK
    - vtc_log_set_cmd
    - REPLACE
    - pthread_mutex_lock
    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:
    - vtc_logclose
    - FREE_OBJ
    - free
    - macro_undef
    - CHECK_OBJ_NOTNULL
    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:
    - recv
    - vtc_fatal
    - strerror
    - strchr
    - VTCP_set_read_timeout
    - strtoul
    - 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:
    - assert
    - AN
    - VTCP_name
    - VSA_Get_Proto
    - vtc_fatal
    - macro_def
    - VUDP_close
    - VUDP_bind_on
    - bprintf
    - CHECK_OBJ_NOTNULL
    - VSA_getsockname
    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:
    - vtc_log
    - VSB_finish
    - AN
    - assert
    - strcmp
    - AZ
    - VRE_error
    - VRE_free
    - VSB_init
    - VSB_fini
    - vtc_fatal
    - VRE_compile
    - CAST_OBJ_NOTNULL
    - 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:
    - strcmp
    - AZ
    - syslog_rx
    - CAST_OBJ_NOTNULL
    - get_syslog_level
    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:
    - vtc_log
    - assert
    - VUDP_close
    - CAST_OBJ_NOTNULL
    - parse_string
    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:
    - vtc_log
    - pthread_create
    - syslog_bind
    - PTOK
    - CHECK_OBJ_NOTNULL
    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:
    - vtc_log
    - pthread_cancel
    - pthread_join
    - PTOK
    - CHECK_OBJ_NOTNULL
    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
    - pthread_join
    - vtc_fatal
    - PTOK
    - CHECK_OBJ_NOTNULL
    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:
    - atoi
    - syslog_stop
    - vtc_fatal
    - syslog_wait
    - VTAILQ_FIRST
    - pthread_mutex_unlock
    - strcmp
    - AZ
    - VTAILQ_FOREACH
    - VUDP_close
    - bprintf
    - pthread_mutex_lock
    - syslog_start
    - CHECK_OBJ_ORNULL
    - AN
    - pthread_cancel
    - VTAILQ_REMOVE
    - syslog_delete
    - get_syslog_level
    - CHECK_OBJ_NOTNULL
    - syslog_new
    - syslog_bind
    - PTOK
    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
    - pthread_mutex_init
    - AN
    - VTAILQ_INSERT_TAIL
    - pthread_self
    - vtc_fatal
    - PTOK
    - pthread_equal
    - pthread_cond_init
    - REPLACE
    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:
    - AZ
    - strtoul
    - vtc_fatal
    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:
    - barrier_expect
    - pthread_mutex_unlock
    - PTOK
    - CHECK_OBJ_NOTNULL
    - pthread_mutex_lock
    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: (b->waiters <= b->expected)
      pos:
        line_end: 192
        line_start: 192
        source_file: /src/VTest2/src/vtc_barrier.c
    - 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
    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_logopen
    - assert
    - VTCP_name
    - closefd
    - vtc_fatal
    - strerror
    - macro_undef
    - poll
    - pthread_cleanup_pop
    - pthread_mutex_unlock
    - macro_def
    - pthread_cleanup_push
    - calloc
    - VSA_getsockname
    - pthread_mutex_lock
    - pthread_cond_signal
    - AN
    - accept
    - VSA_Get_Proto
    - VTCP_nonblocking
    - CAST_OBJ_NOTNULL
    - VTCP_listen_on
    - vtc_log
    - vtc_logclose
    - free
    - PTOK
    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_cond_wait
    - barrier_expect
    - pthread_mutex_unlock
    - pthread_create
    - PTOK
    - CHECK_OBJ_NOTNULL
    - pthread_mutex_lock
    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:
    - pthread_mutex_unlock
    - vtc_fatal
    - PTOK
    - CHECK_OBJ_NOTNULL
    - pthread_mutex_lock
    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: (b->type == BARRIER_COND)
      pos:
        line_end: 301
        line_start: 301
        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
    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:
    - vtc_log
    - VTIM_real
    - assert
    - pthread_mutex_unlock
    - pthread_cond_timedwait
    - vtc_fatal
    - PTOK
    - CHECK_OBJ_NOTNULL
    - pthread_cond_broadcast
    - pthread_mutex_lock
    - VTIM_timespec
    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:
    - vtc_log
    - VTCP_open
    - assert
    - read
    - macro_expandf
    - closefd
    - vtc_fatal
    - strerror
    - CHECK_OBJ_NOTNULL
    - VSB_destroy
    - VSB_data
    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:
    - barrier_sock_sync
    - WRONG
    - vtc_fatal
    - CHECK_OBJ_NOTNULL
    - barrier_cond_sync
    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_cyclic
    - pthread_mutex_trylock
    - barrier_sock
    - barrier_cond
    - assert
    - pthread_mutex_unlock
    - strcmp
    - pthread_join
    - AZ
    - VTC_CHECK_NAME
    - VTAILQ_FOREACH_SAFE
    - WRONG
    - VTAILQ_FOREACH
    - barrier_new
    - vtc_fatal
    - barrier_sync
    - AN
    - PTOK
    linkageType: ''
    returnType: void
    signature: void cmd_barrier(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_main.c:125,1
    - Dst: CHECK_OBJ_ORNULL
      Src: /src/VTest2/src/vtc_main.c:126,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_main.c:128,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_main.c:129,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_main.c:131,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:132,1
    - Dst: mmap
      Src: /src/VTest2/src/vtc_main.c:134,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:136,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_main.c:137,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:138,1
    - Dst: memset
      Src: /src/VTest2/src/vtc_main.c:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (bp->buf != MAP_FAILED)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 142
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 142
    functionName: get_buf
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - CHECK_OBJ_ORNULL
    - VSB_clear
    - AN
    - assert
    - VTAILQ_REMOVE
    - memset
    - VSB_new_auto
    - mmap
    - VTAILQ_FIRST
    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:147,1
    - Dst: VTAILQ_INSERT_HEAD
      Src: /src/VTest2/src/vtc_main.c:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bp
    argTypes:
    - struct buf**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: rel_buf
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - VTAILQ_INSERT_HEAD
    linkageType: ''
    returnType: void
    signature: void rel_buf(struct buf **bp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/VTest2/src/vtc_main.c:164,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 171
    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:180,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:182,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:184,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:185,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:186,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:187,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:188,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:189,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:190,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:191,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:192,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:193,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:194,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:195,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:196,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 198
    functionName: v_noreturn_::usage
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: 'void v_noreturn_

      usage(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:212,1
    - Dst: memcmp
      Src: /src/VTest2/src/vtc_main.c:212,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:212,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:214,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:215,1
    - Dst: write
      Src: /src/VTest2/src/vtc_main.c:215,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:215,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:215,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:218,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:219,1
    - Dst: system
      Src: /src/VTest2/src/vtc_main.c:219,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: 214
        line_start: 214
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 220
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 220
    functionName: cleaner_do
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - assert
    - AZ
    - memcmp
    - strlen
    - bprintf
    - system
    - write
    linkageType: ''
    returnType: void
    signature: void cleaner_do(const char *dirname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:230,1
    - Dst: pipe
      Src: /src/VTest2/src/vtc_main.c:230,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:231,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:232,1
    - Dst: fork
      Src: /src/VTest2/src/vtc_main.c:233,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:234,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_main.c:236,1
    - Dst: nice
      Src: /src/VTest2/src/vtc_main.c:237,1
    - Dst: setbuf
      Src: /src/VTest2/src/vtc_main.c:238,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:239,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_main.c:239,1
    - Dst: fgets
      Src: /src/VTest2/src/vtc_main.c:240,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:241,1
    - Dst: memcmp
      Src: /src/VTest2/src/vtc_main.c:241,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:241,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:242,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:243,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:244,1
    - Dst: fork
      Src: /src/VTest2/src/vtc_main.c:248,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:249,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:251,1
    - Dst: execlp
      Src: /src/VTest2/src/vtc_main.c:251,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:253,1
    - Dst: waitpid
      Src: /src/VTest2/src/vtc_main.c:253,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:254,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:256,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_main.c:258,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (cleaner_pid >= 0)
      pos:
        line_end: 233
        line_start: 233
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (q > buf)
      pos:
        line_end: 242
        line_start: 242
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (q[-1] == '\n')
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (pp >= 0)
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (p[1] > STDERR_FILENO)
      pos:
        line_end: 231
        line_start: 231
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (waitpid(pp, &st, 0) == pp)
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (p[0] > STDERR_FILENO)
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 260
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 260
    functionName: cleaner_setup
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - setbuf
    - dup2
    - assert
    - exit
    - AZ
    - memcmp
    - waitpid
    - fgets
    - closefd
    - pipe
    - strlen
    - fork
    - execlp
    - nice
    linkageType: ''
    returnType: void
    signature: void cleaner_setup(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: closefd
      Src: /src/VTest2/src/vtc_main.c:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 267
    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:275,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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (waitpid(cleaner_pid, &st, 0) == cleaner_pid)
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 279
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 279
    functionName: cleaner_finish
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - waitpid
    - AZ
    - closefd
    - assert
    linkageType: ''
    returnType: void
    signature: void cleaner_finish(void)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_main.c:297,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_main.c:298,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:303,1
    - Dst: kill
      Src: /src/VTest2/src/vtc_main.c:303,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:305,1
    - Dst: read
      Src: /src/VTest2/src/vtc_main.c:309,1
    - Dst: VSB_bcat
      Src: /src/VTest2/src/vtc_main.c:311,1
    - Dst: wait4
      Src: /src/VTest2/src/vtc_main.c:315,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:316,1
    - Dst: VTIM_mono
      Src: /src/VTest2/src/vtc_main.c:317,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:318,1
    - Dst: close
      Src: /src/VTest2/src/vtc_main.c:318,1
    - Dst: WTERMSIG
      Src: /src/VTest2/src/vtc_main.c:320,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_main.c:322,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:324,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:324,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_main.c:326,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:327,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_main.c:328,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_main.c:330,1
    - Dst: VSB_quote_pfx
      Src: /src/VTest2/src/vtc_main.c:331,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:332,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:333,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:333,1
    - Dst: rel_buf
      Src: /src/VTest2/src/vtc_main.c:334,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:337,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:337,1
    - Dst: cleaner_do
      Src: /src/VTest2/src/vtc_main.c:347,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:349,1
    - Dst: fopen
      Src: /src/VTest2/src/vtc_main.c:350,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:351,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:352,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:352,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:353,1
    - Dst: fclose
      Src: /src/VTest2/src/vtc_main.c:353,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:355,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:358,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:361,1
    - Dst: WIFSIGNALED
      Src: /src/VTest2/src/vtc_main.c:363,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:364,1
    - Dst: WTERMSIG
      Src: /src/VTest2/src/vtc_main.c:364,1
    - Dst: WIFEXITED
      Src: /src/VTest2/src/vtc_main.c:365,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:366,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/src/vtc_main.c:366,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:369,1
    - Dst: printf
      Src: /src/VTest2/src/vtc_main.c:372,1
    - Dst: VEV_Stop
      Src: /src/VTest2/src/vtc_main.c:377,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:378,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:382,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_main.c:383,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/src/vtc_main.c:385,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 76
    argCount: 2
    argNames:
    - ve
    - what
    argTypes:
    - struct vev*
    - int
    assertStmts:
    - condition: (px == jp->child)
      pos:
        line_end: 315
        line_start: 315
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (what & (VEV__RD | VEV__HUP))
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 389
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 389
    functionName: tst_cb
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - VSB_finish
    - rel_buf
    - assert
    - exit
    - fclose
    - read
    - VSB_cat
    - close
    - fopen
    - VEV_Stop
    - AZ
    - printf
    - fprintf
    - VSB_bcat
    - VTIM_mono
    - bprintf
    - VSB_data
    - VSB_putc
    - VSB_quote_pfx
    - AN
    - cleaner_do
    - FREE_OBJ
    - WIFEXITED
    - CAST_OBJ_NOTNULL
    - CHECK_OBJ_NOTNULL
    - WTERMSIG
    - wait4
    - VSB_clear
    - WIFSIGNALED
    - free
    - strchr
    - kill
    - WEXITSTATUS
    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:404,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:405,1
    - Dst: get_buf
      Src: /src/VTest2/src/vtc_main.c:407,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:409,1
    - Dst: getpid
      Src: /src/VTest2/src/vtc_main.c:409,1
    - Dst: random
      Src: /src/VTest2/src/vtc_main.c:410,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:411,1
    - Dst: mkdir
      Src: /src/VTest2/src/vtc_main.c:411,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:413,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:415,1
    - Dst: setenv
      Src: /src/VTest2/src/vtc_main.c:415,1
    - Dst: VTAILQ_FIRST
      Src: /src/VTest2/src/vtc_main.c:417,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_main.c:418,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:419,1
    - Dst: VTAILQ_REMOVE
      Src: /src/VTest2/src/vtc_main.c:421,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_main.c:423,1
    - Dst: REPLACE
      Src: /src/VTest2/src/vtc_main.c:426,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:428,1
    - Dst: pipe
      Src: /src/VTest2/src/vtc_main.c:428,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:429,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:430,1
    - Dst: VTIM_mono
      Src: /src/VTest2/src/vtc_main.c:431,1
    - Dst: fork
      Src: /src/VTest2/src/vtc_main.c:432,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:433,1
    - Dst: cleaner_neuter
      Src: /src/VTest2/src/vtc_main.c:435,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:436,1
    - Dst: setpgid
      Src: /src/VTest2/src/vtc_main.c:436,1
    - Dst: getpid
      Src: /src/VTest2/src/vtc_main.c:436,1
    - Dst: VFIL_null_fd
      Src: /src/VTest2/src/vtc_main.c:437,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:438,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_main.c:438,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:439,1
    - Dst: dup2
      Src: /src/VTest2/src/vtc_main.c:439,1
    - Dst: exec_file
      Src: /src/VTest2/src/vtc_main.c:440,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:442,1
    - Dst: closefd
      Src: /src/VTest2/src/vtc_main.c:444,1
    - Dst: VEV_Alloc
      Src: /src/VTest2/src/vtc_main.c:446,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:447,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:452,1
    - Dst: VEV_Start
      Src: /src/VTest2/src/vtc_main.c:452,1
    - Dst: VEV_Alloc
      Src: /src/VTest2/src/vtc_main.c:454,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:455,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:460,1
    - Dst: VEV_Start
      Src: /src/VTest2/src/vtc_main.c:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (p[0] > STDERR_FILENO)
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (jp->child >= 0)
      pos:
        line_end: 432
        line_start: 432
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (dup2(p[1], STDERR_FILENO) == STDERR_FILENO)
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (dup2(p[1], STDOUT_FILENO) == STDOUT_FILENO)
      pos:
        line_end: 437
        line_start: 437
        source_file: /src/VTest2/src/vtc_main.c
    - condition: (p[1] > STDERR_FILENO)
      pos:
        line_end: 429
        line_start: 429
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 461
      start: 395
    functionDepth: 6
    functionLinenumber: 395
    functionLinenumberEnd: 461
    functionName: start_test
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - getpid
    - assert
    - random
    - exit
    - closefd
    - fork
    - VEV_Alloc
    - VTAILQ_FIRST
    - mkdir
    - dup2
    - exec_file
    - AZ
    - pipe
    - VTIM_mono
    - bprintf
    - setpgid
    - get_buf
    - AN
    - VTAILQ_REMOVE
    - VFIL_null_fd
    - CHECK_OBJ_NOTNULL
    - ALLOC_OBJ
    - VEV_Start
    - VTAILQ_INSERT_TAIL
    - setenv
    - cleaner_neuter
    - REPLACE
    linkageType: ''
    returnType: void
    signature: void start_test(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:480,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:481,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:482,1
    - Dst: strstr
      Src: /src/VTest2/src/vtc_main.c:484,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:488,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_main.c:492,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:494,1
    - Dst: memchr
      Src: /src/VTest2/src/vtc_main.c:498,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:500,1
    - Dst: strndup
      Src: /src/VTest2/src/vtc_main.c:503,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:504,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - makefile
    - top_var
    argTypes:
    - char*
    - char*
    assertStmts:
    - condition: (*top_var == '\n')
      pos:
        line_end: 481
        line_start: 481
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 506
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 506
    functionName: top_dir
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - AN
    - assert
    - strndup
    - fprintf
    - memchr
    - strchr
    - strstr
    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:520,1
    - Dst: opendir
      Src: /src/VTest2/src/vtc_main.c:521,1
    - Dst: XXXAN
      Src: /src/VTest2/src/vtc_main.c:522,1
    - Dst: readdir
      Src: /src/VTest2/src/vtc_main.c:524,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_main.c:527,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:527,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:529,1
    - Dst: stat
      Src: /src/VTest2/src/vtc_main.c:530,1
    - Dst: S_ISDIR
      Src: /src/VTest2/src/vtc_main.c:530,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:531,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:532,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:533,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:537,1
    - Dst: closedir
      Src: /src/VTest2/src/vtc_main.c:537,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 5
    argNames:
    - topdir
    - subdir
    - pfx
    - sfx
    - vsb
    argTypes:
    - char*
    - char*
    - char*
    - char*
    - struct vsb*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 538
    functionName: build_path
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - opendir
    - AZ
    - stat
    - strncmp
    - VSB_cat
    - readdir
    - closedir
    - strlen
    - bprintf
    - S_ISDIR
    - XXXAN
    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:551,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:552,1
    - Dst: VFIL_readfile
      Src: /src/VTest2/src/vtc_main.c:554,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:556,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:557,1
    - Dst: top_dir
      Src: /src/VTest2/src/vtc_main.c:560,1
    - Dst: top_dir
      Src: /src/VTest2/src/vtc_main.c:561,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:562,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:564,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:565,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:566,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:568,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:569,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_main.c:574,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:575,1
    - Dst: build_path
      Src: /src/VTest2/src/vtc_main.c:576,1
    - Dst: VSB_putc
      Src: /src/VTest2/src/vtc_main.c:578,1
    - Dst: build_path
      Src: /src/VTest2/src/vtc_main.c:579,1
    - Dst: VSB_printf
      Src: /src/VTest2/src/vtc_main.c:581,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:581,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:582,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:582,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:583,1
    - Dst: putenv
      Src: /src/VTest2/src/vtc_main.c:583,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:583,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:583,1
    - Dst: VSB_clear
      Src: /src/VTest2/src/vtc_main.c:589,1
    - Dst: build_path
      Src: /src/VTest2/src/vtc_main.c:590,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:591,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:591,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:592,1
    - Dst: VSB_data
      Src: /src/VTest2/src/vtc_main.c:592,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:593,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:595,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:596,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_main.c:597,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:602,1
    - Dst: putenv
      Src: /src/VTest2/src/vtc_main.c:602,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 603
    functionName: i_mode
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - VSB_finish
    - getenv
    - exit
    - VFIL_readfile
    - VSB_cat
    - build_path
    - VSB_destroy
    - AZ
    - putenv
    - fprintf
    - VSB_data
    - VSB_new_auto
    - strdup
    - AN
    - VSB_putc
    - VSB_printf
    - VSB_clear
    - extmacro_def
    - free
    - top_dir
    linkageType: ''
    returnType: void
    signature: void i_mode(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: VSS_ResolveOne
      Src: /src/VTest2/src/vtc_main.c:624,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:625,1
    - Dst: VTCP_bind
      Src: /src/VTest2/src/vtc_main.c:626,1
    - Dst: VSA_free
      Src: /src/VTest2/src/vtc_main.c:628,1
    - Dst: VSS_ResolveFirst
      Src: /src/VTest2/src/vtc_main.c:629,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:630,1
    - Dst: VTCP_bind
      Src: /src/VTest2/src/vtc_main.c:631,1
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:633,1
    - Dst: VTCP_myname
      Src: /src/VTest2/src/vtc_main.c:634,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:635,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:636,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:637,1
    - Dst: VTCP_close
      Src: /src/VTest2/src/vtc_main.c:645,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_main.c:649,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:650,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:652,1
    - Dst: VSA_Get_Proto
      Src: /src/VTest2/src/vtc_main.c:655,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:656,1
    - Dst: bprintf
      Src: /src/VTest2/src/vtc_main.c:658,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:659,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:661,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:662,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:663,1
    - Dst: VSA_free
      Src: /src/VTest2/src/vtc_main.c:664,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (bad_backend_fd >= 0)
      pos:
        line_end: 632
        line_start: 632
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 675
      start: 609
    functionDepth: 3
    functionLinenumber: 609
    functionLinenumberEnd: 675
    functionName: ip_magic
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - strdup
    - VSA_free
    - AN
    - VTCP_bind
    - assert
    - VTCP_close
    - VSS_ResolveOne
    - VTCP_myname
    - extmacro_def
    - VSA_Get_Proto
    - VSS_ResolveFirst
    - free
    - bprintf
    linkageType: ''
    returnType: void
    signature: void ip_magic(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/VTest2/src/vtc_main.c:687,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:688,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:689,1
    - Dst: VTIM_real
      Src: /src/VTest2/src/vtc_main.c:696,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_main.c:697,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:698,1
    - Dst: VTIM_format
      Src: /src/VTest2/src/vtc_main.c:699,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - argc
    - argv
    - err
    argTypes:
    - int
    - char**
    - char**
    assertStmts:
    - condition: (argc >= 2)
      pos:
        line_end: 686
        line_start: 686
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 701
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 701
    functionName: macro_func_date
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - VTIM_real
    - AN
    - assert
    - malloc
    - VTIM_format
    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:718,1
    - Dst: strlen
      Src: /src/VTest2/src/vtc_main.c:728,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_main.c:729,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:730,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:731,1
    - Dst: VSB_init
      Src: /src/VTest2/src/vtc_main.c:731,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:733,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:733,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:736,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:736,1
    - Dst: VSB_fini
      Src: /src/VTest2/src/vtc_main.c:737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - argc
    - argv
    - err
    argTypes:
    - int
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 739
    functionName: macro_func_string_repeat
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - VSB_finish
    - AN
    - AZ
    - VSB_cat
    - VSB_init
    - VSB_fini
    - strlen
    - malloc
    - SF_Parse_Integer
    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:745,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:746,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:747,1
    - Dst: strcmp
      Src: /src/VTest2/src/vtc_main.c:754,1
    - Dst: macro_func_string_repeat
      Src: /src/VTest2/src/vtc_main.c:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - argc
    - argv
    - err
    argTypes:
    - int
    - char**
    - char**
    assertStmts:
    - condition: (argc >= 2)
      pos:
        line_end: 744
        line_start: 744
        source_file: /src/VTest2/src/vtc_main.c
    constantsTouched: []
    func_position:
      end: 759
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 759
    functionName: macro_func_string
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - AN
    - assert
    - macro_func_string_repeat
    - strcmp
    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:771,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:773,1
    - Dst: strerror
      Src: /src/VTest2/src/vtc_main.c:774,1
    - Dst: vct_islws
      Src: /src/VTest2/src/vtc_main.c:778,1
    - Dst: strchr
      Src: /src/VTest2/src/vtc_main.c:782,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:788,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:789,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_main.c:793,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc_main.c:793,1
    - Dst: strncmp
      Src: /src/VTest2/src/vtc_main.c:794,1
    - Dst: isspace
      Src: /src/VTest2/src/vtc_main.c:794,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:795,1
    - Dst: free
      Src: /src/VTest2/src/vtc_main.c:798,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/src/vtc_main.c:802,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:803,1
    - Dst: VTAILQ_INSERT_TAIL
      Src: /src/VTest2/src/vtc_main.c:808,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 2
    argNames:
    - fn
    - ntest
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 810
    functionName: read_file
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - ALLOC_OBJ
    - vct_islws
    - isspace
    - AN
    - VTAILQ_INSERT_TAIL
    - VFIL_readfile
    - strncmp
    - fprintf
    - free
    - strerror
    - strchr
    linkageType: ''
    returnType: int
    signature: int read_file(const char *fn, int ntest)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/VTest2/src/vtc_main.c:827,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:833,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:834,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:834,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_main.c:836,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:839,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:842,1
    - Dst: getcwd
      Src: /src/VTest2/src/vtc_main.c:845,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:846,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:848,1
    - Dst: extmacro_def
      Src: /src/VTest2/src/vtc_main.c:849,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_main.c:853,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:854,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:855,1
    - Dst: getenv
      Src: /src/VTest2/src/vtc_main.c:857,1
    - Dst: atoi
      Src: /src/VTest2/src/vtc_main.c:859,1
    - Dst: VRND_SeedAll
      Src: /src/VTest2/src/vtc_main.c:861,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_main.c:862,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_main.c:863,1
    - Dst: setbuf
      Src: /src/VTest2/src/vtc_main.c:864,1
    - Dst: setbuf
      Src: /src/VTest2/src/vtc_main.c:865,1
    - Dst: getopt
      Src: /src/VTest2/src/vtc_main.c:866,1
    - Dst: VNUM_2bytes
      Src: /src/VTest2/src/vtc_main.c:869,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:870,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:872,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:875,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:877,1
    - Dst: parse_D_opt
      Src: /src/VTest2/src/vtc_main.c:885,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:886,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:888,1
    - Dst: add_extension
      Src: /src/VTest2/src/vtc_main.c:892,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_main.c:898,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_main.c:910,1
    - Dst: VSB_cat
      Src: /src/VTest2/src/vtc_main.c:913,1
    - Dst: VSB_quote
      Src: /src/VTest2/src/vtc_main.c:914,1
    - Dst: strtoul
      Src: /src/VTest2/src/vtc_main.c:921,1
    - Dst: usage
      Src: /src/VTest2/src/vtc_main.c:928,1
    - Dst: usage
      Src: /src/VTest2/src/vtc_main.c:935,1
    - Dst: read_file
      Src: /src/VTest2/src/vtc_main.c:938,1
    - Dst: exit
      Src: /src/VTest2/src/vtc_main.c:941,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_main.c:944,1
    - Dst: VSB_finish
      Src: /src/VTest2/src/vtc_main.c:944,1
    - Dst: ip_magic
      Src: /src/VTest2/src/vtc_main.c:946,1
    - Dst: i_mode
      Src: /src/VTest2/src/vtc_main.c:949,1
    - Dst: VEV_New
      Src: /src/VTest2/src/vtc_main.c:951,1
    - Dst: cleaner_setup
      Src: /src/VTest2/src/vtc_main.c:954,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_main.c:957,1
    - Dst: VTAILQ_EMPTY
      Src: /src/VTest2/src/vtc_main.c:958,1
    - Dst: start_test
      Src: /src/VTest2/src/vtc_main.c:959,1
    - Dst: usleep
      Src: /src/VTest2/src/vtc_main.c:963,1
    - Dst: random
      Src: /src/VTest2/src/vtc_main.c:963,1
    - Dst: VEV_Once
      Src: /src/VTest2/src/vtc_main.c:967,1
    - Dst: cleaner_finish
      Src: /src/VTest2/src/vtc_main.c:969,1
    - Dst: close
      Src: /src/VTest2/src/vtc_main.c:970,1
    - Dst: fprintf
      Src: /src/VTest2/src/vtc_main.c:972,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 127
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 816
    functionDepth: 7
    functionLinenumber: 816
    functionLinenumberEnd: 980
    functionName: main
    functionSourceFile: /src/VTest2/src/vtc_main.c
    functionUses: 0
    functionsReached:
    - usleep
    - VSB_finish
    - getenv
    - exit
    - i_mode
    - random
    - VSB_cat
    - atoi
    - close
    - cleaner_setup
    - VEV_Once
    - parse_D_opt
    - getcwd
    - AZ
    - strrchr
    - fprintf
    - add_extension
    - VSB_new_auto
    - setbuf
    - strdup
    - VSB_quote
    - VEV_New
    - AN
    - VNUM_2bytes
    - start_test
    - cleaner_finish
    - getopt
    - usage
    - VTAILQ_EMPTY
    - extmacro_def
    - read_file
    - VRND_SeedAll
    - ip_magic
    - strtoul
    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 == &tbl_0)
      pos:
        line_end: 75
        line_start: 75
        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)
      pos:
        line_end: 88
        line_start: 88
        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:
    - MASK
    - assert
    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)
      pos:
        line_end: 173
        line_start: 173
        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
    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:
    - num_encode
    - huff_simulate
    - assert
    - ITER_DONE
    - huff_encode
    - memcpy
    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:
    - AN
    - assert
    - free
    - malloc
    - realloc
    - huff_decode
    - ITER_DONE
    - memcpy
    - num_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: (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
    - condition: (pref)
      pos:
        line_end: 372
        line_start: 372
        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_key
    - assert
    - str_decode
    - txtcpy
    - tbl_get_value
    - free
    - HPK_ResizeTbl
    - push_header
    - ITER_DONE
    - num_decode
    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:
    - num_encode
    - assert
    - str_encode
    - INCOMPL
    - push_header
    - 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:
    - AN
    - assert
    - VRND_RandomTestable
    - malloc
    - strtoul
    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:
    - vtc_log
    - VSB_finish
    - AZ
    - VSB_len
    - VSB_tofile
    - strerror
    - VSB_data
    - vtc_dump
    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:
    - strlen
    - strncasecmp
    - vct_issp
    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:
    - strlen
    - strncasecmp
    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
    - strncmp
    - strcmp
    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:
    - AN
    - strcmp
    - AZ
    - vtc_expect
    - CAST_OBJ_NOTNULL
    - cmd_var_resolve
    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
    - strcmp
    - AZ
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    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:
    - vtc_log
    - vct_islws
    - memset
    - assert
    - AZ
    - vct_skipcrlf
    - vct_issp
    - bprintf
    - vct_iscrlf
    - CHECK_OBJ_NOTNULL
    - vtc_dump
    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:
    - vtc_log
    - assert
    - read
    - strerror
    - poll
    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:
    - vtc_log
    - vct_islws
    - assert
    - bprintf
    - vct_iscrlf
    - http_rxchar
    - strtoul
    - vtc_dump
    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
    - strcasecmp
    - http_rxchunk
    - bprintf
    - http_rxchar
    - strtoul
    - vtc_dump
    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
    - bprintf
    - http_rxchar
    - vtc_dump
    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:
    - vtc_log
    - http_swallow_body
    - http_count_header
    - strcmp
    - AZ
    - vtc_fatal
    - http_splitheader
    - ONLY_CLIENT
    - CAST_OBJ_NOTNULL
    - http_rxhdr
    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_count_header
    - strcmp
    - AZ
    - vtc_fatal
    - http_splitheader
    - ONLY_CLIENT
    - CAST_OBJ_NOTNULL
    - http_rxhdr
    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: 847
        line_start: 847
        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
    - condition: (body == nullbody)
      pos:
        line_end: 830
        line_start: 830
        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
    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_printf
    - VSB_putc
    - assert
    - strcmp
    - AN
    - strncasecmp
    - VFIL_readfile
    - strncmp
    - VSB_cat
    - atoi
    - macro_cat
    - VSB_bcat
    - strlen
    - free
    - synth_body
    - vtc_gzip_cmd
    - REPLACE
    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:
    - http_tx_parse_args
    - VSB_printf
    - VSB_clear
    - strcmp
    - AZ
    - vtc_fatal
    - http_write
    - CAST_OBJ_NOTNULL
    - ONLY_SERVER
    - REPLACE
    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:
    - http_find_header
    - AN
    - strcmp
    - b64_settings
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - ONLY_SERVER
    - parse_string
    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:
    - vtc_log
    - http_swallow_body
    - http_count_header
    - strcmp
    - AZ
    - vtc_fatal
    - http_splitheader
    - CAST_OBJ_NOTNULL
    - ONLY_SERVER
    - http_rxhdr
    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_count_header
    - strcmp
    - AZ
    - vtc_fatal
    - http_splitheader
    - CAST_OBJ_NOTNULL
    - http_rxhdr
    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:
    - vtc_log
    - strcmp
    - AZ
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - ONLY_SERVER
    - http_swallow_body
    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:
    - vtc_log
    - strcmp
    - AZ
    - atoi
    - vtc_fatal
    - ONLY_CLIENT
    - CAST_OBJ_NOTNULL
    - http_swallow_body
    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
    - http_rxchunk
    - ONLY_CLIENT
    - bprintf
    - CAST_OBJ_NOTNULL
    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:
    - http_tx_parse_args
    - VSB_printf
    - VSB_clear
    - strcmp
    - AZ
    - b64_settings
    - vtc_fatal
    - http_write
    - ONLY_CLIENT
    - CAST_OBJ_NOTNULL
    - parse_string
    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
    - AN
    - AZ
    - read
    - CAST_OBJ_NOTNULL
    - strerror
    - strtoul
    - vtc_dump
    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
    - AN
    - AZ
    - strlen
    - CAST_OBJ_NOTNULL
    - strerror
    - vtc_dump
    - write
    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
    - AN
    - AZ
    - strlen
    - CAST_OBJ_NOTNULL
    - strerror
    - strtoul
    - vtc_dump
    - write
    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
    - AN
    - AZ
    - strlen
    - CAST_OBJ_NOTNULL
    - strerror
    - vtc_dump
    - send
    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:
    - vtc_log
    - AN
    - assert
    - AZ
    - VSB_len
    - vtc_hexdump
    - VSB_tofile
    - CAST_OBJ_NOTNULL
    - strerror
    - VSB_destroy
    - VSB_data
    - vtc_hex_to_bin
    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:
    - VSB_printf
    - VSB_clear
    - AN
    - AZ
    - strlen
    - http_write
    - CAST_OBJ_NOTNULL
    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
    - VSB_clear
    - AN
    - AZ
    - vmin_t
    - atoi
    - VSB_bcat
    - http_write
    - CAST_OBJ_NOTNULL
    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:
    - AN
    - AZ
    - VNUM
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - isnan
    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:
    - vtc_log
    - vct_islws
    - VTCP_Check
    - AZ
    - read
    - stop_h2
    - CAST_OBJ_NOTNULL
    - poll
    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 >= 0)
      pos:
        line_end: 1560
        line_start: 1560
        source_file: /src/VTest2/src/vtc_http.c
    - condition: (hp->sfd != NULL)
      pos:
        line_end: 1559
        line_start: 1559
        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:
    - vtc_log
    - assert
    - VTCP_close
    - AZ
    - stop_h2
    - CAST_OBJ_NOTNULL
    - ONLY_SERVER
    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:
    - vtc_log
    - assert
    - VTCP_close
    - accept
    - AZ
    - stop_h2
    - CAST_OBJ_NOTNULL
    - strerror
    - ONLY_SERVER
    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
    - strcmp
    - AZ
    - shutdown
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - strerror
    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:
    - AZ
    - CAST_OBJ_NOTNULL
    - assert
    - 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
    - AN
    - start_h2
    - VTIM_sleep
    - ONLY_CLIENT
    - CAST_OBJ_NOTNULL
    - strerror
    - vtc_dump
    - write
    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:
    - AN
    - start_h2
    - memcmp
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - http_rxchar
    - ONLY_SERVER
    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
    - strcmp
    - vtc_fatal
    - HPK_ResizeTbl
    - CAST_OBJ_NOTNULL
    - strtoul
    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:
    - vtc_log
    - cmd_stream
    - CAST_OBJ_NOTNULL
    - parse_string
    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:
    - AN
    - strcmp
    - AZ
    - VFIL_writefile
    - vtc_fatal
    - CAST_OBJ_NOTNULL
    - strerror
    linkageType: ''
    returnType: void
    signature: void cmd_http_write_body(CMD_ARGS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CAST_OBJ_NOTNULL
      Src: /src/VTest2/src/vtc_http.c:1892,1
    - Dst: stop_h2
      Src: /src/VTest2/src/vtc_http.c:1895,1
    - Dst: VSB_destroy
      Src: /src/VTest2/src/vtc_http.c:1896,1
    - Dst: free
      Src: /src/VTest2/src/vtc_http.c:1897,1
    - Dst: free
      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_OBJ
      Src: /src/VTest2/src/vtc_http.c:1901,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1887
    functionDepth: 5
    functionLinenumber: 1887
    functionLinenumberEnd: 1902
    functionName: http_process_cleanup
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 0
    functionsReached:
    - FREE_OBJ
    - free
    - stop_h2
    - CAST_OBJ_NOTNULL
    - 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:1913,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1914,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1925,1
    - Dst: getsockopt
      Src: /src/VTest2/src/vtc_http.c:1925,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1926,1
    - Dst: setsockopt
      Src: /src/VTest2/src/vtc_http.c:1926,1
    - Dst: AZ
      Src: /src/VTest2/src/vtc_http.c:1927,1
    - Dst: getsockopt
      Src: /src/VTest2/src/vtc_http.c:1927,1
    - Dst: vtc_log
      Src: /src/VTest2/src/vtc_http.c:1929,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http.c:1934,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1935,1
    - Dst: VSB_new_auto
      Src: /src/VTest2/src/vtc_http.c:1940,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1941,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http.c:1945,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1946,1
    - Dst: malloc
      Src: /src/VTest2/src/vtc_http.c:1948,1
    - Dst: AN
      Src: /src/VTest2/src/vtc_http.c:1949,1
    - Dst: vtc_log_set_cmd
      Src: /src/VTest2/src/vtc_http.c:1952,1
    - Dst: VTCP_hisname
      Src: /src/VTest2/src/vtc_http.c:1957,1
    - Dst: strcpy
      Src: /src/VTest2/src/vtc_http.c:1961,1
    - Dst: strcpy
      Src: /src/VTest2/src/vtc_http.c:1962,1
    - Dst: strdup
      Src: /src/VTest2/src/vtc_http.c:1963,1
    - Dst: pthread_cleanup_push
      Src: /src/VTest2/src/vtc_http.c:1971,1
    - Dst: parse_string
      Src: /src/VTest2/src/vtc_http.c:1972,1
    - Dst: pthread_cleanup_pop
      Src: /src/VTest2/src/vtc_http.c:1974,1
    - Dst: http_process_cleanup
      Src: /src/VTest2/src/vtc_http.c:1975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 46
    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: 1904
    functionDepth: 6
    functionLinenumber: 1904
    functionLinenumberEnd: 1977
    functionName: http_process
    functionSourceFile: /src/VTest2/src/vtc_http.c
    functionUses: 1
    functionsReached:
    - ALLOC_OBJ
    - vtc_log
    - VTCP_hisname
    - strdup
    - AN
    - getsockopt
    - http_process_cleanup
    - AZ
    - strcpy
    - malloc
    - pthread_cleanup_push
    - setsockopt
    - vtc_log_set_cmd
    - VSB_new_auto
    - pthread_cleanup_pop
    - parse_string
    linkageType: ''
    returnType: int
    signature: "int 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:
    - memset
    - assert
    - deflateEnd
    - snprintf
    - printf
    - TRUST_ME
    - VRND_RandomTestable
    - strlen
    - strchr
    - deflateInit2
    - deflate
    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: (dup2(fd, target) == target)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/VTest2/lib/vfil.c
    - condition: (fd >= 0)
      pos:
        line_end: 64
        line_start: 64
        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:
    - open
    - assert
    - closefd
    - dup2
    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:
    - assert
    - AZ
    - read
    - fstat
    - free
    - malloc
    - S_ISREG
    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:
    - vfil_readfd
    - vfil_openfile
    - closefd
    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:
    - vfil_writefd
    - vfil_openfile
    - closefd
    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: 165
        line_start: 165
        source_file: /src/VTest2/lib/vfil.c
    - condition: (i != -1)
      pos:
        line_end: 168
        line_start: 168
        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:
    - assert
    - fcntl
    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:
    - AN
    - assert
    - ftruncate
    - fstat
    - lseek
    - free
    - fstatfs
    - fallocate
    - VFIL_fsinfo
    - calloc
    - write
    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:
    - ALLOC_OBJ
    - VTAILQ_EMPTY
    - AN
    - VTAILQ_INSERT_TAIL
    - VTAILQ_REMOVE
    - FREE_OBJ
    - strchr
    - CHECK_OBJ_NOTNULL
    - REPLACE
    - VTAILQ_INIT
    - VTAILQ_FIRST
    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:
    - strdup
    - VSB_finish
    - VSB_printf
    - VSB_clear
    - AN
    - access
    - AZ
    - VTAILQ_FOREACH
    - VSB_data
    - func
    - CHECK_OBJ_NOTNULL
    - VSB_destroy
    - VSB_new_auto
    - REPLACE
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:194,1
    - Dst: VSA_BuildFAP
      Src: /src/VTest2/lib/vsa.c:194,1
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:195,1
    - Dst: VSA_BuildFAP
      Src: /src/VTest2/lib/vsa.c:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: VSA_Init
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - VSA_BuildFAP
    - AN
    linkageType: ''
    returnType: void
    signature: void VSA_Init(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:207,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:210,1
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:214,1
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:218,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.sa6.sin6_family)
      pos:
        line_end: 217
        line_start: 217
        source_file: /src/VTest2/lib/vsa.c
    - condition: (sua->u.sa.sa_family == sua->u.sa4.sin_family)
      pos:
        line_end: 213
        line_start: 213
        source_file: /src/VTest2/lib/vsa.c
    constantsTouched: []
    func_position:
      end: 225
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 225
    functionName: VSA_GetPtr
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - AN
    - assert
    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: 245
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 245
    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:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - sal
    argTypes:
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 256
    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:277,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:282,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:287,1
    - Dst: VSA_Build
      Src: /src/VTest2/lib/vsa.c:289,1
    - Dst: memset
      Src: /src/VTest2/lib/vsa.c:291,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:296,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:301,1
    - Dst: VSA_Build
      Src: /src/VTest2/lib/vsa.c:303,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: 310
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 310
    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:319,1
    - Dst: sua_len
      Src: /src/VTest2/lib/vsa.c:320,1
    - Dst: malloc
      Src: /src/VTest2/lib/vsa.c:325,1
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:326,1
    - Dst: INIT_OBJ
      Src: /src/VTest2/lib/vsa.c:331,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:334,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:337,1
    - Dst: WRONG
      Src: /src/VTest2/lib/vsa.c:340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - d
    - s
    - sal
    argTypes:
    - void*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 346
    functionName: VSA_Build
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 2
    functionsReached:
    - sua_len
    - AN
    - WRONG
    - INIT_OBJ
    - malloc
    - memcpy
    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:353,1
    - Dst: AN
      Src: /src/VTest2/lib/vsa.c:354,1
    - Dst: sua_len
      Src: /src/VTest2/lib/vsa.c:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - sua
    - slp
    argTypes:
    - struct suckaddr*
    - socklen_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 360
    functionName: VSA_Get_Sockaddr
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 1
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - sua_len
    - AN
    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:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sua
    argTypes:
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 368
    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:373,1
    - Dst: sua_len
      Src: /src/VTest2/lib/vsa.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sua
    argTypes:
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 374
    functionName: VSA_Sane
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - VALID_OBJ
    - sua_len
    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:380,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vsa.c:381,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sua1
    - sua2
    argTypes:
    - struct suckaddr*
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: VSA_Compare
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - memcmp
    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:389,1
    - Dst: VSA_Sane
      Src: /src/VTest2/lib/vsa.c:389,1
    - Dst: assert
      Src: /src/VTest2/lib/vsa.c:390,1
    - Dst: VSA_Sane
      Src: /src/VTest2/lib/vsa.c:390,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:397,1
    - Dst: memcmp
      Src: /src/VTest2/lib/vsa.c:400,1
    - Dst: WRONG
      Src: /src/VTest2/lib/vsa.c:403,1
    - Dst: NEEDLESS
      Src: /src/VTest2/lib/vsa.c:405,1
    - Dst: return
      Src: /src/VTest2/lib/vsa.c:405,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: 388
        line_start: 388
        source_file: /src/VTest2/lib/vsa.c
    - condition: (VSA_Sane(sua2))
      pos:
        line_end: 389
        line_start: 389
        source_file: /src/VTest2/lib/vsa.c
    constantsTouched: []
    func_position:
      end: 406
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 406
    functionName: VSA_Compare_IP
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - assert
    - NEEDLESS
    - memcmp
    - WRONG
    - return
    - VSA_Sane
    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:413,1
    - Dst: VSA_Sane
      Src: /src/VTest2/lib/vsa.c:413,1
    - Dst: calloc
      Src: /src/VTest2/lib/vsa.c:414,1
    - Dst: XXXAN
      Src: /src/VTest2/lib/vsa.c:415,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vsa.c:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sua
    argTypes:
    - struct suckaddr*
    assertStmts:
    - condition: (VSA_Sane(sua))
      pos:
        line_end: 412
        line_start: 412
        source_file: /src/VTest2/lib/vsa.c
    constantsTouched: []
    func_position:
      end: 418
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 418
    functionName: VSA_Clone
    functionSourceFile: /src/VTest2/lib/vsa.c
    functionUses: 0
    functionsReached:
    - assert
    - VSA_Sane
    - XXXAN
    - calloc
    - memcpy
    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:424,1
    - Dst: ntohs
      Src: /src/VTest2/lib/vsa.c:427,1
    - Dst: ntohs
      Src: /src/VTest2/lib/vsa.c:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - sua
    argTypes:
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 433
    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: 458
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 458
    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:467,1
    - Dst: free
      Src: /src/VTest2/lib/vsa.c:468,1
    - Dst: TRUST_ME
      Src: /src/VTest2/lib/vsa.c:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vsap
    argTypes:
    - struct suckaddr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 469
    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: 117
    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: 117
    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: 19
    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: Tstrcmp
    functionSourceFile: /src/VTest2/lib/vdef.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: Tstrcmp(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: 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:
    - realloc
    - AN
    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:
    - free
    - calloc
    - 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:
    - setbuf
    - vev_get_pfd
    - VBH_new
    - AN
    - pthread_self
    - DBG
    - free
    - fopen
    - calloc
    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:
    - VEV_Stop
    - VBH_destroy
    - assert
    - VBH_root
    - pthread_self
    - FREE_OBJ
    - TAKE_OBJ_NOTNULL
    - free
    - 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->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
    - condition: (e->fd < 0 || e->fd_flags)
      pos:
        line_end: 267
        line_start: 267
        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->callback != NULL)
      pos:
        line_end: 264
        line_start: 264
        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->__binheap_idx != VBH_NOIDX)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/VTest2/lib/vev.c
    - 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
    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:
    - vev_get_pfd
    - assert
    - pthread_self
    - vev_get_sig
    - AZ
    - DBG
    - VTIM_mono
    - VBH_insert
    - sigaction
    - CHECK_OBJ_NOTNULL
    - 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: (evb == e->__vevb)
      pos:
        line_end: 323
        line_start: 323
        source_file: /src/VTest2/lib/vev.c
    - condition: (pthread_equal(evb->thread, pthread_self()))
      pos:
        line_end: 324
        line_start: 324
        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->sig < vev_nsig)
      pos:
        line_end: 340
        line_start: 340
        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: (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:
    - assert
    - pthread_self
    - AZ
    - DBG
    - sigaction
    - CHECK_OBJ_NOTNULL
    - pthread_equal
    - FINI_OBJ
    - VBH_delete
    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
    - pthread_self
    - CHECK_OBJ_NOTNULL
    - 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:
    - VEV_Stop
    - VBH_insert
    - free
    - struct vev*::callback
    - VBH_delete
    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:
    - VEV_Stop
    - memset
    - assert
    - free
    - 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->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
    - 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->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
    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:
    - VEV_Stop
    - assert
    - VBH_root
    - pthread_self
    - AZ
    - DBG
    - CHECK_OBJ
    - vev_sched_timeout
    - vev_sched_signal
    - VTIM_mono
    - free
    - struct vev*::callback
    - CHECK_OBJ_NOTNULL
    - pthread_equal
    - poll
    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
    - assert
    - close
    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:
    - bind
    - VSA_Get_Sockaddr
    - VSA_Get_Proto
    - closefd
    - socket
    - setsockopt
    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:
    - AZ
    - mach_timebase_info
    - mach_absolute_time
    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: 21
    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
    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
    - 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: AZ
      Src: /src/VTest2/lib/vtim.c:154,1
    - Dst: gettimeofday
      Src: /src/VTest2/lib/vtim.c:154,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:
    - AZ
    - clock_gettime
    - gettimeofday
    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:
    - gmtime_r
    - snprintf
    - AN
    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:
    - assert
    - MUSTBE
    - memcmp
    - TIMESTAMP
    - FAIL
    - MONTH
    - strlen
    - DIGIT
    - WEEKDAY
    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
    - isnan
    - trunc
    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
    - isnan
    - trunc
    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:
    - isinf
    - vmax
    - VTIM_timeval
    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:
    - isinf
    - assert
    - isnan
    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:
    - printf
    - VTIM_parse
    - VTIM_format
    - exit
    linkageType: ''
    returnType: void
    signature: void tst(const char *s, time_t good)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:486,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:489,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:493,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: 498
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 498
    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:508,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:509,1
    - Dst: VTIM_sleep
      Src: /src/VTest2/lib/vtim.c:510,1
    - Dst: VTIM_real
      Src: /src/VTest2/lib/vtim.c:511,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:512,1
    - Dst: tst_delta_check
      Src: /src/VTest2/lib/vtim.c:514,1
    - Dst: tst_delta_check
      Src: /src/VTest2/lib/vtim.c:515,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:518,1
    - Dst: exit
      Src: /src/VTest2/lib/vtim.c:519,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 521
    functionName: tst_delta
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - VTIM_real
    - exit
    - printf
    - VTIM_mono
    - VTIM_sleep
    - tst_delta_check
    linkageType: ''
    returnType: void
    signature: void tst_delta(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:535,1
    - Dst: VTIM_real
      Src: /src/VTest2/lib/vtim.c:537,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:538,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:539,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:543,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:545,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:546,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:547,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:551,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtim.c:553,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:556,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:557,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:561,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtim.c:563,1
    - Dst: floor
      Src: /src/VTest2/lib/vtim.c:564,1
    - Dst: floor
      Src: /src/VTest2/lib/vtim.c:565,1
    - Dst: VTIM_mono
      Src: /src/VTest2/lib/vtim.c:568,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:569,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 523
    functionDepth: 2
    functionLinenumber: 523
    functionLinenumberEnd: 571
    functionName: bench
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - VTIM_real
    - snprintf
    - printf
    - VTIM_mono
    - floor
    linkageType: ''
    returnType: void
    signature: void bench(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VTIM_parse
      Src: /src/VTest2/lib/vtim.c:579,1
    - Dst: VTIM_format
      Src: /src/VTest2/lib/vtim.c:581,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:582,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:583,1
    - Dst: exit
      Src: /src/VTest2/lib/vtim.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - t
    - s
    argTypes:
    - time_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 573
    functionDepth: 2
    functionLinenumber: 573
    functionLinenumberEnd: 586
    functionName: parse_check
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - printf
    - VTIM_parse
    - VTIM_format
    - exit
    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:603,1
    - Dst: setenv
      Src: /src/VTest2/lib/vtim.c:603,1
    - Dst: bench
      Src: /src/VTest2/lib/vtim.c:605,1
    - Dst: gmtime_r
      Src: /src/VTest2/lib/vtim.c:610,1
    - Dst: strftime
      Src: /src/VTest2/lib/vtim.c:611,1
    - Dst: VTIM_format
      Src: /src/VTest2/lib/vtim.c:612,1
    - Dst: strcmp
      Src: /src/VTest2/lib/vtim.c:613,1
    - Dst: printf
      Src: /src/VTest2/lib/vtim.c:614,1
    - Dst: exit
      Src: /src/VTest2/lib/vtim.c:616,1
    - Dst: parse_check
      Src: /src/VTest2/lib/vtim.c:618,1
    - Dst: strftime
      Src: /src/VTest2/lib/vtim.c:620,1
    - Dst: parse_check
      Src: /src/VTest2/lib/vtim.c:621,1
    - Dst: strftime
      Src: /src/VTest2/lib/vtim.c:623,1
    - Dst: parse_check
      Src: /src/VTest2/lib/vtim.c:624,1
    - Dst: strftime
      Src: /src/VTest2/lib/vtim.c:627,1
    - Dst: parse_check
      Src: /src/VTest2/lib/vtim.c:628,1
    - Dst: tst
      Src: /src/VTest2/lib/vtim.c:633,1
    - Dst: tst
      Src: /src/VTest2/lib/vtim.c:634,1
    - Dst: tst
      Src: /src/VTest2/lib/vtim.c:635,1
    - Dst: tst
      Src: /src/VTest2/lib/vtim.c:637,1
    - Dst: tst_delta
      Src: /src/VTest2/lib/vtim.c:639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 591
    functionDepth: 3
    functionLinenumber: 591
    functionLinenumberEnd: 642
    functionName: main
    functionSourceFile: /src/VTest2/lib/vtim.c
    functionUses: 0
    functionsReached:
    - tst_delta
    - gmtime_r
    - setenv
    - strcmp
    - exit
    - AZ
    - printf
    - bench
    - strftime
    - VTIM_format
    - parse_check
    - tst
    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:
    - fprintf
    - bprintf
    - strerror
    - syslog
    - VBT_dump
    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
    - VAS_Fail_Func
    - abort
    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: 7
    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: AZ
      Src: /src/VTest2/lib/vsub.c:95,1
    - Dst: closedir
      Src: /src/VTest2/lib/vsub.c:95,1
    - Dst: sysconf
      Src: /src/VTest2/lib/vsub.c:99,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:100,1
    - Dst: close
      Src: /src/VTest2/lib/vsub.c:102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    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: (maxfd > 0)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/VTest2/lib/vsub.c
    constantsTouched: []
    func_position:
      end: 104
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 104
    functionName: VSUB_closefrom
    functionSourceFile: /src/VTest2/lib/vsub.c
    functionUses: 3
    functionsReached:
    - getpid
    - assert
    - opendir
    - closefrom
    - AZ
    - closedir
    - close_range
    - readdir
    - close
    - bprintf
    - sysconf
    - strtoul
    linkageType: ''
    returnType: void
    signature: void VSUB_closefrom(int fd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:113,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - priv
    - str
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 117
    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:133,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:134,1
    - Dst: strerror
      Src: /src/VTest2/lib/vsub.c:135,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:138,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:139,1
    - Dst: fork
      Src: /src/VTest2/lib/vsub.c:140,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:141,1
    - Dst: strerror
      Src: /src/VTest2/lib/vsub.c:142,1
    - Dst: closefd
      Src: /src/VTest2/lib/vsub.c:143,1
    - Dst: closefd
      Src: /src/VTest2/lib/vsub.c:144,1
    - Dst: VFIL_null_fd
      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: assert
      Src: /src/VTest2/lib/vsub.c:150,1
    - Dst: dup2
      Src: /src/VTest2/lib/vsub.c:150,1
    - Dst: VSUB_closefrom
      Src: /src/VTest2/lib/vsub.c:152,1
    - Dst: func
      Src: /src/VTest2/lib/vsub.c:153,1
    - Dst: _exit
      Src: /src/VTest2/lib/vsub.c:159,1
    - Dst: closefd
      Src: /src/VTest2/lib/vsub.c:161,1
    - Dst: VLU_File
      Src: /src/VTest2/lib/vsub.c:162,1
    - Dst: closefd
      Src: /src/VTest2/lib/vsub.c:163,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:165,1
    - Dst: waitpid
      Src: /src/VTest2/lib/vsub.c:168,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:170,1
    - Dst: strerror
      Src: /src/VTest2/lib/vsub.c:171,1
    - Dst: WIFEXITED
      Src: /src/VTest2/lib/vsub.c:175,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/lib/vsub.c:175,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:177,1
    - Dst: WIFEXITED
      Src: /src/VTest2/lib/vsub.c:178,1
    - Dst: WEXITSTATUS
      Src: /src/VTest2/lib/vsub.c:179,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:180,1
    - Dst: WIFSIGNALED
      Src: /src/VTest2/lib/vsub.c:182,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsub.c:184,1
    - Dst: WTERMSIG
      Src: /src/VTest2/lib/vsub.c:184,1
    - Dst: WCOREDUMP
      Src: /src/VTest2/lib/vsub.c:186,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsub.c:187,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsub.c:188,1
    - Dst: assert
      Src: /src/VTest2/lib/vsub.c:189,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: (rv != -1)
      pos:
        line_end: 188
        line_start: 188
        source_file: /src/VTest2/lib/vsub.c
    - condition: (dup2(p[1], STDOUT_FILENO) == STDOUT_FILENO)
      pos:
        line_end: 148
        line_start: 148
        source_file: /src/VTest2/lib/vsub.c
    - condition: (p[1] > STDERR_FILENO)
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/VTest2/lib/vsub.c
    - condition: (p[0] > STDERR_FILENO)
      pos:
        line_end: 137
        line_start: 137
        source_file: /src/VTest2/lib/vsub.c
    - condition: (dup2(p[1], STDERR_FILENO) == STDERR_FILENO)
      pos:
        line_end: 149
        line_start: 149
        source_file: /src/VTest2/lib/vsub.c
    constantsTouched: []
    func_position:
      end: 193
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 193
    functionName: VSUB_run
    functionSourceFile: /src/VTest2/lib/vsub.c
    functionUses: 0
    functionsReached:
    - assert
    - _exit
    - VSUB_closefrom
    - VSB_cat
    - closefd
    - fork
    - strerror
    - dup2
    - WCOREDUMP
    - waitpid
    - pipe
    - func
    - WIFEXITED
    - VFIL_null_fd
    - VLU_File
    - WTERMSIG
    - VSB_printf
    - WIFSIGNALED
    - WEXITSTATUS
    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:
    - VAS_errtxt
    - strdup
    - memset
    - AN
    - getaddrinfo
    - AZ
    - vss_parse
    - free
    - gai_strerror
    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: 2
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: vss_alloc_suckaddr
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 0
    functionsReached:
    - VSA_Malloc
    - VSA_Build
    - AN
    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_free
    - AN
    - VSA_Malloc
    - func
    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:
    - strdup
    - vss_parse_range
    - AN
    - sprintf
    - free
    - VSS_resolver
    - memcpy
    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: 3
    functionLinenumber: 276
    functionLinenumberEnd: 294
    functionName: VSS_ResolveOne
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 4
    functionsReached:
    - freeaddrinfo
    - vss_resolve
    - AN
    - AZ
    - vss_alloc_suckaddr
    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: 3
    functionLinenumber: 296
    functionLinenumberEnd: 318
    functionName: VSS_ResolveFirst
    functionSourceFile: /src/VTest2/lib/vss.c
    functionUses: 1
    functionsReached:
    - freeaddrinfo
    - vss_resolve
    - AN
    - AZ
    - vss_alloc_suckaddr
    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:
    - open
    - read
    - closefd
    - 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:
    - strdup
    - AN
    - AZ
    - fstat
    - malloc
    - VPF_Read
    - VFL_Open
    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:
    - pwrite
    - getpid
    - assert
    - vpf_verify
    - AZ
    - ftruncate
    - strlen
    - bprintf
    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:
    - vpf_verify
    - free
    - unlink
    - closefd
    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_Lock
    - VRND_Unlock
    - vrnd_RandomTestable
    - AN
    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:
    - open
    - read
    - AN
    - closefd
    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:
    - srand48
    - AZ
    - VRND_SeedTestable
    - VRND_RandomCrypto
    - srandom
    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
    - flock
    - openat
    - ftruncate
    - fstat
    - close
    - fcntl
    - 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_end
    - va_start
    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:
    - VUS_is
    - memset
    - AN
    - assert
    - strcmp
    - strlen
    - bprintf
    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:
    - bind
    - unlink
    - VUS_socklen
    - closefd
    - socket
    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:
    - VTCP_blocking
    - AN
    - assert
    - VUS_socklen
    - closefd
    - socket
    - VTCP_nonblocking
    - VTCP_connected
    - sun_init
    - connect
    - poll
    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:77,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:78,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:79,1
    - Dst: ALLOC_OBJ
      Src: /src/VTest2/lib/vre.c:84,1
    - Dst: pcre2_compile
      Src: /src/VTest2/lib/vre.c:89,1
    - Dst: VRE_free
      Src: /src/VTest2/lib/vre.c:93,1
    - Dst: pcre2_match_context_create
      Src: /src/VTest2/lib/vre.c:96,1
    - Dst: VRE_free
      Src: /src/VTest2/lib/vre.c:99,1
    - Dst: pcre2_jit_compile
      Src: /src/VTest2/lib/vre.c:104,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: 109
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 109
    functionName: VRE_compile
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 7
    functionsReached:
    - ALLOC_OBJ
    - pcre2_compile
    - AN
    - VRE_free
    - pcre2_match_context_create
    - pcre2_jit_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:117,1
    - Dst: pcre2_get_error_message
      Src: /src/VTest2/lib/vre.c:118,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vre.c:120,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vre.c:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - vsb
    - err
    argTypes:
    - struct vsb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 125
    functionName: VRE_error
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 7
    functionsReached:
    - VSB_cat
    - CHECK_OBJ_NOTNULL
    - VSB_printf
    - pcre2_get_error_message
    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:135,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:137,1
    - Dst: TRUST_ME
      Src: /src/VTest2/lib/vre.c:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - code
    argTypes:
    - vre_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 141
    functionName: VRE_unpack
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - AZ
    - TRUST_ME
    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:147,1
    - Dst: assert
      Src: /src/VTest2/lib/vre.c:152,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:155,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:156,1
    - Dst: pcre2_set_match_limit
      Src: /src/VTest2/lib/vre.c:156,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:157,1
    - Dst: pcre2_set_depth_limit
      Src: /src/VTest2/lib/vre.c:157,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: 151
        line_start: 151
        source_file: /src/VTest2/lib/vre.c
    constantsTouched: []
    func_position:
      end: 158
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 158
    functionName: vre_limit
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - AN
    - assert
    - AZ
    - pcre2_set_depth_limit
    - pcre2_set_match_limit
    - CHECK_OBJ_NOTNULL
    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:166,1
    - Dst: VRE_unpack
      Src: /src/VTest2/lib/vre.c:167,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:168,1
    - Dst: pcre2_pattern_info
      Src: /src/VTest2/lib/vre.c:168,1
    - Dst: malloc
      Src: /src/VTest2/lib/vre.c:170,1
    - Dst: INIT_OBJ
      Src: /src/VTest2/lib/vre.c:174,1
    - Dst: memcpy
      Src: /src/VTest2/lib/vre.c:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - code
    - sz
    argTypes:
    - vre_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: VRE_export
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - VRE_unpack
    - AZ
    - INIT_OBJ
    - pcre2_pattern_info
    - malloc
    - CHECK_OBJ_NOTNULL
    - memcpy
    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:192,1
    - Dst: pcre2_match_data_create_from_pattern
      Src: /src/VTest2/lib/vre.c:198,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:199,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/VTest2/lib/vre.c:202,1
    - Dst: pcre2_get_ovector_count
      Src: /src/VTest2/lib/vre.c:203,1
    - Dst: pcre2_match
      Src: /src/VTest2/lib/vre.c:207,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:211,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:212,1
    - Dst: pcre2_get_ovector_pointer
      Src: /src/VTest2/lib/vre.c:213,1
    - Dst: vmin_t
      Src: /src/VTest2/lib/vre.c:214,1
    - Dst: pcre2_get_ovector_count
      Src: /src/VTest2/lib/vre.c:214,1
    - Dst: pcre2_match_data_free
      Src: /src/VTest2/lib/vre.c:232,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: 234
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 234
    functionName: vre_capture
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - VRE_unpack
    - AN
    - vmin_t
    - pcre2_match_data_create_from_pattern
    - pcre2_get_ovector_count
    - pcre2_match_data_free
    - pcre2_match
    - pcre2_get_ovector_pointer
    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:241,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:242,1
    - Dst: vre_limit
      Src: /src/VTest2/lib/vre.c:246,1
    - Dst: vre_capture
      Src: /src/VTest2/lib/vre.c:247,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: 249
      start: 236
    functionDepth: 3
    functionLinenumber: 236
    functionLinenumberEnd: 249
    functionName: VRE_match
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 7
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - vre_limit
    - vre_capture
    - AN
    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:257,1
    - Dst: AN
      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: vre_limit
      Src: /src/VTest2/lib/vre.c:264,1
    - Dst: vre_capture
      Src: /src/VTest2/lib/vre.c:265,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: 271
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 271
    functionName: VRE_capture
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - vre_limit
    - vre_capture
    - AN
    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:284,1
    - Dst: CHECK_OBJ_NOTNULL
      Src: /src/VTest2/lib/vre.c:285,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:286,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:287,1
    - Dst: vre_limit
      Src: /src/VTest2/lib/vre.c:289,1
    - Dst: vre_capture
      Src: /src/VTest2/lib/vre.c:291,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:295,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:300,1
    - Dst: AN
      Src: /src/VTest2/lib/vre.c:301,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vre.c:305,1
    - Dst: pdiff
      Src: /src/VTest2/lib/vre.c:305,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vre.c:309,1
    - Dst: pdiff
      Src: /src/VTest2/lib/vre.c:309,1
    - Dst: isdigit
      Src: /src/VTest2/lib/vre.c:311,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vre.c:316,1
    - Dst: Tlen
      Src: /src/VTest2/lib/vre.c:316,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vre.c:320,1
    - Dst: pdiff
      Src: /src/VTest2/lib/vre.c:320,1
    - Dst: pdiff
      Src: /src/VTest2/lib/vre.c:321,1
    - Dst: vre_capture
      Src: /src/VTest2/lib/vre.c:325,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:329,1
    - Dst: assert
      Src: /src/VTest2/lib/vre.c:335,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:336,1
    - Dst: pcre2_match_data_free
      Src: /src/VTest2/lib/vre.c:337,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vre.c:341,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: 334
        line_start: 334
        source_file: /src/VTest2/lib/vre.c
    constantsTouched: []
    func_position:
      end: 343
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 343
    functionName: VRE_sub
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - AN
    - assert
    - AZ
    - pdiff
    - vre_capture
    - Tlen
    - vre_limit
    - VSB_cat
    - VSB_bcat
    - isdigit
    - pcre2_match_data_free
    - CHECK_OBJ_NOTNULL
    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:350,1
    - Dst: AZ
      Src: /src/VTest2/lib/vre.c:354,1
    - Dst: pcre2_match_context_free
      Src: /src/VTest2/lib/vre.c:358,1
    - Dst: pcre2_code_free
      Src: /src/VTest2/lib/vre.c:360,1
    - Dst: FREE_OBJ
      Src: /src/VTest2/lib/vre.c:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - vv
    argTypes:
    - vre_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 362
    functionName: VRE_free
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 8
    functionsReached:
    - AZ
    - pcre2_match_context_free
    - FREE_OBJ
    - 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:369,1
    - Dst: strstr
      Src: /src/VTest2/lib/vre.c:372,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vre.c:373,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vre.c:375,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - vsb
    - src
    argTypes:
    - struct vsb*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 376
    functionName: VRE_quote
    functionSourceFile: /src/VTest2/lib/vre.c
    functionUses: 0
    functionsReached:
    - CHECK_OBJ_NOTNULL
    - VSB_printf
    - strstr
    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
    - VSB_extendsize
    - realloc
    - VSB_ISDYNAMIC
    - VSB_SETFLAG
    - memcpy
    - SBMALLOC
    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
    - VSB_extend
    - memset
    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:
    - KASSERT
    - memset
    - VSB_extendsize
    - VSB_SETFLAG
    - SBMALLOC
    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:
    - SBMALLOC
    - VSB_newbuf
    - VSB_SETFLAG
    - SBFREE
    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:
    - assert_VSB_integrity
    - VSB_CLEARFLAG
    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_integrity
    - VSB_extend
    - assert_VSB_state
    - VSB_FREESPACE
    - _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_VSB_integrity
    - VSB_extend
    - assert_VSB_state
    - assert
    - VSB_FREESPACE
    - _vsb_indent
    - memcpy
    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_integrity
    - KASSERT
    - assert_VSB_state
    - VSB_bcat
    - strlen
    - strchr
    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:
    - assert_VSB_integrity
    - KASSERT
    - VSB_extend
    - assert_VSB_state
    - VSB_CANEXTEND
    - vmin_t
    - vsnprintf
    - VSB_FREESPACE
    - VSB_HASROOM
    - _vsb_indent
    - va_end
    - va_copy
    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:
    - VSB_vprintf
    - va_end
    - va_start
    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
    - assert_VSB_state
    - VSB_SETFLAG
    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_ISDYNSTRUCT(s))
      pos:
        line_end: 487
        line_start: 487
        source_file: /src/VTest2/lib/vsb.c
    - condition: (!VSB_ISDYNAMIC(s))
      pos:
        line_end: 486
        line_start: 486
        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:
    - assert_VSB_integrity
    - memset
    - assert
    - 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:
    - assert_VSB_integrity
    - memset
    - AN
    - assert
    - SBFREE
    - VSB_ISDYNSTRUCT
    - VSB_ISDYNAMIC
    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_cat
    - VSB_printf
    linkageType: ''
    returnType: void
    signature: void vsb_quote_hex(struct vsb *s, const uint8_t *u, size_t len)
  - BBCount: 33
    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: strlen
      Src: /src/VTest2/lib/vsb.c:547,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:550,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:552,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:558,1
    - Dst: vsb_quote_hex
      Src: /src/VTest2/lib/vsb.c:561,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:563,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:568,1
    - Dst: VSB_bcat
      Src: /src/VTest2/lib/vsb.c:584,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:587,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:589,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:596,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:602,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:603,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:608,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:609,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:613,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:615,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:617,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:620,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:624,1
    - Dst: VSB_cat
      Src: /src/VTest2/lib/vsb.c:627,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:631,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:633,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:635,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:637,1
    - Dst: VSB_printf
      Src: /src/VTest2/lib/vsb.c:639,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:644,1
    - Dst: VSB_putc
      Src: /src/VTest2/lib/vsb.c:646,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 94
    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
    constantsTouched: []
    func_position:
      end: 647
      start: 527
    functionDepth: 7
    functionLinenumber: 527
    functionLinenumberEnd: 647
    functionName: VSB_quote_pfx
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 2
    functionsReached:
    - VSB_printf
    - VSB_putc
    - assert
    - AZ
    - VSB_cat
    - vsb_quote_hex
    - VSB_bcat
    - 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:652,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: 653
      start: 649
    functionDepth: 8
    functionLinenumber: 649
    functionLinenumberEnd: 653
    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:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - i
    argTypes:
    - struct vsb*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 668
    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:677,1
    - Dst: assert_VSB_state
      Src: /src/VTest2/lib/vsb.c:678,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:679,1
    - Dst: write
      Src: /src/VTest2/lib/vsb.c:684,1
    - Dst: assert
      Src: /src/VTest2/lib/vsb.c:687,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: 686
        line_start: 686
        source_file: /src/VTest2/lib/vsb.c
    - condition: (s->s_len >= 0)
      pos:
        line_end: 678
        line_start: 678
        source_file: /src/VTest2/lib/vsb.c
    constantsTouched: []
    func_position:
      end: 692
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 692
    functionName: VSB_tofile
    functionSourceFile: /src/VTest2/lib/vsb.c
    functionUses: 5
    functionsReached:
    - assert_VSB_integrity
    - assert_VSB_state
    - assert
    - 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:
    - AN
    - assert
    - vct_isident
    - strchr
    - vct_isident1
    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_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("", "") == 0)
      pos:
        line_end: 325
        line_start: 325
        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_caselencmp("AZaz1", "azAZ", 5) > 0)
      pos:
        line_end: 339
        line_start: 339
        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", "azAZ1", 4) == 0)
      pos:
        line_end: 330
        line_start: 330
        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("AZaz", "azAZ1", 5) < 0)
      pos:
        line_end: 338
        line_start: 338
        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_caselencmp("AZaz", "azAZ_", 4) == 0)
      pos:
        line_end: 328
        line_start: 328
        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_caselencmp("AZaz", "azAZ", 5) == 0)
      pos:
        line_end: 334
        line_start: 334
        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("AZaz_", "azAZ", 4) == 0)
      pos:
        line_end: 327
        line_start: 327
        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("A", "B", 0) == 0)
      pos:
        line_end: 342
        line_start: 342
        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
    - condition: (vct_caselencmp("AZay ", "azAZ", 5) < 0)
      pos:
        line_end: 336
        line_start: 336
        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:
    - setlocale
    - tolower
    - AN
    - assert
    - vct_caselencmp
    - vct_casecmp
    - vct_iscrlf
    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:
    - BAIL
    - vct_isdigit
    - AN
    - vct_isows
    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:
    - sf_parse_int
    - BAIL
    - vct_isdigit
    - vct_isows
    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:
    - nan
    - vct_issp
    - strchr
    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
    - nan
    - VNUM_duration_unit
    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:
    - strchr
    - AN
    - modf
    - vct_issp
    - trunc
    - exp2
    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
    - SF_Parse_Number
    - VNUM_bytes_unit
    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:
    - setbuf
    - VNUM_2bytes
    - strcmp
    - VNUM
    - printf
    - SF_Parse_Number
    - atof
    - VNUM_duration
    - sf_parse_int
    - bprintf
    - fabs
    - isnan
    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:
    - ALLOC_OBJ
    - AN
    - VTAILQ_INIT
    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:
    - VTAILQ_REMOVE
    - FREE_OBJ
    - vjsn_val_delete
    - CHECK_OBJ_NOTNULL
    - VTAILQ_FIRST
    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
    - TAKE_OBJ_NOTNULL
    - free
    - FREE_OBJ
    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_EXPECT
    - vjsn_unicode
    - AN
    - vjsn_skip_ws
    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:
    - AN
    - VTAILQ_INSERT_TAIL
    - VJSN_EXPECT
    - vjsn_string
    - vjsn_val_delete
    - vjsn_value
    - CHECK_OBJ_NOTNULL
    - vjsn_val_new
    - vjsn_skip_ws
    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:
    - AN
    - VTAILQ_INSERT_TAIL
    - VJSN_EXPECT
    - vjsn_val_delete
    - vjsn_value
    - CHECK_OBJ_NOTNULL
    - vjsn_val_new
    - vjsn_skip_ws
    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:
    - vjsn_val_new
    - AN
    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_array
    - AN
    - vjsn_number
    - AZ
    - strncmp
    - vjsn_string
    - vjsn_val_new
    - vjsn_object
    - vjsn_skip_ws
    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:
    - ALLOC_OBJ
    - AN
    - vjsn_skip_ws
    - malloc
    - vjsn_value
    - strchr
    - vjsn_delete
    - memcpy
    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:
    - CHECK_OBJ_NOTNULL
    - VTAILQ_FOREACH
    - AN
    - strcmp
    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:
    - printf
    - VTAILQ_FOREACH
    - strlen
    - CHECK_OBJ_NOTNULL
    - vjsn_dump_i
    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:
    - CHECK_OBJ_NOTNULL
    - vjsn_dump_i
    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:
    - CHECK_OBJ_NOTNULL
    - vjsn_dump_i
    - AN
    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
    - printf
    - fprintf
    - vjsn_delete
    - vjsn_parse
    - vjsn_dump
    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:
    - printf
    - vjsn_parse
    - exit
    - fprintf
    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:
    - printf
    - test_bad
    - test_good
    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:
    - AN
    - assert
    - VNUM_hex
    - pdiff
    - AZ
    - isdigit
    - strchr
    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
    - free
    - vav_backslash_txt
    - strchr
    - calloc
    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:
    - strdup
    - isspace
    - AN
    - assert
    - VAV_BackSlashDecode
    - realloc
    - malloc
    - vav_backslash_txt
    - strchr
    - calloc
    - memcpy
    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
    - printf
    - VAV_Print
    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
    - fgets
    - register_printf_render_std
    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:
    - AN
    - VAV_ParseTxt
    - strcmp
    - VAV_Parse
    - printf
    - strlen
    - free
    - malloc
    - memcpy
    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: 115
    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:
    - unw_getcontext
    - VSB_printf
    - VSB_putc
    - unw_step
    - unw_get_proc_name
    - unw_init_local
    - unw_get_reg
    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:
    - VSB_printf
    - backtrace
    - backtrace_symbols
    - VSB_cat
    - memcmp
    - strlen
    - free
    - bprintf
    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:
    - VALID_OBJ
    - vbt_unwind
    - VSB_cat
    - vbt_execinfo
    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:
    - VSB_printf
    - VBT_format
    - VSB_indent
    - VSB_init
    linkageType: ''
    returnType: int
    signature: int VBT_dump(size_t len, char buf[len])
  - BBCount: 6
    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
    - Dst: strncmp
      Src: /src/VTest2/lib/vtcp.c:87,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    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: 92
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 92
    functionName: vtcp_sa_to_ascii
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - VAS_errtxt
    - assert
    - snprintf
    - strncmp
    - getnameinfo
    - fprintf
    - gai_strerror
    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:103,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:104,1
    - Dst: vtcp_sa_to_ascii
      Src: /src/VTest2/lib/vtcp.c:105,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: 106
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 106
    functionName: VTCP_name
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 9
    functionsReached:
    - VSA_Get_Sockaddr
    - vtcp_sa_to_ascii
    - AN
    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:115,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:116,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/lib/vtcp.c:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 118
    functionName: VTCP_my_suckaddr
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - VSA_getsockname
    - malloc
    - 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:127,1
    - Dst: VSA_getsockname
      Src: /src/VTest2/lib/vtcp.c:127,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: 129
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: VTCP_myname
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 4
    functionsReached:
    - VSA_getsockname
    - VTCP_name
    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:139,1
    - Dst: VTCP_name
      Src: /src/VTest2/lib/vtcp.c:141,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtcp.c:143,1
    - Dst: snprintf
      Src: /src/VTest2/lib/vtcp.c:144,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: 146
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: VTCP_hisname
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 2
    functionsReached:
    - snprintf
    - VTCP_name
    - VSA_getpeername
    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:158,1
    - Dst: bprintf
      Src: /src/VTest2/lib/vtcp.c:159,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 163
    functionName: VTCP_filter_http
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - memset
    - bprintf
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int VTCP_filter_http(int sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 176
    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: 186
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 186
    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:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - depth
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 207
    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:227,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 229
    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:237,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 239
    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:259,1
    - Dst: getsockopt
      Src: /src/VTest2/lib/vtcp.c:259,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:264,1
    - Dst: VTCP_blocking
      Src: /src/VTest2/lib/vtcp.c:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 270
    functionName: VTCP_connected
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 2
    functionsReached:
    - AZ
    - VTCP_blocking
    - getsockopt
    - closefd
    linkageType: ''
    returnType: int
    signature: int VTCP_connected(int s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:284,1
    - Dst: VSA_Sane
      Src: /src/VTest2/lib/vtcp.c:284,1
    - Dst: VSA_Get_Sockaddr
      Src: /src/VTest2/lib/vtcp.c:285,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:286,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:287,1
    - Dst: socket
      Src: /src/VTest2/lib/vtcp.c:289,1
    - Dst: VTCP_nonblocking
      Src: /src/VTest2/lib/vtcp.c:295,1
    - Dst: AZ
      Src: /src/VTest2/lib/vtcp.c:298,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:298,1
    - Dst: connect
      Src: /src/VTest2/lib/vtcp.c:300,1
    - Dst: VTCP_blocking
      Src: /src/VTest2/lib/vtcp.c:302,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:306,1
    - Dst: assert
      Src: /src/VTest2/lib/vtcp.c:318,1
    - Dst: poll
      Src: /src/VTest2/lib/vtcp.c:323,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:327,1
    - Dst: VTCP_connected
      Src: /src/VTest2/lib/vtcp.c:332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 2
    argNames:
    - name
    - msec
    argTypes:
    - struct suckaddr*
    - int
    assertStmts:
    - condition: (msec > 0)
      pos:
        line_end: 317
        line_start: 317
        source_file: /src/VTest2/lib/vtcp.c
    constantsTouched: []
    func_position:
      end: 333
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 333
    functionName: VTCP_connect
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - VTCP_blocking
    - AN
    - assert
    - VSA_Get_Sockaddr
    - AZ
    - closefd
    - socket
    - VSA_Sane
    - VTCP_nonblocking
    - setsockopt
    - VTCP_connected
    - connect
    - poll
    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:345,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: VTCP_close
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 15
    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:354,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:362,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - seconds
    argTypes:
    - int
    - vtim_dur
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 364
    functionName: VTCP_set_read_timeout
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 2
    functionsReached:
    - VTCP_Assert
    - VTIM_timeval_sock
    - setsockopt
    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:383,1
    - Dst: VTCP_connect
      Src: /src/VTest2/lib/vtcp.c:386,1
    - Dst: floor
      Src: /src/VTest2/lib/vtcp.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - priv
    - sa
    argTypes:
    - void*
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 378
    functionDepth: 4
    functionLinenumber: 378
    functionLinenumberEnd: 394
    functionName: vtcp_open_callback
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - floor
    - CAST_OBJ_NOTNULL
    - 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:402,1
    - Dst: assert
      Src: /src/VTest2/lib/vtcp.c:403,1
    - Dst: INIT_OBJ
      Src: /src/VTest2/lib/vtcp.c:404,1
    - Dst: VSS_resolver
      Src: /src/VTest2/lib/vtcp.c:408,1
    - Dst: strerror
      Src: /src/VTest2/lib/vtcp.c:411,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: 402
        line_start: 402
        source_file: /src/VTest2/lib/vtcp.c
    constantsTouched: []
    func_position:
      end: 413
      start: 396
    functionDepth: 4
    functionLinenumber: 396
    functionLinenumberEnd: 413
    functionName: VTCP_open
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 4
    functionsReached:
    - AN
    - assert
    - INIT_OBJ
    - strerror
    - VSS_resolver
    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:434,1
    - Dst: socket
      Src: /src/VTest2/lib/vtcp.c:435,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:442,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:446,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:454,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:458,1
    - Dst: VSA_Get_Sockaddr
      Src: /src/VTest2/lib/vtcp.c:463,1
    - Dst: bind
      Src: /src/VTest2/lib/vtcp.c:464,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:468,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 2
    argNames:
    - sa
    - errp
    argTypes:
    - struct suckaddr*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 473
    functionName: VTCP_bind
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 2
    functionsReached:
    - bind
    - VSA_Get_Sockaddr
    - VSA_Get_Proto
    - closefd
    - socket
    - setsockopt
    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:488,1
    - Dst: listen
      Src: /src/VTest2/lib/vtcp.c:490,1
    - Dst: closefd
      Src: /src/VTest2/lib/vtcp.c:492,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - sa
    - depth
    - errp
    argTypes:
    - struct suckaddr*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 500
    functionName: VTCP_listen
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - listen
    - VTCP_bind
    - closefd
    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:515,1
    - Dst: AN
      Src: /src/VTest2/lib/vtcp.c:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - priv
    - sa
    argTypes:
    - void*
    - struct suckaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 522
    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:531,1
    - Dst: VSS_resolver
      Src: /src/VTest2/lib/vtcp.c:535,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: 539
      start: 524
    functionDepth: 4
    functionLinenumber: 524
    functionLinenumberEnd: 539
    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:551,1
    - Dst: setsockopt
      Src: /src/VTest2/lib/vtcp.c:553,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - sock
    - linger
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 556
    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:567,1
    - Dst: poll
      Src: /src/VTest2/lib/vtcp.c:572,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts:
    - condition: (sock > 0)
      pos:
        line_end: 566
        line_start: 566
        source_file: /src/VTest2/lib/vtcp.c
    constantsTouched: []
    func_position:
      end: 575
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 575
    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: 632
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 632
    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:648,1
    - Dst: VTIM_poll_tmo
      Src: /src/VTest2/lib/vtcp.c:648,1
    - Dst: read
      Src: /src/VTest2/lib/vtcp.c:652,1
    - Dst: VTCP_Assert
      Src: /src/VTest2/lib/vtcp.c:653,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: 655
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 655
    functionName: VTCP_read
    functionSourceFile: /src/VTest2/lib/vtcp.c
    functionUses: 0
    functionsReached:
    - VTIM_poll_tmo
    - VTCP_Assert
    - read
    - poll
    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: (*b > 0)
      pos:
        line_end: 155
        line_start: 155
        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: (parent(bh, *b) == u)
      pos:
        line_end: 158
        line_start: 158
        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:
    - realloc
    - malloc
    - ROW
    - assert
    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:
    - ALLOC_OBJ
    - vbh_addrow
    - assert
    - AZ
    - getpagesize
    - calloc
    - A
    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
    - AZ
    - FREE_OBJ
    - free
    - ROW
    - 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:
    - CHECK_OBJ_NOTNULL
    - struct vbh*::update
    - assert
    - A
    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: (u < bh->next)
      pos:
        line_end: 274
        line_start: 274
        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: (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:
    - CHECK_OBJ_NOTNULL
    - vbh_update
    - assert
    - A
    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:
    - assert
    - binhead_swap
    - parent
    - CHECK_OBJ_NOTNULL
    - 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: (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: (A(bh, u) != NULL)
      pos:
        line_end: 320
        line_start: 320
        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: (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
    - condition: (A(bh, u) != NULL)
      pos:
        line_end: 316
        line_start: 316
        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
    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
    - binhead_swap
    - CHECK_OBJ_NOTNULL
    - A
    - struct vbh*::cmp
    - child
    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: 350
        line_start: 350
        source_file: /src/VTest2/lib/vbh.c
    - condition: (bh->length > bh->next)
      pos:
        line_end: 353
        line_start: 353
        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_addrow
    - assert
    - vbh_trickleup
    - vbh_update
    - CHECK_OBJ_NOTNULL
    - 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:
    - A
    - parent
    - 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:
    - CHECK_OBJ_NOTNULL
    - chk
    - A
    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: (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: (idx < bh->next)
      pos:
        line_end: 433
        line_start: 433
        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: 419
        line_start: 419
        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: (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:
    - struct vbh*::update
    - assert
    - vbh_trickleup
    - vbh_trickledown
    - vbh_update
    - free
    - ROW
    - CHECK_OBJ_NOTNULL
    - 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 > 0)
      pos:
        line_end: 460
        line_start: 460
        source_file: /src/VTest2/lib/vbh.c
    - 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: (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: (A(bh, idx) != NULL)
      pos:
        line_end: 469
        line_start: 469
        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
    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_trickledown
    - assert
    - vbh_trickleup
    - CHECK_OBJ_NOTNULL
    - 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: 105
    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
    - assert
    - A
    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: (fp->key <= lr)
      pos:
        line_end: 583
        line_start: 583
        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: (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: (fp->key >= lr)
      pos:
        line_end: 604
        line_start: 604
        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->idx == 1)
      pos:
        line_end: 569
        line_start: 569
        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: (ff[v]->idx == VBH_NOIDX)
      pos:
        line_end: 619
        line_start: 619
        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
    constantsTouched: []
    func_position:
      end: 649
      start: 538
    functionDepth: 5
    functionLinenumber: 538
    functionLinenumberEnd: 649
    functionName: main
    functionSourceFile: /src/VTest2/lib/vbh.c
    functionUses: 0
    functionsReached:
    - assert
    - VBH_insert
    - AZ
    - CHECK_OBJ
    - VBH_reorder
    - fprintf
    - chk2
    - VBH_destroy
    - VBH_new
    - AN
    - VBH_root
    - VRND_RandomTestable
    - FREE_OBJ
    - CHECK_OBJ_NOTNULL
    - child
    - ALLOC_OBJ
    - VRND_SeedTestable
    - VRND_SeedAll
    - VBH_delete
    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: 4
    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: 5
    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:
    - ALLOC_OBJ
    - malloc
    - FREE_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: (l->bufl >= l->bufp)
      pos:
        line_end: 129
        line_start: 129
        source_file: /src/VTest2/lib/vlu.c
    - condition: ((size_t)i <= sz)
      pos:
        line_end: 136
        line_start: 136
        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:
    - CHECK_OBJ_NOTNULL
    - read
    - LineUpProcess
    - assert
    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_New
    - VLU_Destroy
    - VLU_Fd
    - AN
    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:
    - AN
    - assert
    - LineUpProcess
    - CHECK_OBJ_NOTNULL
    - memcpy
    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:
    - (
    - 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:
    - count_hash_results
    - memset
    - hash_tw3
    - hash_tw2
    - hash_tw1
    - hash_id
    - hash_bj7
    - dump_hash_results
    - hash_bj6
    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:
    - execvp
    - printf
    - sigfillset
    - sigprocmask
    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:
    - printf
    - queue_by_weight_0
    - eb32_insert
    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_down
    - get_srv_next
    - get_srv_init
    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_first
    - get_srv_init
    - eb32_entry
    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:
    - get_next_server
    - random
    - exit
    - printf
    - update_position
    - put_srv
    - get_srv
    - switch_trees
    - atol
    - dequeue_srv
    - queue_by_weight_0
    - calloc
    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:
    - strlen
    - run_test
    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:
    - count_hash_results
    - hash_gd1
    - hash_gd5
    - SuperFastHash2
    - memset
    - SuperFastHash
    - hash_wt1
    - hash_wt2
    - hash_gd4
    - fgets
    - haproxy_server_hash
    - strlen
    - hash_gd6
    - hash_gd3
    - dump_hash_results
    - hash_gd2
    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:
    - MT_LIST_POP
    - MT_LIST_TRY_APPEND
    - rnd32
    - printf
    - MT_LIST_TRY_INSERT
    - free
    - malloc
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - MT_LIST_INIT
    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:
    - time
    - exit
    - pthread_create
    - pthread_join
    - printf
    - atoi
    - malloc
    - 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:
    - strncmp
    - ist
    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:
    - istlen
    - ist
    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:
    - istnext
    - strncmp
    - istlen
    - ist
    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:
    - strncmp
    - istpad
    - ist
    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:
    - isttrim
    - strncmp
    - ist
    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:
    - iststrip
    - ist
    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:
    - istmatch
    - ist
    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:
    - istnmatch
    - ist
    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:
    - isteq
    - ist
    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:
    - istcpy
    - strcmp
    - ist
    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:
    - memcmp
    - istscpy
    - ist
    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:
    - strncmp
    - istcat
    - strcmp
    - ist
    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:
    - strncmp
    - istscat
    - strcmp
    - ist
    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:
    - istchr
    - ist
    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:
    - istfind
    - ist
    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:
    - istskip
    - ist
    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:
    - istist
    - ist
    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_istskip
    - test_ist2
    - test_isttrim
    - test_iststrip
    - test_istmatch
    - test_istchr
    - test_isteq
    - test_istlen
    - printf
    - test_istcpy
    - test_istnext
    - test_ist
    - test_istdiff
    - test_istnmatch
    - test_istfind
    - test_istneq
    - test_istzero
    - test_istscpy
    - test_istcat
    - test_istist
    - test_istscat
    - test_istpad
    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:
    - printf
    - atoll
    - strlen
    - free
    - ARG7
    - make_arg_list
    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:
    - printf
    - statistical_prng
    - atoi
    - one_among
    - atol
    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_by4
    - is_char8_outside_by8
    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
    - fast64_gen8
    - printf
    - fast64_gen4
    - atoi
    - fast64_gen
    - fast32_gen
    - rnd64
    - slow32_ref
    - atol
    - fast64_spec
    - fast32_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:
    - vfprintf
    - exit
    - va_end
    - va_start
    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: 1
    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:
    - usleep
    - unlikely
    - b_peek_varint
    - b_data
    - fprintf
    - b_getblk_nc
    - fwrite
    - memchr
    - b_peek
    - putchar
    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:
    - dump_ring_as_buf
    - b_make
    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:
    - dump_ring_as_buf
    - b_make
    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:
    - dump_ring_as_buf
    - b_make
    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:
    - usage
    - perror
    - strcmp
    - open
    - fstat
    - close
    - dump_ring_v1
    - dump_ring_v2
    - mmap
    - dump_ring_v2a
    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:
    - exit
    - fprintf
    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:
    - tolower
    - isxdigit
    - snprintf
    - strcmp
    - isalpha
    - strlen
    - isupper
    - to_upper
    - hex2i
    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:
    - printf
    - tevt_show_events
    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:
    - usage_exit
    - strcmp
    - printf
    - fgets
    - tevt_show_events
    - tevt_show_tuple_events
    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:
    - vfprintf
    - exit
    - va_end
    - va_start
    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: 2
    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:
    - vfprintf
    - fprintf
    - gettimeofday
    - va_start
    - va_end
    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:
    - waitpid
    - __sync_sub_and_fetch
    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:
    - strchr
    - memset
    - htons
    - snprintf
    - strrchr
    - atoi
    - inet_pton
    - gethostbyname
    - strncpy
    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_ctl
    - poll
    - epoll_create
    - 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:
    - bind
    - addr_to_ss
    - perror
    - tcp_socket
    - close
    - die
    - setsockopt
    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
    - atoi
    - close
    - fprintf
    - listen
    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
    - accept
    - atoi
    - close
    - fprintf
    - fcntl
    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:
    - addr_to_ss
    - tcp_socket
    - close
    - fcntl
    - die
    - setsockopt
    - connect
    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:
    - recv
    - dolog
    - atoi
    - fprintf
    - wait_on_fd
    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:
    - dolog
    - atoi
    - fprintf
    - unescape
    - send
    - wait_on_fd
    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:
    - recv
    - dolog
    - atoi
    - fprintf
    - send
    - wait_on_fd
    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:
    - wait_on_fd
    - atoi
    - fprintf
    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:
    - usleep
    - atoi
    - fprintf
    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:
    - atoi
    - fprintf
    - __sync_add_and_fetch
    - fork
    - poll
    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:
    - tcp_bind
    - getpid
    - tcp_disconnect
    - tcp_pause
    - dup
    - close
    - tcp_wait_out
    - tcp_echo
    - die
    - gettimeofday
    - strerror
    - signal
    - dup2
    - tcp_wait_in
    - strcmp
    - dolog
    - execvp
    - tcp_set_nolinger
    - tcp_wait
    - tcp_fork
    - addr_to_ss
    - tcp_send
    - fcntl
    - tcp_set_noquickack
    - usage
    - tcp_listen
    - tcp_accept
    - shutdown
    - tcp_recv
    - strchr
    - tcp_set_nodelay
    - tcp_connect
    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:
    - exit
    - fprintf
    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:
    - chn_show_flags
    - strm_et_show_flags
    - fd_show_flags
    - txn_show_flags
    - h1c_show_flags
    - strm_show_flags
    - conn_show_flags
    - strcmp
    - se_show_flags
    - peer_show_flags
    - printf
    - fprintf
    - toupper
    - fconn_show_flags
    - usage_exit
    - h2c_show_flags
    - isalnum
    - h2s_show_flags
    - spop_conn_show_flags
    - h1s_show_flags
    - spop_strm_show_flags
    - hsl_show_flags
    - sc_show_flags
    - hmsg_show_flags
    - task_show_state
    - htx_show_flags
    - chn_show_analysers
    - qc_show_flags
    - qcs_show_flags
    - get_show_as
    - fstrm_show_flags
    - fgets
    - peers_show_flags
    - qcc_show_flags
    - strtoul
    - appctx_show_flags
    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:
    - fputc
    - isprint
    - fprintf
    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:
    - vfprintf
    - exit
    - va_end
    - va_start
    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:
    - printf
    - istpad
    - fgets
    - hpack_dht_alloc
    - atoi
    - debug_hexdump
    - hpack_decode_frame
    - h2_phdr_to_str
    - die
    - puts
    - hpack_dht_dump
    - hex2bin
    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:
    - qsort
    - printf
    - memcmp
    - putchar
    - abort
    - memcpy
    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: 3
    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:
    - exit
    - fprintf
    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:
    - accept
    - printf
    - get_errno
    - side
    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
    - printf
    - connect
    - 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
    - printf
    - send
    - side
    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
    - printf
    - send
    - side
    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:
    - get_errno
    - recv
    - 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:
    - get_errno
    - recv
    - 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
    - shutdown
    - printf
    - side
    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
    - shutdown
    - printf
    - side
    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
    - shutdown
    - printf
    - side
    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
    - printf
    - side
    - setsockopt
    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
    - printf
    - side
    - close
    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:
    - epoll_wait
    - printf
    - epoll_create
    - get_errno
    - putchar
    - side
    - epoll_ctl
    - poll
    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:
    - exit
    - do_snd
    - do_drn
    - die
    - setsockopt
    - do_shb
    - do_rcv
    - do_shw
    - strcmp
    - printf
    - write
    - memset
    - do_lin
    - getsockname
    - do_shr
    - do_con
    - socket
    - do_mor
    - bind
    - usage
    - htons
    - do_acc
    - do_pol
    - do_clo
    - strchr
    - listen
    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:
    - fputc
    - isprint
    - fprintf
    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:
    - isteq
    - fgets
    - fprintf
    - ist
    - hex2bin
    - qpack_decode_fs
    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_qdisc_alloc
    - nl_cli_connect
    - nl_cli_link_alloc_cache
    - nl_cli_alloc_socket
    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_add
    - rtnl_qdisc_plug_release_indefinite
    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_add
    - rtnl_qdisc_plug_buffer
    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:
    - rtnl_tc_get_ifindex
    - rtnl_tc_get_parent
    - plug_qdisc_release_indefinite_buffer
    - qdisc_init
    - rtnl_qdisc_add
    - rtnl_qdisc_plug_set_limit
    - nl_cli_tc_parse_dev
    - fprintf
    - nl_cli_tc_parse_parent
    - nl_cli_tc_parse_handle
    - nl_geterror
    - rtnl_tc_set_kind
    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:
    - CPU_ZERO_S
    - CPU_SET_S
    - atoi
    - getenv
    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: 4
    functionsReached:
    - exit
    - fprintf
    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:
    - usage
    - readlink
    - setenv
    - strcmp
    - snprintf
    - getenv
    - perror
    - exit
    - strlen
    - realloc
    - execvp
    - memcpy
    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:
    - rnd32
    - printf
    - hash
    - atol
    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:
    - vfprintf
    - exit
    - va_end
    - va_start
    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:
    - htons
    - memset
    - snprintf
    - strrchr
    - atoi
    - inet_pton
    - gethostbyname
    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:
    - bind
    - snprintf
    - close
    - fcntl
    - socket
    - strerror
    - setsockopt
    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:
    - close
    - fcntl
    - socket
    - setsockopt
    - connect
    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:
    - add_connection
    - prng
    - update_pfd
    - memcmp
    - recvfrom
    - pktbuf_apply_corruption
    - send
    - memcpy
    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:
    - prng
    - sendto
    - conn_bck_lookup
    - recvfrom
    - pktbuf_apply_corruption
    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: 5
    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:
    - usage
    - create_udp_listener
    - addr_to_ss
    - poll
    - update_pfd
    - handle_bck
    - atoi
    - handle_frt
    - malloc
    - die
    - atol
    - getopt
    - calloc
    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:19,1
    - Dst: _ha_vdiag_warning
      Src: /src/haproxy/src/cfgdiag.c:21,1
    - Dst: va_end
      Src: /src/haproxy/src/cfgdiag.c:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ret
    - fmt
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 23
    functionName: diag_warning
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 1
    functionsReached:
    - _ha_vdiag_warning
    - va_end
    - va_start
    linkageType: ''
    returnType: void
    signature: void diag_warning(int *ret, char *fmt, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/cfgdiag.c:32,1
    - Dst: fprintf
      Src: /src/haproxy/src/cfgdiag.c:33,1
    - Dst: exit
      Src: /src/haproxy/src/cfgdiag.c:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: diag_alloc
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 0
    functionsReached:
    - malloc
    - exit
    - fprintf
    linkageType: ''
    returnType: void
    signature: void *diag_alloc(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebis_lookup
      Src: /src/haproxy/src/cfgdiag.c:64,1
    - Dst: diag_warning
      Src: /src/haproxy/src/cfgdiag.c:66,1
    - Dst: diag_alloc
      Src: /src/haproxy/src/cfgdiag.c:71,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/cfgdiag.c:73,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/cfgdiag.c:77,1
    - Dst: ebpt_entry
      Src: /src/haproxy/src/cfgdiag.c:78,1
    - Dst: eb_delete
      Src: /src/haproxy/src/cfgdiag.c:79,1
    - Dst: free
      Src: /src/haproxy/src/cfgdiag.c:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - ret
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 83
    functionName: check_server_cookies
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 0
    functionsReached:
    - diag_warning
    - ebis_insert
    - eb_delete
    - free
    - ebis_lookup
    - ebpt_entry
    - diag_alloc
    - ebpt_first
    linkageType: ''
    returnType: void
    signature: void check_server_cookies(int *ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_server_cookies
      Src: /src/haproxy/src/cfgdiag.c:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: cfg_run_diagnostics
    functionSourceFile: /src/haproxy/src/cfgdiag.c
    functionUses: 0
    functionsReached:
    - check_server_cookies
    linkageType: ''
    returnType: int
    signature: int cfg_run_diagnostics()
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: sock_inet4_make_foreign
      Src: /src/haproxy/src/proto_tcp.c:268,1
    - Dst: sock_inet6_make_foreign
      Src: /src/haproxy/src/proto_tcp.c:276,1
    - Dst: memset
      Src: /src/haproxy/src/proto_tcp.c:285,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:306,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_tcp.c:308,1
    - Dst: bind
      Src: /src/haproxy/src/proto_tcp.c:309,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_tcp.c:309,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_tcp.c:315,1
    - Dst: bind
      Src: /src/haproxy/src/proto_tcp.c:316,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_tcp.c:316,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: 330
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 330
    functionName: tcp_bind_socket
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - bind
    - sock_inet6_make_foreign
    - memset
    - sock_inet4_make_foreign
    - setsockopt
    - get_addr_len
    - is_inet_addr
    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:371,1
    - Dst: obj_type
      Src: /src/haproxy/src/proto_tcp.c:375,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/proto_tcp.c:377,1
    - Dst: __objt_server
      Src: /src/haproxy/src/proto_tcp.c:381,1
    - Dst: sock_create_server_socket
      Src: /src/haproxy/src/proto_tcp.c:400,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:406,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:410,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:415,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:420,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_tcp.c:438,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:454,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:462,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:468,1
    - Dst: port_range_alloc_port
      Src: /src/haproxy/src/proto_tcp.c:475,1
    - Dst: set_host_port
      Src: /src/haproxy/src/proto_tcp.c:482,1
    - Dst: tcp_bind_socket
      Src: /src/haproxy/src/proto_tcp.c:484,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:492,1
    - Dst: tcp_bind_socket
      Src: /src/haproxy/src/proto_tcp.c:494,1
    - Dst: unlikely
      Src: /src/haproxy/src/proto_tcp.c:499,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:500,1
    - Dst: close
      Src: /src/haproxy/src/proto_tcp.c:502,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_tcp.c:505,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_tcp.c:507,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_tcp.c:511,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_tcp.c:513,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:531,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:541,1
    - Dst: strlen
      Src: /src/haproxy/src/proto_tcp.c:541,1
    - Dst: memset
      Src: /src/haproxy/src/proto_tcp.c:550,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:552,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:554,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/proto_tcp.c:556,1
    - Dst: strlen
      Src: /src/haproxy/src/proto_tcp.c:557,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:558,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:568,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:573,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: connect
      Src: /src/haproxy/src/proto_tcp.c:588,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_tcp.c:588,1
    - Dst: qfprintf
      Src: /src/haproxy/src/proto_tcp.c:608,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:609,1
    - Dst: close
      Src: /src/haproxy/src/proto_tcp.c:611,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_tcp.c:612,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:617,1
    - Dst: close
      Src: /src/haproxy/src/proto_tcp.c:619,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_tcp.c:626,1
    - Dst: close
      Src: /src/haproxy/src/proto_tcp.c:628,1
    - Dst: conn_ctrl_init
      Src: /src/haproxy/src/proto_tcp.c:639,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/proto_tcp.c:640,1
    - Dst: fd_want_send
      Src: /src/haproxy/src/proto_tcp.c:643,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/proto_tcp.c:644,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/proto_tcp.c:645,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 168
    argCount: 2
    argNames:
    - conn
    - flags
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 649
    functionName: tcp_connect_server
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - obj_type
    - set_host_port
    - unlikely
    - __objt_proxy
    - close
    - setsockopt
    - port_range_release_port
    - connect
    - is_inet_addr
    - fd_cant_recv
    - strlen
    - get_addr_len
    - HA_ATOMIC_OR
    - memset
    - __objt_server
    - fd_cant_send
    - BUG_ON
    - conn_ctrl_init
    - strlcpy2
    - ha_alert
    - qfprintf
    - port_range_alloc_port
    - fd_want_send
    - send_log
    - sock_create_server_socket
    - tcp_bind_socket
    - memcpy
    linkageType: ''
    returnType: int
    signature: int tcp_connect_server(struct connection *conn, int flags)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/proto_tcp.c:668,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_tcp.c:674,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:686,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:696,1
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_tcp.c:700,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:704,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:711,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:713,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:714,1
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_tcp.c:736,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:739,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:740,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:741,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:754,1
    - Dst: strlen
      Src: /src/haproxy/src/proto_tcp.c:754,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:755,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:756,1
    - Dst: memset
      Src: /src/haproxy/src/proto_tcp.c:766,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:768,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_tcp.c:770,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/proto_tcp.c:772,1
    - Dst: strlen
      Src: /src/haproxy/src/proto_tcp.c:773,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:774,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:775,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:776,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:783,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:785,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:786,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:790,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:797,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:798,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:799,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:803,1
    - Dst: listener_backlog
      Src: /src/haproxy/src/proto_tcp.c:809,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:810,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:811,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:812,1
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_tcp.c:822,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:824,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: sock_accepting_conn
      Src: /src/haproxy/src/proto_tcp.c:834,1
    - Dst: listen
      Src: /src/haproxy/src/proto_tcp.c:837,1
    - Dst: listener_backlog
      Src: /src/haproxy/src/proto_tcp.c:837,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:839,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:840,1
    - Dst: memset
      Src: /src/haproxy/src/proto_tcp.c:848,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/proto_tcp.c:849,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:850,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proto_tcp.c:851,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_tcp.c:852,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:859,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_tcp.c:861,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/proto_tcp.c:866,1
    - Dst: fd_delete
      Src: /src/haproxy/src/proto_tcp.c:870,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/proto_tcp.c:875,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_tcp.c:876,1
    - Dst: get_host_port
      Src: /src/haproxy/src/proto_tcp.c:876,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/proto_tcp.c:878,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 130
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 881
    functionName: tcp_bind_listener
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - sock_accepting_conn
    - memset
    - getsockopt
    - addr_to_str
    - snprintf
    - free_trash_chunk
    - chunk_appendf
    - listener_backlog
    - listener_set_state
    - strlen
    - strlcpy2
    - strerror
    - setsockopt
    - listen
    - alloc_trash_chunk
    - memcpy
    - get_host_port
    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:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 889
    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:896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 897
    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:915,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_tcp.c:918,1
    - Dst: sock_accepting_conn
      Src: /src/haproxy/src/proto_tcp.c:926,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/proto_tcp.c:929,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 935
    functionName: tcp_suspend_receiver
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    - sock_accepting_conn
    - connect
    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:943,1
    - Dst: listen
      Src: /src/haproxy/src/proto_tcp.c:948,1
    - Dst: listener_backlog
      Src: /src/haproxy/src/proto_tcp.c:948,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/proto_tcp.c:949,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 941
    functionDepth: 1
    functionLinenumber: 941
    functionLinenumberEnd: 953
    functionName: tcp_resume_receiver
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - listen
    - listener_backlog
    - LIST_ELEM
    - fd_want_recv
    linkageType: ''
    returnType: int
    signature: int tcp_resume_receiver(struct receiver *rx)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_tcp.c:969,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: 1005
      start: 960
    functionDepth: 0
    functionLinenumber: 960
    functionLinenumberEnd: 1005
    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: 1010
      start: 1007
    functionDepth: 0
    functionLinenumber: 1007
    functionLinenumberEnd: 1010
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: hap_register_feature
      Src: /src/haproxy/src/proto_tcp.c:1017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1014
    functionDepth: 1
    functionLinenumber: 1014
    functionLinenumberEnd: 1019
    functionName: __proto_tcp_init
    functionSourceFile: /src/haproxy/src/proto_tcp.c
    functionUses: 0
    functionsReached:
    - hap_register_feature
    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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - raw_in
    - len_in
    - b
    argTypes:
    - uint8_t**
    - uint32_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 87
    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: 105
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 105
    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:121,1
    - Dst: unlikely
      Src: /src/haproxy/src/hpack-dec.c:122,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:122,1
    - Dst: unlikely
      Src: /src/haproxy/src/hpack-dec.c:125,1
    - Dst: memcpy
      Src: /src/haproxy/src/hpack-dec.c:131,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: 133
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 133
    functionName: hpack_alloc_string
    functionSourceFile: /src/haproxy/src/hpack-dec.c
    functionUses: 0
    functionsReached:
    - isttest
    - memcpy
    - chunk_newstr
    - unlikely
    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:159,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/hpack-dec.c:161,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:170,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:175,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:177,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:179,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:184,1
    - Dst: hpack_valid_idx
      Src: /src/haproxy/src/hpack-dec.c:186,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:187,1
    - Dst: hpack_alloc_string
      Src: /src/haproxy/src/hpack-dec.c:192,1
    - Dst: hpack_idx_to_value
      Src: /src/haproxy/src/hpack-dec.c:192,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:193,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:194,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:200,1
    - Dst: hpack_idx_to_phdr
      Src: /src/haproxy/src/hpack-dec.c:200,1
    - Dst: hpack_alloc_string
      Src: /src/haproxy/src/hpack-dec.c:203,1
    - Dst: hpack_idx_to_name
      Src: /src/haproxy/src/hpack-dec.c:203,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:204,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:205,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:214,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:218,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:223,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:225,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:229,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:232,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:243,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:245,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:247,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:256,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:262,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:264,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:270,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/hpack-dec.c:276,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:278,1
    - Dst: huff_dec
      Src: /src/haproxy/src/hpack-dec.c:283,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:286,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:290,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:293,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:298,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:304,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:306,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:312,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/hpack-dec.c:317,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:319,1
    - Dst: huff_dec
      Src: /src/haproxy/src/hpack-dec.c:324,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:327,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:331,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:334,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:345,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:347,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:349,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:354,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:357,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:359,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:362,1
    - Dst: hpack_valid_idx
      Src: /src/haproxy/src/hpack-dec.c:367,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:368,1
    - Dst: get_var_int
      Src: /src/haproxy/src/hpack-dec.c:375,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:377,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:382,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/hpack-dec.c:387,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:389,1
    - Dst: huff_dec
      Src: /src/haproxy/src/hpack-dec.c:394,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:397,1
    - Dst: hpack_debug_hexdump
      Src: /src/haproxy/src/hpack-dec.c:400,1
    - Dst: ist2
      Src: /src/haproxy/src/hpack-dec.c:405,1
    - Dst: hpack_idx_to_phdr
      Src: /src/haproxy/src/hpack-dec.c:410,1
    - Dst: hpack_alloc_string
      Src: /src/haproxy/src/hpack-dec.c:413,1
    - Dst: hpack_idx_to_name
      Src: /src/haproxy/src/hpack-dec.c:413,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:414,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:415,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:427,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:439,1
    - Dst: hpack_dht_insert
      Src: /src/haproxy/src/hpack-dec.c:448,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:449,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:454,1
    - Dst: isttest
      Src: /src/haproxy/src/hpack-dec.c:455,1
    - Dst: istpad
      Src: /src/haproxy/src/hpack-dec.c:455,1
    - Dst: h2_phdr_to_str
      Src: /src/haproxy/src/hpack-dec.c:455,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:457,1
    - Dst: istpad
      Src: /src/haproxy/src/hpack-dec.c:458,1
    - Dst: hpack_debug_printf
      Src: /src/haproxy/src/hpack-dec.c:473,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: 475
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 475
    functionName: hpack_decode_frame
    functionSourceFile: /src/haproxy/src/hpack-dec.c
    functionUses: 2
    functionsReached:
    - hpack_idx_to_phdr
    - hpack_valid_idx
    - hpack_idx_to_name
    - chunk_newstr
    - hpack_idx_to_value
    - istpad
    - hpack_debug_hexdump
    - ist2
    - h2_phdr_to_str
    - hpack_dht_insert
    - huff_dec
    - hpack_debug_printf
    - isttest
    - get_var_int
    - hpack_alloc_string
    - chunk_reset
    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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    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: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    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: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    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:67,1
    - Dst: chunk_init
      Src: /src/haproxy/src/http_fetch.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 72
    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:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 77
    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:104,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:112,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:114,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:117,1
    - Dst: memchr
      Src: /src/haproxy/src/http_fetch.c:120,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_fetch.c:125,1
    - Dst: istend
      Src: /src/haproxy/src/http_fetch.c:131,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_fetch.c:134,1
    - Dst: istend
      Src: /src/haproxy/src/http_fetch.c:134,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http_fetch.c:136,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:137,1
    - Dst: base64dec
      Src: /src/haproxy/src/http_fetch.c:139,1
    - Dst: strchr
      Src: /src/haproxy/src/http_fetch.c:149,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http_fetch.c:160,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - smp
    - htx
    argTypes:
    - struct sample*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 166
    functionName: get_http_auth
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - get_trash_chunk
    - strncasecmp
    - printf
    - chunk_initlen
    - memchr
    - strchr
    - istend
    - base64dec
    - ist
    linkageType: ''
    returnType: int
    signature: int get_http_auth(struct sample *smp, struct htx *htx)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_fetch.c:205,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_fetch.c:208,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_fetch.c:211,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:214,1
    - Dst: http_create_txn
      Src: /src/haproxy/src/http_fetch.c:225,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/http_fetch.c:230,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_fetch.c:231,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_fetch.c:238,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:244,1
    - Dst: b_head
      Src: /src/haproxy/src/http_fetch.c:264,1
    - Dst: b_data
      Src: /src/haproxy/src/http_fetch.c:264,1
    - Dst: b_wrap
      Src: /src/haproxy/src/http_fetch.c:264,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/http_fetch.c:265,1
    - Dst: h1m_init_req
      Src: /src/haproxy/src/http_fetch.c:267,1
    - Dst: h1_headers_to_hdr_list
      Src: /src/haproxy/src/http_fetch.c:268,1
    - Dst: b_head
      Src: /src/haproxy/src/http_fetch.c:268,1
    - Dst: b_stop
      Src: /src/haproxy/src/http_fetch.c:268,1
    - Dst: channel_full
      Src: /src/haproxy/src/http_fetch.c:272,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_fetch.c:283,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:287,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_fetch.c:301,1
    - Dst: get_raw_htx_chunk
      Src: /src/haproxy/src/http_fetch.c:301,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_fetch.c:302,1
    - Dst: htx_add_all_headers
      Src: /src/haproxy/src/http_fetch.c:303,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 87
    argCount: 4
    argNames:
    - smp
    - chn
    - check
    - vol
    argTypes:
    - struct sample*
    - struct channel*
    - struct check*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 331
    functionName: smp_prefetch_htx
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - unlikely
    - http_create_txn
    - htx_add_stline
    - http_get_stline
    - b_head
    - htx_from_buf
    - htx_add_all_headers
    - b_stop
    - b_data
    - htxbuf
    - h1_headers_to_hdr_list
    - h1m_init_req
    - channel_full
    - BUG_ON
    - b_wrap
    - ist
    - htx_is_empty
    - IS_HTX_STRM
    - get_raw_htx_chunk
    - b_slow_realign
    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: SMP_REQ_CHN
      Src: /src/haproxy/src/http_fetch.c:343,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:354,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:365,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_fetch.c:367,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_fetch.c:368,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: 372
      start: 341
    functionDepth: 3
    functionLinenumber: 341
    functionLinenumberEnd: 372
    functionName: smp_fetch_meth
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_MLEN
    - smp_prefetch_htx
    - http_get_stline
    - SMP_REQ_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_meth(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:376,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:377,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:385,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_fetch.c:386,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_fetch.c:387,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: 399
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 399
    functionName: smp_fetch_rqver
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - HTX_SL_REQ_VLEN
    - HTX_SL_REQ_VPTR
    - http_get_stline
    - SMP_REQ_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_rqver(const struct arg *args, struct sample *smp, const
      char *kw, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:403,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:404,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:405,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:413,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_fetch.c:414,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/http_fetch.c:415,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: 427
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 427
    functionName: smp_fetch_stver
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - HTX_SL_RES_VPTR
    - smp_prefetch_htx
    - objt_check
    - http_get_stline
    - SMP_RES_CHN
    - HTX_SL_RES_VLEN
    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:432,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:433,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:434,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:442,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/http_fetch.c:443,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/http_fetch.c:444,1
    - Dst: __strl2ui
      Src: /src/haproxy/src/http_fetch.c:447,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: 450
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 450
    functionName: smp_fetch_stcode
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - objt_check
    - http_get_stline
    - HTX_SL_RES_CPTR
    - HTX_SL_RES_CLEN
    - __strl2ui
    - 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:464,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:465,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: 478
      start: 453
    functionDepth: 3
    functionLinenumber: 453
    functionLinenumberEnd: 478
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/http_fetch.c:484,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/http_fetch.c:490,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:491,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: 499
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 499
    functionName: smp_fetch_uniqueid
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - isttest
    - lf_expr_isempty
    - stream_generate_unique_id
    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:508,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:508,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:509,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:510,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:516,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:517,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:517,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:518,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:519,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_fetch.c:522,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:523,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/http_fetch.c:525,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_fetch.c:529,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: 537
      start: 505
    functionDepth: 3
    functionLinenumber: 505
    functionLinenumberEnd: 537
    functionName: smp_fetch_hdrs
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - chunk_memcat
    - get_trash_chunk
    - htx_get_blk_value
    - smp_prefetch_htx
    - htx_get_first
    - htx_get_blk_type
    - objt_check
    - h1_format_htx_hdr
    - htx_get_blk_name
    - htx_get_blk
    - htx_get_next
    - SMP_RES_CHN
    - SMP_REQ_CHN
    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:555,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:555,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:556,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:557,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:565,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:568,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:568,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:569,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:570,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_fetch.c:574,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:575,1
    - Dst: encode_varint
      Src: /src/haproxy/src/http_fetch.c:578,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:583,1
    - Dst: encode_varint
      Src: /src/haproxy/src/http_fetch.c:587,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:592,1
    - Dst: encode_varint
      Src: /src/haproxy/src/http_fetch.c:600,1
    - Dst: encode_varint
      Src: /src/haproxy/src/http_fetch.c:603,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: 616
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 616
    functionName: smp_fetch_hdrs_bin
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - encode_varint
    - get_trash_chunk
    - htx_get_blk_value
    - smp_prefetch_htx
    - htx_get_first
    - htx_get_blk_type
    - objt_check
    - htx_get_blk_name
    - htx_get_blk
    - htx_get_next
    - SMP_RES_CHN
    - SMP_REQ_CHN
    - memcpy
    linkageType: ''
    returnType: int
    signature: int smp_fetch_hdrs_bin(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:624,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:624,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:625,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:626,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:634,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:635,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:635,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:636,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:637,1
    - Dst: h1_format_htx_data
      Src: /src/haproxy/src/http_fetch.c:644,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:644,1
    - Dst: channel_full
      Src: /src/haproxy/src/http_fetch.c:653,1
    - Dst: chn_prod
      Src: /src/haproxy/src/http_fetch.c:654,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 20
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 621
    functionDepth: 3
    functionLinenumber: 621
    functionLinenumberEnd: 658
    functionName: smp_fetch_body
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - htx_get_blk_value
    - channel_full
    - smp_prefetch_htx
    - htx_get_first
    - htx_get_blk_type
    - objt_check
    - chn_prod
    - htx_get_blk
    - h1_format_htx_data
    - htx_get_next
    - SMP_RES_CHN
    - SMP_REQ_CHN
    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:667,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:667,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:668,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:669,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:676,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:676,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:677,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:678,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_fetch.c:683,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: 690
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 690
    functionName: smp_fetch_body_len
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_get_first
    - smp_prefetch_htx
    - htx_get_blk_type
    - objt_check
    - htx_get_blk
    - htx_get_next
    - SMP_RES_CHN
    - SMP_REQ_CHN
    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:700,1
    - Dst: SMP_RES_SC
      Src: /src/haproxy/src/http_fetch.c:700,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:701,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:702,1
    - Dst: sc_ic
      Src: /src/haproxy/src/http_fetch.c:702,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: 713
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 713
    functionName: smp_fetch_body_size
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - SMP_REQ_SC
    - SMP_RES_SC
    - smp_prefetch_htx
    - objt_check
    - sc_ic
    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:719,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:720,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:725,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:727,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:728,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: 731
      start: 717
    functionDepth: 3
    functionLinenumber: 717
    functionLinenumberEnd: 731
    functionName: smp_fetch_url
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - SMP_REQ_CHN
    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:735,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:736,1
    - Dst: memset
      Src: /src/haproxy/src/http_fetch.c:740,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:744,1
    - Dst: url2sa
      Src: /src/haproxy/src/http_fetch.c:745,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:745,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:745,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: 755
      start: 733
    functionDepth: 3
    functionLinenumber: 733
    functionLinenumberEnd: 755
    functionName: smp_fetch_url_ip
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - memset
    - smp_prefetch_htx
    - HTX_SL_REQ_ULEN
    - SMP_REQ_CHN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - url2sa
    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:759,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:760,1
    - Dst: memset
      Src: /src/haproxy/src/http_fetch.c:764,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:768,1
    - Dst: url2sa
      Src: /src/haproxy/src/http_fetch.c:769,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:769,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:769,1
    - Dst: get_host_port
      Src: /src/haproxy/src/http_fetch.c:776,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: 779
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 779
    functionName: smp_fetch_url_port
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - memset
    - smp_prefetch_htx
    - HTX_SL_REQ_ULEN
    - SMP_REQ_CHN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - url2sa
    - get_host_port
    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:791,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:791,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:792,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:793,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:807,1
    - Dst: http_get_htx_fhdr
      Src: /src/haproxy/src/http_fetch.c:829,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: 833
      start: 788
    functionDepth: 3
    functionLinenumber: 788
    functionLinenumberEnd: 833
    functionName: smp_fetch_fhdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_get_htx_fhdr
    - smp_prefetch_htx
    - objt_check
    - ist2
    - SMP_RES_CHN
    - SMP_REQ_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:842,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:842,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:843,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:844,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:853,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:860,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: 866
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 866
    functionName: smp_fetch_fhdr_cnt
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - smp_prefetch_htx
    - objt_check
    - ist2
    - SMP_RES_CHN
    - SMP_REQ_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_fhdr_cnt(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:871,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:871,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:872,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:873,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:885,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:886,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:886,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:887,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:888,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_fetch.c:895,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_fetch.c:899,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 868
    functionDepth: 3
    functionLinenumber: 868
    functionLinenumberEnd: 906
    functionName: smp_fetch_hdr_names
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - smp_prefetch_htx
    - htx_get_first
    - htx_get_blk_type
    - objt_check
    - htx_get_blk_name
    - htx_get_blk
    - chunk_istcat
    - htx_get_next
    - SMP_RES_CHN
    - SMP_REQ_CHN
    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:917,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:917,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:918,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:919,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:933,1
    - Dst: http_get_htx_hdr
      Src: /src/haproxy/src/http_fetch.c:955,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: 960
      start: 914
    functionDepth: 3
    functionLinenumber: 914
    functionLinenumberEnd: 960
    functionName: smp_fetch_hdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_get_htx_hdr
    - smp_prefetch_htx
    - objt_check
    - ist2
    - SMP_RES_CHN
    - SMP_REQ_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:969,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: 970
      start: 966
    functionDepth: 4
    functionLinenumber: 966
    functionLinenumberEnd: 970
    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:978,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:978,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:979,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:980,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:989,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:996,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: 1003
      start: 975
    functionDepth: 3
    functionLinenumber: 975
    functionLinenumberEnd: 1003
    functionName: smp_fetch_hdr_cnt
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - smp_prefetch_htx
    - objt_check
    - ist2
    - SMP_RES_CHN
    - SMP_REQ_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:1012,1
    - Dst: strl2ic
      Src: /src/haproxy/src/http_fetch.c:1016,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: 1021
      start: 1010
    functionDepth: 4
    functionLinenumber: 1010
    functionLinenumberEnd: 1021
    functionName: smp_fetch_hdr_val
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_fetch_hdr
    - strl2ic
    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:1031,1
    - Dst: smp_fetch_hdr
      Src: /src/haproxy/src/http_fetch.c:1035,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1037,1
    - Dst: url2ipv4
      Src: /src/haproxy/src/http_fetch.c:1040,1
    - Dst: strl2irc
      Src: /src/haproxy/src/http_fetch.c:1046,1
    - Dst: inet_pton
      Src: /src/haproxy/src/http_fetch.c:1054,1
    - Dst: inet_pton
      Src: /src/haproxy/src/http_fetch.c:1058,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 30
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1070
      start: 1029
    functionDepth: 4
    functionLinenumber: 1029
    functionLinenumberEnd: 1070
    functionName: smp_fetch_hdr_ip
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - strl2irc
    - inet_pton
    - url2ipv4
    - smp_fetch_hdr
    - memcpy
    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:1078,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1079,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:1087,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:1088,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_fetch.c:1088,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1091,1
    - Dst: iststop
      Src: /src/haproxy/src/http_fetch.c:1093,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1093,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:1095,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: 1104
      start: 1076
    functionDepth: 3
    functionLinenumber: 1076
    functionLinenumberEnd: 1104
    functionName: smp_fetch_path
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_parse_path
    - smp_prefetch_htx
    - http_uri_parser_init
    - http_get_stline
    - iststop
    - htx_sl_req_uri
    - isttest
    - SMP_REQ_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_path(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:1115,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1116,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1127,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1127,1
    - Dst: smp_fetch_path
      Src: /src/haproxy/src/http_fetch.c:1128,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1131,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_fetch.c:1132,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:1135,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:1136,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_fetch.c:1136,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1137,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:1138,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_fetch.c:1149,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: 1156
      start: 1113
    functionDepth: 4
    functionLinenumber: 1113
    functionLinenumberEnd: 1156
    functionName: smp_fetch_base
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - get_trash_chunk
    - http_parse_path
    - smp_prefetch_htx
    - http_uri_parser_init
    - http_get_stline
    - chunk_istcat
    - htx_sl_req_uri
    - smp_fetch_path
    - isttest
    - chunk_memcat
    - SMP_REQ_CHN
    - ist
    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:1168,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1169,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1180,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1180,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:1187,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:1188,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_fetch.c:1188,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1189,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:1190,1
    - Dst: full_hash
      Src: /src/haproxy/src/http_fetch.c:1202,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: 1208
      start: 1166
    functionDepth: 3
    functionLinenumber: 1166
    functionLinenumberEnd: 1208
    functionName: smp_fetch_base32
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - full_hash
    - http_parse_path
    - smp_prefetch_htx
    - http_uri_parser_init
    - http_get_stline
    - htx_sl_req_uri
    - isttest
    - SMP_REQ_CHN
    - ist
    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:1219,1
    - Dst: smp_fetch_base32
      Src: /src/haproxy/src/http_fetch.c:1225,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1228,1
    - Dst: htonl
      Src: /src/haproxy/src/http_fetch.c:1229,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1234,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1240,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: 1252
      start: 1217
    functionDepth: 4
    functionLinenumber: 1217
    functionLinenumberEnd: 1252
    functionName: smp_fetch_base32_src
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - sc_src
    - smp_fetch_base32
    - htonl
    - memcpy
    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:1260,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1261,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:1268,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:1269,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:1270,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:1270,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: 1286
      start: 1258
    functionDepth: 3
    functionLinenumber: 1258
    functionLinenumberEnd: 1286
    functionName: smp_fetch_query
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - SMP_REQ_CHN
    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:1290,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1291,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: 1298
      start: 1288
    functionDepth: 3
    functionLinenumber: 1288
    functionLinenumberEnd: 1298
    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: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1301
    functionDepth: 0
    functionLinenumber: 1301
    functionLinenumberEnd: 1309
    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:1316,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1317,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1324,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: 1348
      start: 1314
    functionDepth: 3
    functionLinenumber: 1314
    functionLinenumberEnd: 1348
    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:1355,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1356,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1363,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1368,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: 1371
      start: 1353
    functionDepth: 3
    functionLinenumber: 1353
    functionLinenumberEnd: 1371
    functionName: smp_fetch_http_auth_user
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - strlen
    - smp_prefetch_htx
    - SMP_REQ_CHN
    - get_http_auth
    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:1378,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1379,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1386,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1391,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: 1394
      start: 1376
    functionDepth: 3
    functionLinenumber: 1376
    functionLinenumberEnd: 1394
    functionName: smp_fetch_http_auth_pass
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - strlen
    - smp_prefetch_htx
    - SMP_REQ_CHN
    - get_http_auth
    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:1398,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1399,1
    - Dst: ist2
      Src: /src/haproxy/src/http_fetch.c:1408,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1411,1
    - Dst: istsplit
      Src: /src/haproxy/src/http_fetch.c:1412,1
    - Dst: istskip
      Src: /src/haproxy/src/http_fetch.c:1418,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_fetch.c:1420,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1420,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:1420,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_fetch.c:1421,1
    - Dst: istptr
      Src: /src/haproxy/src/http_fetch.c:1421,1
    - Dst: istlen
      Src: /src/haproxy/src/http_fetch.c:1421,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1426,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1396
    functionDepth: 3
    functionLinenumber: 1396
    functionLinenumberEnd: 1436
    functionName: smp_fetch_http_auth_bearer
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - istskip
    - http_find_header
    - istlen
    - smp_prefetch_htx
    - istptr
    - get_http_auth
    - istsplit
    - ist2
    - chunk_initlen
    - isteqi
    - SMP_REQ_CHN
    - ist
    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:1441,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1442,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1449,1
    - Dst: check_user
      Src: /src/haproxy/src/http_fetch.c:1453,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: 1456
      start: 1439
    functionDepth: 3
    functionLinenumber: 1439
    functionLinenumberEnd: 1456
    functionName: smp_fetch_http_auth
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - SMP_REQ_CHN
    - get_http_auth
    - check_user
    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:1461,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1462,1
    - Dst: get_http_auth
      Src: /src/haproxy/src/http_fetch.c:1469,1
    - Dst: check_user
      Src: /src/haproxy/src/http_fetch.c:1476,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1486,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: 1489
      start: 1459
    functionDepth: 3
    functionLinenumber: 1459
    functionLinenumberEnd: 1489
    functionName: smp_fetch_http_auth_grp
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_prefetch_htx
    - get_http_auth
    - strlen
    - check_user
    - SMP_REQ_CHN
    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:1505,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1514,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: 1517
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1517
    functionName: smp_fetch_capture_req_hdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - strm_fe
    - strlen
    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:1533,1
    - Dst: strlen
      Src: /src/haproxy/src/http_fetch.c:1542,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: 1545
      start: 1522
    functionDepth: 1
    functionLinenumber: 1522
    functionLinenumberEnd: 1545
    functionName: smp_fetch_capture_res_hdr
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - strm_fe
    - strlen
    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:1566,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: 1575
      start: 1548
    functionDepth: 1
    functionLinenumber: 1548
    functionLinenumberEnd: 1575
    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:1601,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:1606,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:1607,1
    - Dst: isttest
      Src: /src/haproxy/src/http_fetch.c:1608,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: 1617
      start: 1578
    functionDepth: 1
    functionLinenumber: 1578
    functionLinenumberEnd: 1617
    functionName: smp_fetch_capture_req_uri
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - ist2
    - http_parse_path
    - http_uri_parser_init
    - isttest
    linkageType: ''
    returnType: int
    signature: int smp_fetch_capture_req_uri(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    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: 1643
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1643
    functionName: smp_fetch_capture_req_ver
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int smp_fetch_capture_req_ver(const struct arg *args, struct sample
      *smp, const char *kw, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    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: 1669
      start: 1648
    functionDepth: 0
    functionLinenumber: 1648
    functionLinenumberEnd: 1669
    functionName: smp_fetch_capture_res_ver
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached: []
    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:1684,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:1684,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:1685,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1686,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1708,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1708,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1727,1
    - Dst: http_extract_cookie_value
      Src: /src/haproxy/src/http_fetch.c:1739,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: 1765
      start: 1681
    functionDepth: 3
    functionLinenumber: 1681
    functionLinenumberEnd: 1765
    functionName: smp_fetch_cookie
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - smp_prefetch_htx
    - objt_check
    - SMP_RES_CHN
    - SMP_REQ_CHN
    - http_extract_cookie_value
    - ist
    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:1774,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: 1775
      start: 1771
    functionDepth: 4
    functionLinenumber: 1771
    functionLinenumberEnd: 1775
    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:1785,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:1785,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:1786,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1787,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1803,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1803,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1811,1
    - Dst: http_extract_cookie_value
      Src: /src/haproxy/src/http_fetch.c:1823,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: 1836
      start: 1782
    functionDepth: 3
    functionLinenumber: 1782
    functionLinenumberEnd: 1836
    functionName: smp_fetch_cookie_cnt
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - smp_prefetch_htx
    - objt_check
    - SMP_RES_CHN
    - SMP_REQ_CHN
    - http_extract_cookie_value
    - ist
    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:1843,1
    - Dst: strl2ic
      Src: /src/haproxy/src/http_fetch.c:1847,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: 1852
      start: 1841
    functionDepth: 4
    functionLinenumber: 1841
    functionLinenumberEnd: 1852
    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:1864,1
    - Dst: SMP_RES_CHN
      Src: /src/haproxy/src/http_fetch.c:1864,1
    - Dst: objt_check
      Src: /src/haproxy/src/http_fetch.c:1865,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:1866,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1881,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:1881,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1882,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:1895,1
    - Dst: http_extract_next_cookie_name
      Src: /src/haproxy/src/http_fetch.c:1902,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_fetch.c:1911,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: 1918
      start: 1861
    functionDepth: 3
    functionLinenumber: 1861
    functionLinenumberEnd: 1918
    functionName: smp_fetch_cookie_names
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - chunk_memcat
    - http_find_header
    - get_trash_chunk
    - smp_prefetch_htx
    - objt_check
    - http_extract_next_cookie_name
    - SMP_RES_CHN
    - SMP_REQ_CHN
    - ist
    linkageType: ''
    returnType: int
    signature: int smp_fetch_cookie_names(const struct arg *args, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: http_find_next_url_param
      Src: /src/haproxy/src/http_fetch.c:1935,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:1947,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1948,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:1949,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    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: 1971
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1971
    functionName: smp_fetch_param
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_trash_chunk
    - http_find_next_url_param
    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:1982,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:2006,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:2012,1
    - Dst: http_find_param_list
      Src: /src/haproxy/src/http_fetch.c:2013,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:2013,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:2013,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_fetch.c:2017,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_fetch.c:2017,1
    - Dst: smp_fetch_param
      Src: /src/haproxy/src/http_fetch.c:2026,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: 2027
      start: 1980
    functionDepth: 3
    functionLinenumber: 1980
    functionLinenumberEnd: 2027
    functionName: smp_fetch_url_param
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_fetch_param
    - smp_prefetch_htx
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - http_find_param_list
    - SMP_REQ_CHN
    linkageType: ''
    returnType: int
    signature: int smp_fetch_url_param(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:2038,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:2058,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:2065,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_fetch.c:2066,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_fetch.c:2066,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_fetch.c:2067,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_fetch.c:2068,1
    - Dst: h1_format_htx_data
      Src: /src/haproxy/src/http_fetch.c:2073,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_fetch.c:2073,1
    - Dst: smp_fetch_param
      Src: /src/haproxy/src/http_fetch.c:2089,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2090
      start: 2036
    functionDepth: 3
    functionLinenumber: 2036
    functionLinenumberEnd: 2090
    functionName: smp_fetch_body_param
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - htx_get_blk_value
    - smp_fetch_param
    - htx_get_first
    - smp_prefetch_htx
    - htx_get_blk_type
    - h1_format_htx_data
    - htx_get_next
    - htx_get_blk
    - SMP_REQ_CHN
    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:2097,1
    - Dst: strl2ic
      Src: /src/haproxy/src/http_fetch.c:2101,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: 2106
      start: 2095
    functionDepth: 4
    functionLinenumber: 2095
    functionLinenumberEnd: 2106
    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:2120,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/src/http_fetch.c:2121,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_fetch.c:2132,1
    - Dst: ist
      Src: /src/haproxy/src/http_fetch.c:2132,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_fetch.c:2139,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_fetch.c:2140,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_fetch.c:2140,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_fetch.c:2141,1
    - Dst: full_hash
      Src: /src/haproxy/src/http_fetch.c:2147,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: 2153
      start: 2118
    functionDepth: 3
    functionLinenumber: 2118
    functionLinenumberEnd: 2153
    functionName: smp_fetch_url32
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - full_hash
    - http_parse_path
    - smp_prefetch_htx
    - http_uri_parser_init
    - http_get_stline
    - htx_sl_req_uri
    - SMP_REQ_CHN
    - ist
    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:2164,1
    - Dst: smp_fetch_url32
      Src: /src/haproxy/src/http_fetch.c:2170,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_fetch.c:2173,1
    - Dst: htonl
      Src: /src/haproxy/src/http_fetch.c:2174,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:2179,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_fetch.c:2185,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: 2197
      start: 2162
    functionDepth: 4
    functionLinenumber: 2162
    functionLinenumberEnd: 2197
    functionName: smp_fetch_url32_src
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - smp_fetch_url32
    - get_trash_chunk
    - sc_src
    - htonl
    - memcpy
    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:2215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2212
    functionDepth: 1
    functionLinenumber: 2212
    functionLinenumberEnd: 2219
    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:2229,1
    - Dst: chunk_strcmp
      Src: /src/haproxy/src/http_fetch.c:2234,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_fetch.c:2235,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_fetch.c:2241,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - args
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2221
    functionDepth: 1
    functionLinenumber: 2221
    functionLinenumberEnd: 2246
    functionName: val_query
    functionSourceFile: /src/haproxy/src/http_fetch.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - chunk_strcmp
    - memprintf
    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:
    - struct connection*::ctrl::connect
    - HA_ATOMIC_INC
    - sockaddr_alloc
    - conn_is_ssl
    - set_host_port
    - conn_sock_shutw
    - sample_fetch_as_type
    - conn_set_reverse
    - conn_install_mux_be
    - protocol_lookup
    - conn_xprt_start
    - conn_ctrl_close
    - conn_set_owner
    - alloc_bind_address
    - smp_make_safe
    - conn_xprt_close
    - xprt_add_hs
    - conn_new
    - conn_free
    - struct connection*::destroy_cb
    - conn_xprt_shutw
    - ssl_sock_set_servername
    - send_log
    - conn_stop_tracking
    - session_new
    - conn_prepare
    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:
    - MS_TO_TICKS
    - task_queue
    - BUG_ON
    - send_log
    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:
    - _HA_ATOMIC_LOAD
    - atleast2
    - 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_set_thread
    - task_wakeup
    - task_unlink_wq
    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: struct connection*::mux::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:
    - struct connection*::destroy_cb
    - task_migrate
    - listener_accept
    - select_thread
    - conn_xprt_close
    - conn_xprt_shutw
    - tick_is_expired
    - conn_sock_shutw
    - struct connection*::mux::destroy
    - BUG_ON
    - tick_isset
    - conn_stop_tracking
    - new_reverse_conn
    - conn_free
    - tick_add_ifset
    - MS_TO_TICKS
    - TICKS_TO_MS
    - conn_ctrl_close
    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:
    - strdup
    - srv_is_transparent
    - _HA_ATOMIC_LOAD
    - istlen
    - server_find
    - snprintf
    - task_new_on
    - ha_free
    - my_ffsl
    - istsplit
    - proxy_be_by_name
    - isteqi
    - listener_set_state
    - ist0
    - ist
    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: struct connection*::mux::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:
    - task_migrate
    - select_thread
    - struct connection*::mux::ctl
    - BUG_ON
    - new_reverse_conn
    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:35,1
    - Dst: ha_random64
      Src: /src/haproxy/src/quic_token.c:38,1
    - Dst: write_u64
      Src: /src/haproxy/src/quic_token.c:39,1
    - Dst: ha_random64
      Src: /src/haproxy/src/quic_token.c:40,1
    - Dst: write_u64
      Src: /src/haproxy/src/quic_token.c:41,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:44,1
    - Dst: ipaddrcpy
      Src: /src/haproxy/src/quic_token.c:49,1
    - Dst: quic_tls_derive_token_secret
      Src: /src/haproxy/src/quic_token.c:50,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_token.c:50,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:53,1
    - Dst: quic_tls_tx_ctx_init
      Src: /src/haproxy/src/quic_token.c:57,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:58,1
    - Dst: write_u32
      Src: /src/haproxy/src/quic_token.c:65,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_token.c:65,1
    - Dst: quic_tls_encrypt
      Src: /src/haproxy/src/quic_token.c:68,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:69,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_token.c:74,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_token.c:80,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_token.c:81,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_token.c:85,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 3
    argNames:
    - token
    - len
    - addr
    argTypes:
    - unsigned char*
    - size_t
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 87
    functionName: quic_generate_token
    functionSourceFile: /src/haproxy/src/quic_token.c
    functionUses: 0
    functionsReached:
    - ipaddrcpy
    - TRACE_DEVEL
    - write_u64
    - QUIC_AEAD_CTX_free
    - write_u32
    - ha_random64
    - EVP_aes_128_gcm
    - TRACE_ENTER
    - EVP_aead_aes_128_gcm
    - TRACE_ERROR
    - quic_tls_derive_token_secret
    - htonl
    - quic_tls_tx_ctx_init
    - EVP_sha256
    - quic_tls_encrypt
    - memcpy
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: "int quic_generate_token(unsigned char *token, size_t len,\n                        struct
      sockaddr_storage *addr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_aead_aes_128_gcm
      Src: /src/haproxy/src/quic_token.c:118,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/quic_token.c:120,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_token.c:123,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_token.c:125,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:128,1
    - Dst: ipaddrcpy
      Src: /src/haproxy/src/quic_token.c:133,1
    - Dst: quic_tls_derive_token_secret
      Src: /src/haproxy/src/quic_token.c:135,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_token.c:135,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:137,1
    - Dst: quic_tls_rx_ctx_init
      Src: /src/haproxy/src/quic_token.c:141,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:142,1
    - Dst: quic_tls_decrypt2
      Src: /src/haproxy/src/quic_token.c:147,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:149,1
    - Dst: ntohl
      Src: /src/haproxy/src/quic_token.c:153,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_token.c:153,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_token.c:155,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_token.c:162,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_token.c:163,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_token.c:167,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 3
    argNames:
    - pkt
    - dgram
    - qc
    argTypes:
    - struct quic_rx_packet*
    - struct quic_dgram*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 169
    functionName: quic_token_check
    functionSourceFile: /src/haproxy/src/quic_token.c
    functionUses: 0
    functionsReached:
    - ipaddrcpy
    - TRACE_DEVEL
    - ntohl
    - QUIC_AEAD_CTX_free
    - BUG_ON
    - EVP_aes_128_gcm
    - TRACE_ENTER
    - EVP_aead_aes_128_gcm
    - TRACE_ERROR
    - quic_tls_derive_token_secret
    - quic_tls_decrypt2
    - read_u32
    - EVP_sha256
    - quic_tls_rx_ctx_init
    - TRACE_LEAVE
    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:
    - tick_add
    - FLT_CONF
    - MIN
    - tick_is_expired
    - freq_ctr_overshoot_period
    - BUG_ON
    - tick_isset
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - freq_ctr_remain_period
    - stktable_data_cast
    - chn_prod
    - next_event_delay_period
    - tick_first
    - update_freq_ctr_period
    - div64_32
    - 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:
    - release_sample_expr
    - ha_free
    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:
    - in_proxies_list
    - stktable_find_by_name
    - ha_free
    - ha_alert
    - stktable_compatible_sample
    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:
    - pool_free
    - stktable_touch_local
    - FLT_CONF
    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:
    - register_data_filter
    - list_for_each_entry
    - FLT_CONF
    - stktable_fetch_key
    - stktable_get_entry
    - sample_fetch_as_type
    - FLT_ID
    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:
    - ha_warning
    - list_for_each_entry
    - strcmp
    - sample_src_names
    - memprintf
    - proxy_type_str
    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:
    - release_sample_expr
    - ha_free
    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:
    - strdup
    - strcmp
    - sample_parse_expr
    - parse_time_err
    - release_bwlim_action
    - memprintf
    - parse_size_err
    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:
    - strdup
    - list_for_each_entry
    - strcmp
    - sample_parse_expr
    - ha_free
    - parse_time_err
    - free
    - memprintf
    - release_sample_expr
    - calloc
    - parse_size_err
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_map.c:28,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_map.c:31,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_map.c:35,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_map.c:36,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_map.c:37,1
    - Dst: recalc_server_map
      Src: /src/haproxy/src/lb_map.c:38,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_map.c:39,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_map.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 42
    functionName: map_set_server_status_down
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - recount_servers
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - recalc_server_map
    - srv_lb_commit_status
    - update_backend_weight
    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:52,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_map.c:55,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_map.c:59,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_map.c:60,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_map.c:61,1
    - Dst: recalc_server_map
      Src: /src/haproxy/src/lb_map.c:62,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_map.c:63,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_map.c:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: map_set_server_status_up
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - recount_servers
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - recalc_server_map
    - srv_lb_commit_status
    - update_backend_weight
    linkageType: ''
    returnType: void
    signature: void map_set_server_status_up(struct server *srv)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_map.c:108,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/lb_map.c:121,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/lb_map.c:131,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 133
    functionName: recalc_server_map
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_ADD
    - srv_willbe_usable
    - _HA_ATOMIC_SUB
    linkageType: ''
    returnType: void
    signature: void recalc_server_map(struct proxy *px)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_map.c:189,1
    - Dst: calloc
      Src: /src/haproxy/src/lb_map.c:199,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_map.c:201,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_map.c:202,1
    - Dst: recalc_server_map
      Src: /src/haproxy/src/lb_map.c:203,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 204
    functionName: init_server_map
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - recount_servers
    - recalc_server_map
    - srv_lb_commit_status
    - update_backend_weight
    - calloc
    linkageType: ''
    returnType: void
    signature: void init_server_map(struct proxy *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_SKLOCK
      Src: /src/haproxy/src/lb_map.c:219,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_map.c:233,1
    - Dst: HA_RWLOCK_SKUNLOCK
      Src: /src/haproxy/src/lb_map.c:251,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 2
    argNames:
    - px
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 254
    functionName: map_get_server_rr
    functionSourceFile: /src/haproxy/src/lb_map.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_SKUNLOCK
    - HA_RWLOCK_SKLOCK
    - srv_dynamic_maxconn
    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:268,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_map.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - px
    - hash
    argTypes:
    - struct proxy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 273
    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:
    - isdigit
    - toupper
    - 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:
    - isdigit
    - ha_warning
    - ishex
    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:
    - pcre_exec
    - regexec
    - struct my_regex*::mfn
    - strlen
    - pcre2_get_ovector_pointer
    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:
    - pcre_exec
    - regexec
    - 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:
    - regcomp
    - calloc
    - pcre2_compile
    - pcre2_get_error_message
    - free
    - pcre2_jit_compile
    - memprintf
    - pcre2_code_free
    - pcre_compile
    - pcre_free
    - pcre_study
    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:
    - HAP_XSTRING
    - pcre_config
    - pcre_version
    - memprintf
    - USE_PCRE_JIT
    - hap_register_build_opts
    - USE_PCRE2_JIT
    - pcre2_config
    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:
    - chunk_printf
    - open
    - getpid
    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_next
    - container_of
    - close
    - free
    - ebpt_delete
    - ebpt_first
    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:
    - signal_register_fct
    - ha_alert
    - init_default_namespace
    - 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:
    - strdup
    - open_named_namespace
    - ebis_insert
    - ha_free
    - close
    - strlen
    - calloc
    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:
    - socket
    - close
    - setns
    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: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc
      Src: /src/haproxy/src/flt_http_comp.c:76,1
    - Dst: b_alloc
      Src: /src/haproxy/src/flt_http_comp.c:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: comp_flt_init_per_thread
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - b_alloc
    linkageType: ''
    returnType: int
    signature: int comp_flt_init_per_thread(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: b_free
      Src: /src/haproxy/src/flt_http_comp.c:87,1
    - Dst: b_free
      Src: /src/haproxy/src/flt_http_comp.c:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: comp_flt_deinit_per_thread
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - b_free
    linkageType: ''
    returnType: void
    signature: void comp_flt_deinit_per_thread(struct proxy *px, struct flt_conf *fconf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/flt_http_comp.c:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 114
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/haproxy/src/flt_http_comp.c:126,1
    - Dst: end
      Src: /src/haproxy/src/flt_http_comp.c:128,1
    - Dst: pool_free
      Src: /src/haproxy/src/flt_http_comp.c:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: comp_strm_deinit
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - pool_free
    - end
    linkageType: ''
    returnType: void
    signature: void comp_strm_deinit(struct stream *s, struct filter *filter)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_http_comp.c:136,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:144,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:144,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:154,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:154,1
    - Dst: chn_prod
      Src: /src/haproxy/src/flt_http_comp.c:156,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:165,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:165,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:167,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:167,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/flt_http_comp.c:170,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:181,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:181,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/flt_http_comp.c:187,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:198,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:198,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:199,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/flt_http_comp.c:206,1
    - Dst: init
      Src: /src/haproxy/src/flt_http_comp.c:214,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 57
    argCount: 3
    argNames:
    - st
    - s
    - msg
    argTypes:
    - struct comp_state*
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 220
    functionName: comp_prepare_compress_request
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_find_header
    - read_freq_ctr
    - strm_fe
    - strncasecmp
    - chn_prod
    - init
    - ist
    linkageType: ''
    returnType: void
    signature: void comp_prepare_compress_request(struct comp_state *st, struct stream
      *s, struct http_msg *msg)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:228,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:230,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:231,1
    - Dst: comp_prepare_compress_request
      Src: /src/haproxy/src/flt_http_comp.c:237,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
    - Dst: select_compression_request_header
      Src: /src/haproxy/src/flt_http_comp.c:246,1
    - Dst: set_compression_header
      Src: /src/haproxy/src/flt_http_comp.c:251,1
    - Dst: register_data_filter
      Src: /src/haproxy/src/flt_http_comp.c:253,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - s
    - filter
    - msg
    argTypes:
    - struct stream*
    - struct filter*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 222
    functionDepth: 4
    functionLinenumber: 222
    functionLinenumberEnd: 260
    functionName: comp_http_headers
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - register_data_filter
    - comp_prepare_compress_request
    - strm_fe
    - set_compression_header
    - select_compression_request_header
    linkageType: ''
    returnType: int
    signature: int comp_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:273,1
    - Dst: select_compression_response_header
      Src: /src/haproxy/src/flt_http_comp.c:276,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: 280
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 280
    functionName: comp_http_post_analyze
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - strm_fe
    - select_compression_response_header
    linkageType: ''
    returnType: int
    signature: "int comp_http_post_analyze(struct stream *s, struct filter *filter,\n\t\t
      \      struct channel *chn, unsigned an_bit)"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_http_comp.c:287,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/flt_http_comp.c:288,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_http_comp.c:301,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/flt_http_comp.c:302,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:305,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_http_comp.c:306,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:307,1
    - Dst: htx_compression_buffer_init
      Src: /src/haproxy/src/flt_http_comp.c:312,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_http_comp.c:320,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/flt_http_comp.c:321,1
    - Dst: istadv
      Src: /src/haproxy/src/flt_http_comp.c:322,1
    - Dst: htx_compression_buffer_add_data
      Src: /src/haproxy/src/flt_http_comp.c:328,1
    - Dst: htx_compression_buffer_end
      Src: /src/haproxy/src/flt_http_comp.c:329,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/flt_http_comp.c:331,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:333,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/flt_http_comp.c:334,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/flt_http_comp.c:336,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_http_comp.c:336,1
    - Dst: b_head
      Src: /src/haproxy/src/flt_http_comp.c:336,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:336,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:337,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:342,1
    - Dst: htx_compression_buffer_end
      Src: /src/haproxy/src/flt_http_comp.c:349,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:351,1
    - Dst: htx_add_last_data
      Src: /src/haproxy/src/flt_http_comp.c:352,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_http_comp.c:352,1
    - Dst: b_head
      Src: /src/haproxy/src/flt_http_comp.c:352,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:352,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:355,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_http_comp.c:358,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_http_comp.c:359,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/flt_http_comp.c:380,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/flt_http_comp.c:383,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:385,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:386,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:389,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:390,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/flt_http_comp.c:392,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:395,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/flt_http_comp.c:397,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 99
    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: 403
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 403
    functionName: comp_http_payload
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - htx_get_blk_value
    - istadv
    - b_head
    - update_freq_ctr
    - b_data
    - htx_get_blk_type
    - ist2
    - htxbuf
    - htx_compression_buffer_end
    - htx_compression_buffer_add_data
    - BUG_ON
    - htx_compression_buffer_init
    - _HA_ATOMIC_ADD
    - htx_remove_blk
    - htx_get_next_blk
    - htx_find_offset
    - htx_get_blksz
    - htx_replace_blk_value
    - flt_update_offsets
    - htx_add_last_data
    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)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:415,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/flt_http_comp.c:416,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/flt_http_comp.c:419,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: 422
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 422
    functionName: comp_http_end
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - strm_fe
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: int
    signature: "int comp_http_end(struct stream *s, struct filter *filter,\n\t      struct
      http_msg *msg)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_http_comp.c:428,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/flt_http_comp.c:439,1
    - Dst: http_add_header
      Src: /src/haproxy/src/flt_http_comp.c:447,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:447,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:447,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:456,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:456,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/flt_http_comp.c:457,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:464,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:464,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_http_comp.c:467,1
    - Dst: istcat
      Src: /src/haproxy/src/flt_http_comp.c:468,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:468,1
    - Dst: istcat
      Src: /src/haproxy/src/flt_http_comp.c:468,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/flt_http_comp.c:471,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:479,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:479,1
    - Dst: isteqi
      Src: /src/haproxy/src/flt_http_comp.c:480,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:480,1
    - Dst: http_add_header
      Src: /src/haproxy/src/flt_http_comp.c:488,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:488,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:488,1
    - Dst: http_append_header_value
      Src: /src/haproxy/src/flt_http_comp.c:495,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:495,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:506,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_http_comp.c:507,1
    - Dst: http_add_header
      Src: /src/haproxy/src/flt_http_comp.c:509,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:509,1
    - Dst: chn_prod
      Src: /src/haproxy/src/flt_http_comp.c:513,1
    - Dst: end
      Src: /src/haproxy/src/flt_http_comp.c:517,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 64
    argCount: 3
    argNames:
    - st
    - s
    - msg
    argTypes:
    - struct comp_state*
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 520
    functionName: set_compression_header
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - htxbuf
    - http_add_header
    - http_find_header
    - http_replace_header_value
    - memcmp
    - end
    - http_append_header_value
    - istcat
    - ist2
    - chn_prod
    - http_get_stline
    - http_remove_header
    - isteqi
    - ist
    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:528,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:538,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:538,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:540,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:542,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:545,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:552,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:552,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:556,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:556,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/flt_http_comp.c:563,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:568,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/flt_http_comp.c:568,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:571,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:577,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/flt_http_comp.c:577,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:580,1
    - Dst: strncmp
      Src: /src/haproxy/src/flt_http_comp.c:584,1
    - Dst: MIN
      Src: /src/haproxy/src/flt_http_comp.c:584,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:584,1
    - Dst: istend
      Src: /src/haproxy/src/flt_http_comp.c:587,1
    - Dst: http_parse_qvalue
      Src: /src/haproxy/src/flt_http_comp.c:592,1
    - Dst: word_match
      Src: /src/haproxy/src/flt_http_comp.c:599,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:611,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:611,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/flt_http_comp.c:612,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:614,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:614,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/flt_http_comp.c:615,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:622,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:622,1
    - Dst: memcmp
      Src: /src/haproxy/src/flt_http_comp.c:624,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: 633
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 633
    functionName: select_compression_request_header
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - htxbuf
    - word_match
    - http_find_header
    - MIN
    - strm_fe
    - memcmp
    - strncmp
    - http_parse_qvalue
    - http_remove_header
    - HTTP_IS_TOKEN
    - istend
    - HTTP_IS_LWS
    - ist
    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:641,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:675,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:675,1
    - Dst: chn_prod
      Src: /src/haproxy/src/flt_http_comp.c:677,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:683,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:683,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:688,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:688,1
    - Dst: word_match
      Src: /src/haproxy/src/flt_http_comp.c:689,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:695,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:695,1
    - Dst: http_get_etag_type
      Src: /src/haproxy/src/flt_http_comp.c:696,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:702,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:702,1
    - Dst: http_find_header
      Src: /src/haproxy/src/flt_http_comp.c:713,1
    - Dst: ist
      Src: /src/haproxy/src/flt_http_comp.c:713,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/flt_http_comp.c:714,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:718,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:718,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/flt_http_comp.c:721,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:732,1
    - Dst: strm_fe
      Src: /src/haproxy/src/flt_http_comp.c:732,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/flt_http_comp.c:738,1
    - Dst: init
      Src: /src/haproxy/src/flt_http_comp.c:746,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: 754
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 754
    functionName: select_compression_response_header
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - htxbuf
    - word_match
    - http_find_header
    - read_freq_ctr
    - strm_fe
    - strncasecmp
    - chn_prod
    - init
    - http_get_etag_type
    - ist
    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:764,1
    - Dst: b_reset
      Src: /src/haproxy/src/flt_http_comp.c:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - htx
    - out
    argTypes:
    - struct htx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 768
    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: add_data
      Src: /src/haproxy/src/flt_http_comp.c:775,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: 776
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 776
    functionName: htx_compression_buffer_add_data
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - 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: finish
      Src: /src/haproxy/src/flt_http_comp.c:783,1
    - Dst: flush
      Src: /src/haproxy/src/flt_http_comp.c:785,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: 786
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 786
    functionName: htx_compression_buffer_end
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 1
    functionsReached:
    - flush
    - finish
    linkageType: ''
    returnType: int
    signature: int htx_compression_buffer_end(struct comp_state *st, struct buffer
      *out, int end, int dir)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/flt_http_comp.c:815,1
    - Dst: unlikely
      Src: /src/haproxy/src/flt_http_comp.c:816,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:817,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:828,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:828,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:833,1
    - Dst: comp_append_algo
      Src: /src/haproxy/src/flt_http_comp.c:839,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:842,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:845,1
    - Dst: struct proxy*::comp::algos_res::init
      Src: /src/haproxy/src/flt_http_comp.c:851,1
    - Dst: struct proxy*::comp::algos_res::end
      Src: /src/haproxy/src/flt_http_comp.c:852,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:854,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:863,1
    - Dst: comp_append_algo
      Src: /src/haproxy/src/flt_http_comp.c:865,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:869,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:872,1
    - Dst: struct proxy*::comp::algo_req::init
      Src: /src/haproxy/src/flt_http_comp.c:878,1
    - Dst: struct proxy*::comp::algo_req::end
      Src: /src/haproxy/src/flt_http_comp.c:879,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:881,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:887,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:889,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:895,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:895,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:899,1
    - Dst: comp_append_type
      Src: /src/haproxy/src/flt_http_comp.c:904,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:905,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:913,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:917,1
    - Dst: comp_append_type
      Src: /src/haproxy/src/flt_http_comp.c:922,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:923,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:931,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:933,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/flt_http_comp.c:937,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:939,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:944,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:946,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/flt_http_comp.c:950,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:952,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:957,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:959,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:963,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:966,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_http_comp.c:969,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:972,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:978,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 161
    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: 986
      start: 805
    functionDepth: 3
    functionLinenumber: 805
    functionLinenumberEnd: 986
    functionName: parse_compression_options
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - comp_append_algo
    - unlikely
    - strcmp
    - struct proxy*::comp::algos_res::end
    - struct proxy*::comp::algo_req::end
    - comp_append_type
    - struct proxy*::comp::algo_req::init
    - struct proxy*::comp::algos_res::init
    - memprintf
    - calloc
    - parse_size_err
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_http_comp.c:994,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_http_comp.c:996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    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: 1007
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1007
    functionName: parse_http_comp_flt
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - 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: 10
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_http_comp.c:1020,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_http_comp.c:1021,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_http_comp.c:1026,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_http_comp.c:1028,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_http_comp.c:1042,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_http_comp.c:1043,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_http_comp.c:1050,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_http_comp.c:1052,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/flt_http_comp.c:1053,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_http_comp.c:1060,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1010
    functionDepth: 1
    functionLinenumber: 1010
    functionLinenumberEnd: 1063
    functionName: check_implicit_http_comp_flt
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - LIST_APPEND
    - ha_alert
    - proxy_type_str
    - LIST_ISEMPTY
    - calloc
    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: 1078
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1078
    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:1094,1
    - Dst: strm_flt
      Src: /src/haproxy/src/flt_http_comp.c:1094,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/flt_http_comp.c:1095,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: 1108
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1108
    functionName: smp_fetch_res_comp_algo
    functionSourceFile: /src/haproxy/src/flt_http_comp.c
    functionUses: 0
    functionsReached:
    - FLT_ID
    - list_for_each_entry
    - strm_flt
    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
    - LIST_INLIST
    - ceb64_item_delete
    - 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:110,1
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:118,1
    - Dst: conn_install_mux_chk
      Src: /src/haproxy/src/connection.c:119,1
    - Dst: conn_install_mux_be
      Src: /src/haproxy/src/connection.c:122,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:124,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/connection.c:133,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/connection.c:134,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/connection.c:138,1
    - Dst: struct stconn*::app_ops::wake
      Src: /src/haproxy/src/connection.c:144,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/connection.c:146,1
    - Dst: conn_active_reverse_listener
      Src: /src/haproxy/src/connection.c:147,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:157,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/connection.c:159,1
    - Dst: conn_complete_session
      Src: /src/haproxy/src/connection.c:164,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 40
    argCount: 2
    argNames:
    - conn
    - closed_connection
    argTypes:
    - struct connection*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 170
    functionName: conn_create_mux
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - obj_type
    - struct connection*::mux::avail_streams
    - srv_add_to_avail_list
    - conn_reverse_in_preconnect
    - task_wakeup
    - objt_server
    - struct stconn*::app_ops::wake
    - BUG_ON
    - conn_install_mux_be
    - session_add_conn
    - conn_is_back
    - conn_active_reverse_listener
    - conn_complete_session
    - conn_install_mux_chk
    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:185,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/connection.c:186,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:221,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/connection.c:224,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/connection.c:226,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/connection.c:230,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/connection.c:232,1
    - Dst: struct connection*::mux::wake
      Src: /src/haproxy/src/connection.c:235,1
    - Dst: struct connection*::mux::destroy
      Src: /src/haproxy/src/connection.c:242,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/connection.c:248,1
    - Dst: struct connection*::mux::destroy
      Src: /src/haproxy/src/connection.c:250,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/connection.c:255,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/connection.c:256,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/connection.c:257,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/connection.c:258,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 45
    argCount: 3
    argNames:
    - conn
    - old_flags
    - forced_wake
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 264
    functionName: conn_notify_mux
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - unlikely
    - conn_delete_from_tree
    - struct connection*::mux::destroy
    - objt_server
    - conn_create_mux
    - struct connection*::mux::wake
    - _srv_add_idle
    - ASSUME_NONNULL
    - session_detach_idle_conn
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - 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:272,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:279,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:280,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/connection.c:282,1
    - Dst: init
      Src: /src/haproxy/src/connection.c:296,1
    - Dst: struct mux_ops*::destroy
      Src: /src/haproxy/src/connection.c:305,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: 307
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 307
    functionName: conn_upgrade_mux_fe
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - __objt_listener
    - ist2
    - struct mux_ops*::destroy
    - conn_get_best_mux
    - init
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: __objt_listener
      Src: /src/haproxy/src/connection.c:315,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/connection.c:324,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:326,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:327,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/connection.c:328,1
    - Dst: conn_install_mux
      Src: /src/haproxy/src/connection.c:341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 342
    functionName: conn_install_mux_fe
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_pr_mode_to_proto_mode
    - conn_install_mux
    - __objt_listener
    - ist2
    - conn_get_best_mux
    - conn_get_alpn
    linkageType: ''
    returnType: int
    signature: int conn_install_mux_fe(struct connection *conn, void *ctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:354,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/connection.c:355,1
    - Dst: likely
      Src: /src/haproxy/src/connection.c:364,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:367,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/connection.c:374,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:376,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:379,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:382,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/connection.c:384,1
    - Dst: conn_install_mux
      Src: /src/haproxy/src/connection.c:388,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 4
    argNames:
    - conn
    - ctx
    - sess
    - force_mux_ops
    argTypes:
    - struct connection*
    - void*
    - struct session*
    - struct mux_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 389
    functionName: conn_install_mux_be
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 2
    functionsReached:
    - conn_pr_mode_to_proto_mode
    - conn_install_mux
    - unlikely
    - objt_server
    - ist2
    - strlen
    - conn_get_best_mux
    - objt_proxy
    - likely
    - conn_get_alpn
    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:397,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:398,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/connection.c:399,1
    - Dst: tcpchk_rules_type_to_proto_mode
      Src: /src/haproxy/src/connection.c:417,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:419,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:420,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/connection.c:422,1
    - Dst: conn_install_mux
      Src: /src/haproxy/src/connection.c:426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - conn
    - ctx
    - sess
    argTypes:
    - struct connection*
    - void*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 427
    functionName: conn_install_mux_chk
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 1
    functionsReached:
    - conn_install_mux
    - tcpchk_rules_type_to_proto_mode
    - objt_server
    - objt_check
    - ist2
    - conn_get_best_mux
    - objt_proxy
    - conn_get_alpn
    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:438,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:447,1
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:448,1
    - Dst: __objt_server
      Src: /src/haproxy/src/connection.c:449,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:474,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:474,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:483,1
    - Dst: ssl_sock_set_alpn
      Src: /src/haproxy/src/connection.c:489,1
    - Dst: istptr
      Src: /src/haproxy/src/connection.c:489,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:489,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 3
    argNames:
    - conn
    - alpn
    - force
    argTypes:
    - struct connection*
    - struct ist
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 495
    functionName: conn_update_alpn
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - obj_type
    - istlen
    - __objt_server
    - BUG_ON
    - istptr
    - ist2
    - conn_is_back
    - isteqi
    - ssl_sock_set_alpn
    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:516,1
    - Dst: ceb_init_node
      Src: /src/haproxy/src/connection.c:521,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - conn
    - target
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 502
    functionDepth: 1
    functionLinenumber: 502
    functionLinenumberEnd: 525
    functionName: conn_init
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - ceb_init_node
    - LIST_INIT
    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:533,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/connection.c:534,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/connection.c:535,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 541
    functionName: conn_backend_init
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - sockaddr_alloc
    - 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:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 547
    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:558,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/connection.c:559,1
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:561,1
    - Dst: __objt_server
      Src: /src/haproxy/src/connection.c:562,1
    - Dst: srv_release_conn
      Src: /src/haproxy/src/connection.c:565,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/connection.c:568,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:572,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/connection.c:572,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/connection.c:577,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 578
    functionName: conn_backend_deinit
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - obj_type
    - _HA_ATOMIC_DEC
    - ceb_intree
    - __objt_server
    - BUG_ON
    - session_unown_conn
    - LIST_INLIST
    - srv_release_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:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 586
    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:596,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:597,1
    - Dst: conn_init
      Src: /src/haproxy/src/connection.c:600,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:602,1
    - Dst: obj_type
      Src: /src/haproxy/src/connection.c:603,1
    - Dst: srv_use_conn
      Src: /src/haproxy/src/connection.c:604,1
    - Dst: __objt_server
      Src: /src/haproxy/src/connection.c:604,1
    - Dst: conn_backend_init
      Src: /src/haproxy/src/connection.c:606,1
    - Dst: conn_free
      Src: /src/haproxy/src/connection.c:607,1
    - Dst: conn_frontend_init
      Src: /src/haproxy/src/connection.c:612,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 592
    functionDepth: 2
    functionLinenumber: 592
    functionLinenumberEnd: 616
    functionName: conn_new
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 1
    functionsReached:
    - obj_type
    - unlikely
    - __objt_server
    - conn_backend_init
    - conn_init
    - pool_alloc
    - conn_is_back
    - conn_free
    - 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:623,1
    - Dst: conn_backend_deinit
      Src: /src/haproxy/src/connection.c:624,1
    - Dst: conn_frontend_deinit
      Src: /src/haproxy/src/connection.c:626,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/connection.c:628,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/connection.c:629,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/connection.c:632,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/connection.c:633,1
    - Dst: free
      Src: /src/haproxy/src/connection.c:635,1
    - Dst: pool_free
      Src: /src/haproxy/src/connection.c:637,1
    - Dst: pool_free
      Src: /src/haproxy/src/connection.c:639,1
    - Dst: ha_free
      Src: /src/haproxy/src/connection.c:642,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/connection.c:644,1
    - Dst: conn_active_reverse_listener
      Src: /src/haproxy/src/connection.c:645,1
    - Dst: rhttp_notify_preconn_err
      Src: /src/haproxy/src/connection.c:646,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/connection.c:647,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/connection.c:650,1
    - Dst: conn_force_unsubscribe
      Src: /src/haproxy/src/connection.c:654,1
    - Dst: pool_free
      Src: /src/haproxy/src/connection.c:655,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 619
    functionDepth: 2
    functionLinenumber: 619
    functionLinenumberEnd: 656
    functionName: conn_free
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_DEC
    - conn_force_unsubscribe
    - LIST_DELETE
    - sockaddr_free
    - pool_free
    - conn_backend_deinit
    - list_for_each_entry_safe
    - ha_free
    - conn_reverse_in_preconnect
    - rhttp_notify_preconn_err
    - free
    - conn_is_back
    - conn_active_reverse_listener
    - conn_frontend_deinit
    linkageType: ''
    returnType: void
    signature: void conn_free(struct connection *conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: struct connection*::mux::destroy
      Src: /src/haproxy/src/connection.c:662,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/connection.c:665,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/connection.c:666,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/connection.c:668,1
    - Dst: conn_free
      Src: /src/haproxy/src/connection.c:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 659
    functionDepth: 3
    functionLinenumber: 659
    functionLinenumberEnd: 671
    functionName: conn_release
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - struct connection*::destroy_cb
    - conn_full_close
    - struct connection*::mux::destroy
    - conn_stop_tracking
    - conn_free
    linkageType: ''
    returnType: void
    signature: void conn_release(struct connection *conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/connection.c:687,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:689,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: 693
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 693
    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:703,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sap
    argTypes:
    - struct sockaddr_storage**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 705
    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:715,1
    - Dst: struct xprt_ops*::init
      Src: /src/haproxy/src/connection.c:721,1
    - Dst: xprt_get
      Src: /src/haproxy/src/connection.c:723,1
    - Dst: struct connection*::xprt::add_xprt
      Src: /src/haproxy/src/connection.c:729,1
    - Dst: struct xprt_ops*::close
      Src: /src/haproxy/src/connection.c:731,1
    - Dst: struct xprt_ops*::add_xprt
      Src: /src/haproxy/src/connection.c:735,1
    - Dst: struct xprt_ops*::close
      Src: /src/haproxy/src/connection.c:736,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 740
    functionName: xprt_add_hs
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 1
    functionsReached:
    - struct connection*::xprt::add_xprt
    - struct xprt_ops*::close
    - xprt_get
    - struct xprt_ops*::init
    - struct xprt_ops*::add_xprt
    linkageType: ''
    returnType: int
    signature: int xprt_add_hs(struct connection *conn)
  - BBCount: 58
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 118
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 808
    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: 58
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 118
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 883
    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: 914
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 914
    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:930,1
    - Dst: xprt_get
      Src: /src/haproxy/src/connection.c:931,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:940,1
    - Dst: struct xprt_ops*::snd_buf
      Src: /src/haproxy/src/connection.c:950,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: 957
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 957
    functionName: conn_ctrl_send
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - struct xprt_ops*::snd_buf
    - conn_ctrl_ready
    - xprt_get
    - b_make
    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:966,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:967,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:973,1
    - Dst: struct connection*::ctrl::ignore_events
      Src: /src/haproxy/src/connection.c:974,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: 977
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 977
    functionName: conn_unsubscribe
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_ctrl_ready
    - BUG_ON
    - struct connection*::ctrl::ignore_events
    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:989,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:990,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/connection.c:995,1
    - Dst: struct connection*::ctrl::check_events
      Src: /src/haproxy/src/connection.c:996,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/connection.c:998,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: 1004
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1004
    functionName: conn_subscribe
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - conn_ctrl_ready
    - struct connection*::ctrl::check_events
    - BUG_ON
    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:1016,1
    - Dst: struct connection*::ctrl::drain
      Src: /src/haproxy/src/connection.c:1019,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1024
    functionName: conn_ctrl_drain
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_ctrl_ready
    - struct connection*::ctrl::drain
    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: 1032
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1032
    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:1067,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1070,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/connection.c:1072,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1076,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/connection.c:1081,1
    - Dst: strncmp
      Src: /src/haproxy/src/connection.c:1105,1
    - Dst: memcmp
      Src: /src/haproxy/src/connection.c:1112,1
    - Dst: inetaddr_host_lim_ret
      Src: /src/haproxy/src/connection.c:1117,1
    - Dst: inetaddr_host_lim_ret
      Src: /src/haproxy/src/connection.c:1123,1
    - Dst: read_uint
      Src: /src/haproxy/src/connection.c:1129,1
    - Dst: read_uint
      Src: /src/haproxy/src/connection.c:1135,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1143,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1143,1
    - Dst: htonl
      Src: /src/haproxy/src/connection.c:1148,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:1149,1
    - Dst: htonl
      Src: /src/haproxy/src/connection.c:1152,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:1153,1
    - Dst: memcmp
      Src: /src/haproxy/src/connection.c:1155,1
    - Dst: read_uint
      Src: /src/haproxy/src/connection.c:1192,1
    - Dst: read_uint
      Src: /src/haproxy/src/connection.c:1196,1
    - Dst: inet_pton
      Src: /src/haproxy/src/connection.c:1200,1
    - Dst: inet_pton
      Src: /src/haproxy/src/connection.c:1203,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1206,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1206,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1211,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:1212,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1215,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:1216,1
    - Dst: memcmp
      Src: /src/haproxy/src/connection.c:1218,1
    - Dst: memcmp
      Src: /src/haproxy/src/connection.c:1238,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:1244,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:1252,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1255,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1255,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:1267,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1270,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1270,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1274,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1277,1
    - Dst: ist2
      Src: /src/haproxy/src/connection.c:1306,1
    - Dst: get_tlv_length
      Src: /src/haproxy/src/connection.c:1306,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1307,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1319,1
    - Dst: read_n32
      Src: /src/haproxy/src/connection.c:1322,1
    - Dst: istptr
      Src: /src/haproxy/src/connection.c:1322,1
    - Dst: write_n32
      Src: /src/haproxy/src/connection.c:1323,1
    - Dst: istptr
      Src: /src/haproxy/src/connection.c:1323,1
    - Dst: hash_crc32c
      Src: /src/haproxy/src/connection.c:1325,1
    - Dst: netns_store_lookup
      Src: /src/haproxy/src/connection.c:1333,1
    - Dst: istptr
      Src: /src/haproxy/src/connection.c:1333,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1333,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1341,1
    - Dst: istlen
      Src: /src/haproxy/src/connection.c:1347,1
    - Dst: get_tlv_length
      Src: /src/haproxy/src/connection.c:1356,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:1359,1
    - Dst: malloc
      Src: /src/haproxy/src/connection.c:1364,1
    - Dst: get_tlv_length
      Src: /src/haproxy/src/connection.c:1364,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/connection.c:1366,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/connection.c:1368,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:1370,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1376,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/connection.c:1379,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1387,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1398,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1428,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1435,1
    CyclomaticComplexity: 139
    EdgeCount: 139
    ICount: 310
    argCount: 2
    argNames:
    - conn
    - flag
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1438
    functionName: conn_recv_proxy
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - inetaddr_host_lim_ret
    - sockaddr_alloc
    - unlikely
    - read_n32
    - pool_alloc
    - malloc
    - fd_cant_recv
    - istlen
    - ntohs
    - hash_crc32c
    - ist2
    - fd_recv_ready
    - conn_report_term_evt
    - strncmp
    - BUG_ON
    - read_uint
    - get_tlv_length
    - LIST_APPEND
    - inet_pton
    - htonl
    - netns_store_lookup
    - write_n32
    - recv
    - htons
    - memcmp
    - istptr
    - conn_ctrl_ready
    - memcpy
    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:1451,1
    - Dst: conn_get_first_sc
      Src: /src/haproxy/src/connection.c:1465,1
    - Dst: sc_strm
      Src: /src/haproxy/src/connection.c:1477,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/connection.c:1478,1
    - Dst: make_proxy_line
      Src: /src/haproxy/src/connection.c:1479,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:1480,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:1481,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/connection.c:1481,1
    - Dst: strm_sess
      Src: /src/haproxy/src/connection.c:1482,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/connection.c:1488,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/connection.c:1488,1
    - Dst: make_proxy_line
      Src: /src/haproxy/src/connection.c:1491,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:1492,1
    - Dst: conn_ctrl_send
      Src: /src/haproxy/src/connection.c:1505,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1529,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - conn
    - flag
    argTypes:
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1535
    functionName: conn_send_proxy
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - conn_get_first_sc
    - conn_ctrl_send
    - __sc_strm
    - make_proxy_line
    - sc_opposite
    - objt_server
    - conn_get_dst
    - conn_get_src
    - conn_ctrl_ready
    - sc_strm
    - strm_sess
    - conn_report_term_evt
    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:1561,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1564,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/connection.c:1566,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1570,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/connection.c:1575,1
    - Dst: ntohl
      Src: /src/haproxy/src/connection.c:1602,1
    - Dst: read_u32
      Src: /src/haproxy/src/connection.c:1602,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/connection.c:1602,1
    - Dst: ntohl
      Src: /src/haproxy/src/connection.c:1607,1
    - Dst: read_u32
      Src: /src/haproxy/src/connection.c:1607,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:1612,1
    - Dst: read_u32
      Src: /src/haproxy/src/connection.c:1612,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1648,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1648,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1679,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/connection.c:1679,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1705,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1732,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1739,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 139
    argCount: 2
    argNames:
    - conn
    - flag
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1553
    functionDepth: 2
    functionLinenumber: 1553
    functionLinenumberEnd: 1742
    functionName: conn_recv_netscaler_cip
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - recv
    - fd_cant_recv
    - ntohl
    - sockaddr_alloc
    - __objt_listener
    - ntohs
    - BUG_ON
    - conn_ctrl_ready
    - read_u32
    - fd_recv_ready
    - conn_report_term_evt
    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:1749,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/connection.c:1752,1
    - Dst: get_net_port
      Src: /src/haproxy/src/connection.c:1757,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/connection.c:1758,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:1759,1
    - Dst: conn_ctrl_send
      Src: /src/haproxy/src/connection.c:1774,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:1780,1
    - Dst: conn_fd
      Src: /src/haproxy/src/connection.c:1781,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1813,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1745
    functionDepth: 2
    functionLinenumber: 1745
    functionLinenumberEnd: 1822
    functionName: conn_send_socks4_proxy_request
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_ctrl_send
    - get_net_port
    - is_inet_addr
    - DPRINTF
    - conn_get_dst
    - conn_ctrl_ready
    - conn_report_term_evt
    - conn_fd
    - memcpy
    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:1829,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:1832,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/connection.c:1834,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1841,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:1845,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:1855,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:1858,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:1861,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/connection.c:1869,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/connection.c:1904,1
    - Dst: recv
      Src: /src/haproxy/src/connection.c:1914,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1934,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/connection.c:1943,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 89
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1946
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1946
    functionName: conn_recv_socks4_proxy_response
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - recv
    - fd_cant_recv
    - DPRINTF
    - BUG_ON
    - conn_ctrl_ready
    - fd_recv_ready
    - conn_report_term_evt
    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:1951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct mux_proto_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1952
    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:1965,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/connection.c:1967,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:1990,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:1999,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2002,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2005,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2008,1
    - Dst: fprintf
      Src: /src/haproxy/src/connection.c:2010,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1958
    functionDepth: 0
    functionLinenumber: 1958
    functionLinenumberEnd: 2012
    functionName: list_mux_proto
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - fprintf
    linkageType: ''
    returnType: void
    signature: void list_mux_proto(FILE *out)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/connection.c:2025,1
    - Dst: MAX
      Src: /src/haproxy/src/connection.c:2026,1
    - Dst: snprintf
      Src: /src/haproxy/src/connection.c:2035,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/connection.c:2045,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/connection.c:2048,1
    - Dst: v4tov6
      Src: /src/haproxy/src/connection.c:2060,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/connection.c:2068,1
    - Dst: v4tov6
      Src: /src/haproxy/src/connection.c:2073,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/connection.c:2081,1
    - Dst: snprintf
      Src: /src/haproxy/src/connection.c:2085,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:2085,1
    - Dst: ntohs
      Src: /src/haproxy/src/connection.c:2085,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: 2090
      start: 2021
    functionDepth: 1
    functionLinenumber: 2021
    functionLinenumberEnd: 2090
    functionName: make_proxy_line_v1
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - v4tov6
    - snprintf
    - inet_ntop
    - ntohs
    - MAX
    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:2104,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: 2106
      start: 2092
    functionDepth: 0
    functionLinenumber: 2092
    functionLinenumberEnd: 2106
    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:2124,1
    - Dst: sc_src
      Src: /src/haproxy/src/connection.c:2127,1
    - Dst: sc_dst
      Src: /src/haproxy/src/connection.c:2128,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/connection.c:2130,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/connection.c:2130,1
    - Dst: conn_src
      Src: /src/haproxy/src/connection.c:2131,1
    - Dst: conn_dst
      Src: /src/haproxy/src/connection.c:2132,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:2138,1
    - Dst: v4tov6
      Src: /src/haproxy/src/connection.c:2168,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2169,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2173,1
    - Dst: v4tov6
      Src: /src/haproxy/src/connection.c:2177,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2178,1
    - Dst: memcpy
      Src: /src/haproxy/src/connection.c:2182,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/connection.c:2193,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/connection.c:2199,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/connection.c:2200,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:2201,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/connection.c:2204,1
    - Dst: unlikely
      Src: /src/haproxy/src/connection.c:2206,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/connection.c:2207,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2210,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/connection.c:2211,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2215,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2227,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/connection.c:2230,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2233,1
    - Dst: conn_get_tlv
      Src: /src/haproxy/src/connection.c:2237,1
    - Dst: if
      Src: /src/haproxy/src/connection.c:2246,1
    - Dst: ssl_sock_get_sni
      Src: /src/haproxy/src/connection.c:2246,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2247,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2253,1
    - Dst: strm_sess
      Src: /src/haproxy/src/connection.c:2258,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/connection.c:2259,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2267,1
    - Dst: memset
      Src: /src/haproxy/src/connection.c:2279,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/connection.c:2282,1
    - Dst: ssl_sock_get_proto_version
      Src: /src/haproxy/src/connection.c:2284,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2286,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2286,1
    - Dst: ssl_sock_get_cert_used_sess
      Src: /src/haproxy/src/connection.c:2288,1
    - Dst: htonl
      Src: /src/haproxy/src/connection.c:2290,1
    - Dst: ssl_sock_get_verify_result
      Src: /src/haproxy/src/connection.c:2290,1
    - Dst: ssl_sock_get_cert_used_conn
      Src: /src/haproxy/src/connection.c:2291,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/connection.c:2295,1
    - Dst: ssl_sock_get_remote_common_name
      Src: /src/haproxy/src/connection.c:2296,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2297,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/connection.c:2303,1
    - Dst: ssl_sock_get_pkey_algo
      Src: /src/haproxy/src/connection.c:2304,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2305,1
    - Dst: ssl_sock_get_cert_sig
      Src: /src/haproxy/src/connection.c:2311,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2313,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2313,1
    - Dst: ssl_sock_get_cipher_name
      Src: /src/haproxy/src/connection.c:2317,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2319,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2319,1
    - Dst: make_tlv
      Src: /src/haproxy/src/connection.c:2333,1
    - Dst: htons
      Src: /src/haproxy/src/connection.c:2337,1
    - Dst: write_u32
      Src: /src/haproxy/src/connection.c:2340,1
    - Dst: htonl
      Src: /src/haproxy/src/connection.c:2340,1
    - Dst: hash_crc32c
      Src: /src/haproxy/src/connection.c:2340,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: 2344
      start: 2109
    functionDepth: 1
    functionLinenumber: 2109
    functionLinenumberEnd: 2344
    functionName: make_proxy_line_v2
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_is_ssl
    - conn_src
    - unlikely
    - free_trash_chunk
    - get_trash_chunk
    - ssl_sock_get_verify_result
    - sc_src
    - conn_get_src
    - make_tlv
    - stream_generate_unique_id
    - alloc_trash_chunk
    - conn_get_alpn
    - if
    - ssl_sock_get_pkey_algo
    - write_u32
    - hash_crc32c
    - ssl_sock_get_sni
    - conn_get_dst
    - strlen
    - strm_sess
    - memset
    - ssl_sock_get_proto_version
    - ssl_sock_get_cert_used_conn
    - lf_expr_isempty
    - sc_dst
    - sess_build_logline
    - htonl
    - conn_dst
    - htons
    - list_for_each_entry
    - v4tov6
    - ssl_sock_get_cert_used_sess
    - ssl_sock_get_cert_sig
    - ssl_sock_get_cipher_name
    - conn_get_tlv
    - conn_is_back
    - ssl_sock_get_remote_common_name
    - memcpy
    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:2352,1
    - Dst: sc_src
      Src: /src/haproxy/src/connection.c:2359,1
    - Dst: sc_dst
      Src: /src/haproxy/src/connection.c:2360,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/connection.c:2362,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/connection.c:2362,1
    - Dst: conn_src
      Src: /src/haproxy/src/connection.c:2363,1
    - Dst: conn_dst
      Src: /src/haproxy/src/connection.c:2364,1
    - Dst: make_proxy_line_v1
      Src: /src/haproxy/src/connection.c:2368,1
    - Dst: make_proxy_line_v1
      Src: /src/haproxy/src/connection.c:2370,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: 2374
      start: 2347
    functionDepth: 2
    functionLinenumber: 2347
    functionLinenumberEnd: 2374
    functionName: make_proxy_line
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 1
    functionsReached:
    - make_proxy_line_v2
    - conn_src
    - sc_dst
    - sc_src
    - conn_get_dst
    - conn_get_src
    - make_proxy_line_v1
    - conn_dst
    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:2381,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: 2385
      start: 2377
    functionDepth: 1
    functionLinenumber: 2377
    functionLinenumberEnd: 2385
    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:2406,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/connection.c:2406,1
    - Dst: objt_listener
      Src: /src/haproxy/src/connection.c:2408,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2409,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:2410,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2411,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/connection.c:2412,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2413,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2415,1
    - Dst: conn_get_xprt_name
      Src: /src/haproxy/src/connection.c:2415,1
    - Dst: conn_get_ctrl_name
      Src: /src/haproxy/src/connection.c:2415,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/connection.c:2417,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2418,1
    - Dst: get_host_port
      Src: /src/haproxy/src/connection.c:2418,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/connection.c:2420,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/connection.c:2421,1
    - Dst: get_host_port
      Src: /src/haproxy/src/connection.c:2421,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - buf
    - conn
    - pfx
    argTypes:
    - struct buffer*
    - struct connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2424
      start: 2395
    functionDepth: 1
    functionLinenumber: 2395
    functionLinenumberEnd: 2424
    functionName: conn_append_debug_info
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - addr_to_str
    - conn_get_xprt_name
    - chunk_appendf
    - objt_server
    - conn_get_ctrl_name
    - objt_listener
    - conn_is_back
    - objt_proxy
    - get_host_port
    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:2433,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2434,1
    - Dst: __objt_check
      Src: /src/haproxy/src/connection.c:2434,1
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2436,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2437,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/connection.c:2449,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: 2458
      start: 2427
    functionDepth: 1
    functionLinenumber: 2427
    functionLinenumberEnd: 2458
    functionName: smp_fetch_fc_glitches
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - struct connection*::mux::ctl
    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:2471,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2472,1
    - Dst: __objt_check
      Src: /src/haproxy/src/connection.c:2472,1
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2474,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2475,1
    - Dst: conn_get_mux_name
      Src: /src/haproxy/src/connection.c:2487,1
    - Dst: strcmp
      Src: /src/haproxy/src/connection.c:2490,1
    - Dst: strcmp
      Src: /src/haproxy/src/connection.c:2492,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: 2498
      start: 2465
    functionDepth: 1
    functionLinenumber: 2465
    functionLinenumberEnd: 2498
    functionName: smp_fetch_fc_http_major
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - strcmp
    - conn_get_mux_name
    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:2505,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: 2519
      start: 2501
    functionDepth: 1
    functionLinenumber: 2501
    functionLinenumberEnd: 2519
    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:2531,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2533,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2533,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2535,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2535,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2537,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2537,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2539,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2539,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2541,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2541,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2543,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2543,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2545,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2545,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2547,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2547,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2549,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2549,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2551,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2551,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2553,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2553,1
    - Dst: isteqi
      Src: /src/haproxy/src/connection.c:2555,1
    - Dst: ist
      Src: /src/haproxy/src/connection.c:2555,1
    - Dst: strtoul
      Src: /src/haproxy/src/connection.c:2558,1
    - Dst: memprintf
      Src: /src/haproxy/src/connection.c:2560,1
    - Dst: memprintf
      Src: /src/haproxy/src/connection.c:2566,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/connection.c:2570,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2527
    functionDepth: 1
    functionLinenumber: 2527
    functionLinenumberEnd: 2575
    functionName: smp_check_tlv_type
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - ist2
    - chunk_destroy
    - isteqi
    - memprintf
    - strtoul
    - ist
    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:2584,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/connection.c:2597,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/connection.c:2598,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: 2613
      start: 2578
    functionDepth: 1
    functionLinenumber: 2578
    functionLinenumberEnd: 2613
    functionName: smp_fetch_fc_pp_tlv
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - LIST_ELEM
    - objt_conn
    - list_for_each_entry_from
    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:2621,1
    - Dst: smp_fetch_fc_pp_tlv
      Src: /src/haproxy/src/connection.c:2622,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: 2625
      start: 2616
    functionDepth: 2
    functionLinenumber: 2616
    functionLinenumberEnd: 2625
    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:2633,1
    - Dst: smp_fetch_fc_pp_tlv
      Src: /src/haproxy/src/connection.c:2634,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: 2637
      start: 2628
    functionDepth: 2
    functionLinenumber: 2628
    functionLinenumberEnd: 2637
    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:2644,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2645,1
    - Dst: __objt_check
      Src: /src/haproxy/src/connection.c:2645,1
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2647,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2648,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: 2663
      start: 2640
    functionDepth: 1
    functionLinenumber: 2640
    functionLinenumberEnd: 2663
    functionName: smp_fetch_fc_err
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    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:2671,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2672,1
    - Dst: __objt_check
      Src: /src/haproxy/src/connection.c:2672,1
    - Dst: objt_conn
      Src: /src/haproxy/src/connection.c:2674,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2675,1
    - Dst: conn_err_code_str
      Src: /src/haproxy/src/connection.c:2686,1
    - Dst: conn_err_code_name
      Src: /src/haproxy/src/connection.c:2686,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2694,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: 2697
      start: 2666
    functionDepth: 1
    functionLinenumber: 2666
    functionLinenumberEnd: 2697
    functionName: smp_fetch_fc_err_str
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - strlen
    - conn_err_code_name
    - conn_err_code_str
    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:2706,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2706,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/connection.c:2717,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: 2724
      start: 2701
    functionDepth: 1
    functionLinenumber: 2701
    functionLinenumberEnd: 2724
    functionName: smp_fetch_fc_nb_streams
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - struct connection*::mux::ctl
    - objt_conn
    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:2732,1
    - Dst: sc_conn
      Src: /src/haproxy/src/connection.c:2732,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/connection.c:2743,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: 2750
      start: 2727
    functionDepth: 1
    functionLinenumber: 2727
    functionLinenumberEnd: 2750
    functionName: smp_fetch_fc_streams_limit
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - struct connection*::mux::ctl
    - objt_conn
    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:2793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2794
      start: 2791
    functionDepth: 0
    functionLinenumber: 2791
    functionLinenumberEnd: 2794
    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:2804,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: 2806
      start: 2799
    functionDepth: 0
    functionLinenumber: 2799
    functionLinenumberEnd: 2806
    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:2812,1
    - Dst: CONN_HASH_GET_PAYLOAD
      Src: /src/haproxy/src/connection.c:2814,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: 2815
      start: 2808
    functionDepth: 1
    functionLinenumber: 2808
    functionLinenumberEnd: 2815
    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:2831,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2836,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2846,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2851,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2859,1
    - Dst: strlen
      Src: /src/haproxy/src/connection.c:2861,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2866,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2875,1
    - Dst: strnlen2
      Src: /src/haproxy/src/connection.c:2877,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2884,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2899,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: 2902
      start: 2818
    functionDepth: 1
    functionLinenumber: 2818
    functionLinenumberEnd: 2902
    functionName: conn_calculate_hash_sockaddr
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - strlen
    - strnlen2
    - conn_hash_update
    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:2909,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2911,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2914,1
    - Dst: conn_calculate_hash_sockaddr
      Src: /src/haproxy/src/connection.c:2920,1
    - Dst: conn_calculate_hash_sockaddr
      Src: /src/haproxy/src/connection.c:2927,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2934,1
    - Dst: conn_hash_update
      Src: /src/haproxy/src/connection.c:2940,1
    - Dst: conn_hash_digest
      Src: /src/haproxy/src/connection.c:2945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - params
    argTypes:
    - struct conn_hash_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2946
      start: 2904
    functionDepth: 2
    functionLinenumber: 2904
    functionLinenumberEnd: 2946
    functionName: conn_calculate_hash
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - conn_hash_digest
    - conn_calculate_hash_sockaddr
    - conn_hash_update
    - XXH64_reset
    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:2968,1
    - Dst: objt_server
      Src: /src/haproxy/src/connection.c:2970,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:2971,1
    - Dst: conn_frontend_deinit
      Src: /src/haproxy/src/connection.c:2973,1
    - Dst: conn_backend_init
      Src: /src/haproxy/src/connection.c:2975,1
    - Dst: memset
      Src: /src/haproxy/src/connection.c:2979,1
    - Dst: b_data
      Src: /src/haproxy/src/connection.c:2982,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/connection.c:2984,1
    - Dst: b_data
      Src: /src/haproxy/src/connection.c:2984,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/connection.c:2984,1
    - Dst: conn_hash_prehash
      Src: /src/haproxy/src/connection.c:2987,1
    - Dst: b_head
      Src: /src/haproxy/src/connection.c:2987,1
    - Dst: b_data
      Src: /src/haproxy/src/connection.c:2988,1
    - Dst: conn_calculate_hash
      Src: /src/haproxy/src/connection.c:2991,1
    - Dst: srv_use_conn
      Src: /src/haproxy/src/connection.c:2995,1
    - Dst: session_free
      Src: /src/haproxy/src/connection.c:2999,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/connection.c:3000,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/connection.c:3006,1
    - Dst: conn_backend_deinit
      Src: /src/haproxy/src/connection.c:3008,1
    - Dst: conn_frontend_init
      Src: /src/haproxy/src/connection.c:3010,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/connection.c:3013,1
    - Dst: SWAP
      Src: /src/haproxy/src/connection.c:3020,1
    - Dst: ha_free
      Src: /src/haproxy/src/connection.c:3023,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 2962
    functionDepth: 3
    functionLinenumber: 2962
    functionLinenumberEnd: 3027
    functionName: conn_reverse
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - __objt_listener
    - conn_backend_deinit
    - task_wakeup
    - conn_hash_prehash
    - conn_frontend_deinit
    - b_head
    - srv_use_conn
    - conn_frontend_init
    - conn_set_owner
    - SWAP
    - b_data
    - ha_free
    - memset
    - b_contig_data
    - BUG_ON
    - conn_calculate_hash
    - session_free
    - conn_backend_init
    - objt_server
    - conn_is_back
    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:3036,1
    - Dst: struct connection*::mux::wake
      Src: /src/haproxy/src/connection.c:3038,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3042
      start: 3032
    functionDepth: 0
    functionLinenumber: 3032
    functionLinenumberEnd: 3042
    functionName: mux_stopping_process
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - struct connection*::mux::wake
    - list_for_each_entry_safe
    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:3047,1
    - Dst: ha_alert
      Src: /src/haproxy/src/connection.c:3049,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/connection.c:3054,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3057
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3057
    functionName: allocate_mux_cleanup
    functionSourceFile: /src/haproxy/src/connection.c
    functionUses: 0
    functionsReached:
    - task_new_here
    - LIST_INIT
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int allocate_mux_cleanup(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_destroy
      Src: /src/haproxy/src/connection.c:3062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3064
      start: 3060
    functionDepth: 1
    functionLinenumber: 3060
    functionLinenumberEnd: 3064
    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:3072,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3074
      start: 3067
    functionDepth: 1
    functionLinenumber: 3067
    functionLinenumberEnd: 3074
    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: 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
    - istpad
    - fprintf
    - qpack_idx_to_name
    - qpack_idx_to_value
    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:
    - abort
    - qpack_dht_get_tail
    - fprintf
    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:
    - dht::dht
    - qpack_dht_free
    - qpack_dht_get_tail
    - qpack_dht_alloc
    - memcpy
    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: 12
    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:412,1
    - Dst: memcpy
      Src: /src/haproxy/src/qpack-tbl.c:413,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 70
    argCount: 3
    argNames:
    - dht
    - name
    - value
    argTypes:
    - struct qpack_dht*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 287
    functionDepth: 2
    functionLinenumber: 287
    functionLinenumberEnd: 415
    functionName: qpack_dht_insert
    functionSourceFile: /src/haproxy/src/qpack-tbl.c
    functionUses: 0
    functionsReached:
    - memcpy
    - qpack_dht_make_room
    - qpack_dht_defrag
    - qpack_dht_get_tail
    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
    - fd_send_ready
    - struct dgram_conn*::data::send
    - struct dgram_conn*::data::recv
    - fd_recv_ready
    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:
    - field_str
    - F2H
    - U2H
    - field_format
    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:
    - total_allocated_tasks
    - total_niced_running_tasks
    - read_freq_ctr
    - chunk_appendf
    - BUG_ON
    - HA_ATOMIC_LOAD
    - ns_to_sec
    - stats_scope_ptr
    - __sc_appctx
    - strlcpy2
    - strlen
    - ultoa
    - clock_report_idle
    - total_run_queues
    - memcpy
    linkageType: ''
    returnType: void
    signature: void stats_dump_html_info(struct stconn *sc)
  - BBCount: 64
    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: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1136,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1139,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1141,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1148,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1148,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1152,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1153,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1157,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/stats-html.c:1158,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1158,1
    - Dst: chunk_htmlencode
      Src: /src/haproxy/src/stats-html.c:1159,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1160,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1162,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1165,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1173,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1173,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1174,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1174,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1176,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1182,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1182,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1182,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1183,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1184,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1187,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1187,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1188,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1204,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1205,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1208,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1209,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1210,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1211,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1214,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1215,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1216,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1217,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1218,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1219,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1222,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1223,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1225,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1225,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1226,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1230,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1231,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1236,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1237,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1238,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1238,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1239,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1240,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1240,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1241,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1241,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1242,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1243,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1243,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1244,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1245,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1245,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1247,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1254,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:1255,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1256,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1258,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1268,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1269,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1270,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1271,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1273,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1274,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1278,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1294,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1294,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1295,1
    - Dst: U2H
      Src: /src/haproxy/src/stats-html.c:1296,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:1300,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1301,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1301,1
    - Dst: field_str
      Src: /src/haproxy/src/stats-html.c:1301,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1305,1
    - Dst: human_time
      Src: /src/haproxy/src/stats-html.c:1311,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-html.c:1314,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1315,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-html.c:1317,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1318,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1322,1
    - Dst: field_to_html_str
      Src: /src/haproxy/src/stats-html.c:1324,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1327,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1332,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1336,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 275
    argCount: 3
    argNames:
    - out
    - stats
    - ctx
    argTypes:
    - struct buffer*
    - struct field*
    - struct show_stat_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 1340
    functionName: stats_dump_fields_html
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - field_to_html_str
    - list_for_each_entry
    - strcmp
    - field_str
    - chunk_appendf
    - strncmp
    - chunk_initstr
    - stats_px_get_cap
    - human_time
    - isdigit
    - LIM2A
    - strlen
    - chunk_htmlencode
    - chunk_strcat
    - U2H
    - field_format
    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:1348,1
    - Dst: stats_scope_ptr
      Src: /src/haproxy/src/stats-html.c:1361,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/stats-html.c:1363,1
    - Dst: memcpy
      Src: /src/haproxy/src/stats-html.c:1364,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:1364,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:1365,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1368,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1373,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1378,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1387,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/stats-html.c:1388,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-html.c:1388,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1390,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1393,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1406,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1413,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1416,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-html.c:1426,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1429,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:1446,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1447,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1451,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - sc
    - px
    argTypes:
    - struct stconn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1452
    functionName: stats_dump_html_px_hdr
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - chunk_appendf
    - stats_scope_ptr
    - strlcpy2
    - __sc_appctx
    - strlen
    - proxy_cap_str
    - proxy_mode_str
    - memcpy
    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:1460,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
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-html.c:1492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - sc
    - px
    argTypes:
    - struct stconn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1493
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1493
    functionName: stats_dump_html_px_end
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - __sc_appctx
    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:1500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1501
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1501
    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:1507,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-html.c:1512,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/stats-html.c:1516,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1516,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1516,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1516,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1521,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1521,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1521,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1524,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1524,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1524,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1528,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1528,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1528,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1532,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1532,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1532,1
    - Dst: U2A
      Src: /src/haproxy/src/stats-html.c:1537,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:1543,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1543,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1543,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/stats-html.c:1547,1
    - Dst: htx_reset
      Src: /src/haproxy/src/stats-html.c:1552,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/stats-html.c:1553,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/stats-html.c:1554,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 46
    argCount: 2
    argNames:
    - sc
    - htx
    argTypes:
    - struct stconn*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1556
    functionName: stats_send_http_headers
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - applet_set_eos
    - htx_add_header
    - htx_add_stline
    - BUG_ON
    - U2A
    - applet_set_error
    - __sc_appctx
    - htx_reset
    - htx_add_endof
    - ist
    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:1562,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-html.c:1567,1
    - Dst: stats_scope_ptr
      Src: /src/haproxy/src/stats-html.c:1573,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/stats-html.c:1575,1
    - Dst: memcpy
      Src: /src/haproxy/src/stats-html.c:1576,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:1576,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-html.c:1577,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stats-html.c:1584,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/stats-html.c:1596,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1596,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1596,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1596,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1601,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1601,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1601,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1602,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1602,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1602,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1603,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1603,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1603,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/stats-html.c:1604,1
    - Dst: ist
      Src: /src/haproxy/src/stats-html.c:1604,1
    - Dst: ist2
      Src: /src/haproxy/src/stats-html.c:1604,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/stats-html.c:1607,1
    - Dst: htx_reset
      Src: /src/haproxy/src/stats-html.c:1613,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/stats-html.c:1614,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/stats-html.c:1615,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - sc
    - htx
    argTypes:
    - struct stconn*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1558
    functionDepth: 1
    functionLinenumber: 1558
    functionLinenumberEnd: 1617
    functionName: stats_send_http_redirect
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - applet_set_eos
    - htx_add_header
    - chunk_printf
    - htx_add_stline
    - BUG_ON
    - applet_set_error
    - ist2
    - stats_scope_ptr
    - strlcpy2
    - __sc_appctx
    - strlen
    - htx_reset
    - htx_add_endof
    - memcpy
    - ist
    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:1626,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stats-html.c:1643,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stats-html.c:1645,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:1651,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/stats-html.c:1659,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/stats-html.c:1661,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/stats-html.c:1666,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/stats-html.c:1668,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/stats-html.c:1673,1
    - Dst: strncpy
      Src: /src/haproxy/src/stats-html.c:1699,1
    - Dst: url_decode
      Src: /src/haproxy/src/stats-html.c:1715,1
    - Dst: url_decode
      Src: /src/haproxy/src/stats-html.c:1715,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1719,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/stats-html.c:1720,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1726,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1727,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1730,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1733,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1736,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1739,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1742,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1745,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1748,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1751,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1754,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1757,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1760,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1763,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1767,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1770,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1773,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1776,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-html.c:1784,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/stats-html.c:1796,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/stats-html.c:1797,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/stats-html.c:1803,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/src/stats-html.c:1810,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/stats-html.c:1815,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/src/stats-html.c:1822,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/stats-html.c:1844,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/stats-html.c:1852,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/stats-html.c:1860,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/stats-html.c:1882,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/stats-html.c:1890,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/stats-html.c:1896,1
    - Dst: srv_adm_set_drain
      Src: /src/haproxy/src/stats-html.c:1901,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/stats-html.c:1906,1
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/stats-html.c:1912,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/stats-html.c:1918,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 279
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1956
      start: 1624
    functionDepth: 1
    functionLinenumber: 1624
    functionLinenumberEnd: 1956
    functionName: stats_process_http_post
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - url_decode
    - srv_set_admin_flag
    - get_trash_chunk
    - htx_get_blk_value
    - srv_set_stopping
    - srv_set_running
    - __sc_appctx
    - HA_SPIN_LOCK
    - srv_shutdown_streams
    - strcmp
    - htx_get_head_blk
    - htx_get_blk_type
    - server_find_by_name
    - proxy_be_by_name
    - srv_adm_set_ready
    - HA_SPIN_UNLOCK
    - htxbuf
    - htx_get_next_blk
    - chunk_memcat
    - applet_fl_test
    - srv_clr_admin_flag
    - srv_adm_set_maint
    - srv_set_stopped
    - srv_adm_set_drain
    - strncpy
    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:1966,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:1972,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:1975,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stats-html.c:1975,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/stats-html.c:1979,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/stats-html.c:1979,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stats-html.c:1979,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/stats-html.c:1983,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/stats-html.c:1987,1
    - Dst: unlikely
      Src: /src/haproxy/src/stats-html.c:1989,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:1989,1
    - Dst: stats_send_http_headers
      Src: /src/haproxy/src/stats-html.c:1996,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/stats-html.c:1997,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/stats-html.c:1997,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stats-html.c:1997,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/stats-html.c:1999,1
    - Dst: istptr
      Src: /src/haproxy/src/stats-html.c:1999,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-html.c:1999,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stats-html.c:2003,1
    - Dst: b_make
      Src: /src/haproxy/src/stats-html.c:2010,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/stats-html.c:2014,1
    - Dst: stats_dump_stat_to_buffer
      Src: /src/haproxy/src/stats-html.c:2015,1
    - Dst: stats_process_http_post
      Src: /src/haproxy/src/stats-html.c:2020,1
    - Dst: stats_send_http_redirect
      Src: /src/haproxy/src/stats-html.c:2025,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/stats-html.c:2035,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/stats-html.c:2036,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats-html.c:2037,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/stats-html.c:2042,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/stats-html.c:2043,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/stats-html.c:2044,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/stats-html.c:2049,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/stats-html.c:2050,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/stats-html.c:2062,1
    - Dst: b_reset
      Src: /src/haproxy/src/stats-html.c:2066,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/stats-html.c:2067,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stats-html.c:2070,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/stats-html.c:2071,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/stats-html.c:2076,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 81
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2079
      start: 1963
    functionDepth: 2
    functionLinenumber: 1963
    functionLinenumberEnd: 2079
    functionName: http_stats_io_handler
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - applet_will_consume
    - unlikely
    - applet_set_eoi
    - applet_wont_consume
    - http_get_stline
    - htx_from_buf
    - htx_add_endof
    - se_fl_clr
    - istlen
    - appctx_get_buf
    - stats_send_http_headers
    - find_http_meth
    - appctx_sc
    - b_make
    - htxbuf
    - applet_fl_clr
    - applet_need_more_data
    - se_fl_set
    - se_fl_test
    - htx_sl_req_meth
    - applet_fl_set
    - stats_send_http_redirect
    - applet_set_eos
    - stats_process_http_post
    - applet_fl_test
    - htx_is_empty
    - stats_dump_stat_to_buffer
    - b_reset
    - buf_room_for_htx_data
    - istptr
    - htx_to_buf
    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:2084,1
    - Dst: b_make
      Src: /src/haproxy/src/stats-html.c:2088,1
    - Dst: b_tail
      Src: /src/haproxy/src/stats-html.c:2088,1
    - Dst: MIN
      Src: /src/haproxy/src/stats-html.c:2088,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/stats-html.c:2088,1
    - Dst: stats_dump_stat_to_buffer
      Src: /src/haproxy/src/stats-html.c:2089,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/stats-html.c:2090,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/stats-html.c:2091,1
    - Dst: b_data
      Src: /src/haproxy/src/stats-html.c:2094,1
    - Dst: b_add
      Src: /src/haproxy/src/stats-html.c:2095,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: 2097
      start: 2081
    functionDepth: 1
    functionLinenumber: 2081
    functionLinenumberEnd: 2097
    functionName: http_stats_fastfwd
    functionSourceFile: /src/haproxy/src/stats-html.c
    functionUses: 0
    functionsReached:
    - applet_fl_clr
    - stats_dump_stat_to_buffer
    - MIN
    - b_data
    - b_tail
    - b_make
    - appctx_sc
    - b_add
    - b_contig_space
    - se_fl_clr
    linkageType: ''
    returnType: size_t
    signature: "size_t http_stats_fastfwd(struct appctx *appctx, struct buffer *buf,\n
      \                                size_t count, unsigned int flags)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats-html.c:2103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2099
    functionDepth: 1
    functionLinenumber: 2099
    functionLinenumberEnd: 2104
    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:
    - _HA_ATOMIC_LOAD
    - is_sched_alive
    - now_cpu_time_thread
    - ha_panic
    - _HA_ATOMIC_AND
    - wdt_ping
    - now_cpu_time
    - _HA_ATOMIC_STORE
    - ha_tkill
    - _HA_ATOMIC_OR
    - 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:
    - parse_time_err
    - memprintf
    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: 262
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: init_wdt_per_thread
    functionSourceFile: /src/haproxy/src/wdt.c
    functionUses: 0
    functionsReached:
    - clock_setup_signal_timer
    - ha_warning
    - wdt_ping
    - timer_delete
    linkageType: ''
    returnType: int
    signature: int init_wdt_per_thread()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: timer_delete
      Src: /src/haproxy/src/wdt.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    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:279,1
    - Dst: sigaddset
      Src: /src/haproxy/src/wdt.c:280,1
    - Dst: sigaddset
      Src: /src/haproxy/src/wdt.c:282,1
    - Dst: sigaddset
      Src: /src/haproxy/src/wdt.c:285,1
    - Dst: sigaction
      Src: /src/haproxy/src/wdt.c:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: init_wdt
    functionSourceFile: /src/haproxy/src/wdt.c
    functionUses: 0
    functionsReached:
    - sigaddset
    - sigemptyset
    - sigaction
    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:210,1
    - Dst: strlen
      Src: /src/haproxy/src/stats.c:211,1
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:212,1
    - Dst: memcpy
      Src: /src/haproxy/src/stats.c:217,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/stats.c:220,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: 228
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 228
    functionName: generate_stat_tree
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - ebst_insert
    - stcol_is_generic
    - strlen
    - malloc
    - memcpy
    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:237,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/stats.c:237,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:238,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/stats.c:238,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats.c:239,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/stats.c:242,1
    - Dst: ist2
      Src: /src/haproxy/src/stats.c:242,1
    - Dst: b_orig
      Src: /src/haproxy/src/stats.c:242,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:242,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats.c:243,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:246,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:249,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:249,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:249,1
    - Dst: b_room
      Src: /src/haproxy/src/stats.c:249,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stats.c:250,1
    - Dst: b_putblk
      Src: /src/haproxy/src/stats.c:253,1
    - Dst: b_head
      Src: /src/haproxy/src/stats.c:253,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:253,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:254,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:257,1
    - Dst: applet_putchk_stress
      Src: /src/haproxy/src/stats.c:257,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stats.c:258,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: 263
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 263
    functionName: stats_putchk
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - b_orig
    - htx_free_data_space
    - htx_add_data_atonce
    - b_putblk
    - se_fl_set
    - b_data
    - applet_putchk_stress
    - chunk_reset
    - STRESS_RUN1
    - ist2
    - b_room
    - applet_putchk
    - b_head
    - applet_fl_set
    - htx_is_empty
    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:268,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/stats.c:268,1
    - Dst: htx_almost_full
      Src: /src/haproxy/src/stats.c:268,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats.c:269,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:274,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:274,1
    - Dst: buffer_almost_full
      Src: /src/haproxy/src/stats.c:274,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stats.c:275,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/stats.c:280,1
    - Dst: b_data
      Src: /src/haproxy/src/stats.c:280,1
    - Dst: buffer_almost_full
      Src: /src/haproxy/src/stats.c:281,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/stats.c:282,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: 289
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 289
    functionName: stats_is_full
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - htx_is_empty
    - se_fl_set
    - b_data
    - STRESS_RUN1
    - applet_fl_set
    - buffer_almost_full
    - htx_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:294,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/stats.c:298,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/stats.c:298,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats.c:299,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/stats.c:299,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/stats.c:300,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/stats.c:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: stats_scope_ptr
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 3
    functionsReached:
    - htxbuf
    - htx_get_head_blk
    - htx_get_blk_type
    - BUG_ON
    - htx_get_blk_ptr
    - ASSUME_NONNULL
    - htx_sl_req_uri
    linkageType: ''
    returnType: char
    signature: char *stats_scope_ptr(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:333,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:336,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:341,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:345,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - domain
    - out
    argTypes:
    - enum stats_domain
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 346
    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:353,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:355,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: flt_trim
      Src: /src/haproxy/src/stats.c:361,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:361,1
    - Dst: csv_enc_append
      Src: /src/haproxy/src/stats.c:364,1
    - Dst: field_str
      Src: /src/haproxy/src/stats.c:364,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - out
    - f
    argTypes:
    - struct buffer*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 367
    functionName: stats_emit_raw_data_field
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - field_str
    - flt_trim
    - chunk_appendf
    - csv_enc_append
    - 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:375,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:377,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: flt_trim
      Src: /src/haproxy/src/stats.c:383,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:383,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:386,1
    - Dst: field_str
      Src: /src/haproxy/src/stats.c:386,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - out
    - f
    argTypes:
    - struct buffer*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 389
    functionName: stats_emit_typed_data_field
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - field_str
    - flt_trim
    - chunk_appendf
    - field_format
    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:400,1
    - Dst: field_nature
      Src: /src/haproxy/src/stats.c:409,1
    - Dst: field_scope
      Src: /src/haproxy/src/stats.c:425,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:433,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: 434
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 434
    functionName: stats_emit_field_tags
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - field_origin
    - field_scope
    - chunk_appendf
    - field_nature
    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:445,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:447,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:453,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:458,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: 460
      start: 437
    functionDepth: 2
    functionLinenumber: 437
    functionLinenumberEnd: 460
    functionName: stats_dump_fields_csv
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - chunk_strcat
    - stats_emit_raw_data_field
    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:480,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:493,1
    - Dst: stats_emit_field_tags
      Src: /src/haproxy/src/stats.c:506,1
    - Dst: stats_emit_typed_data_field
      Src: /src/haproxy/src/stats.c:508,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:512,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:516,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: 520
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 520
    functionName: stats_dump_fields_typed
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - chunk_strcat
    - stats_emit_typed_data_field
    - 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:531,1
    - Dst: stats_dump_fields_typed
      Src: /src/haproxy/src/stats.c:533,1
    - Dst: stats_dump_fields_json
      Src: /src/haproxy/src/stats.c:535,1
    - Dst: stats_dump_fields_file
      Src: /src/haproxy/src/stats.c:537,1
    - Dst: stats_dump_fields_csv
      Src: /src/haproxy/src/stats.c:539,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: 542
      start: 523
    functionDepth: 3
    functionLinenumber: 523
    functionLinenumberEnd: 542
    functionName: stats_dump_one_line
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_dump_fields_file
    - stats_dump_fields_json
    - stats_dump_fields_typed
    - stats_dump_fields_csv
    - 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:552,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:557,1
    - Dst: stats_dump_html_head
      Src: /src/haproxy/src/stats.c:566,1
    - Dst: stats_dump_json_schema
      Src: /src/haproxy/src/stats.c:568,1
    - Dst: stats_dump_json_header
      Src: /src/haproxy/src/stats.c:570,1
    - Dst: stats_dump_file_header
      Src: /src/haproxy/src/stats.c:572,1
    - Dst: stats_dump_csv_header
      Src: /src/haproxy/src/stats.c:574,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats.c:576,1
    - Dst: stats_dump_html_info
      Src: /src/haproxy/src/stats.c:588,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats.c:589,1
    - Dst: stats_dump_resolvers
      Src: /src/haproxy/src/stats.c:604,1
    - Dst: stats_dump_proxies
      Src: /src/haproxy/src/stats.c:614,1
    - Dst: stats_dump_html_end
      Src: /src/haproxy/src/stats.c:625,1
    - Dst: stats_dump_json_end
      Src: /src/haproxy/src/stats.c:627,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats.c:628,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: 647
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 647
    functionName: stats_dump_stat_to_buffer
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 2
    functionsReached:
    - stats_dump_json_header
    - stats_putchk
    - stats_dump_html_info
    - stats_dump_csv_header
    - stats_dump_resolvers
    - stats_dump_json_end
    - stats_dump_proxies
    - __sc_appctx
    - stats_dump_file_header
    - stats_dump_html_end
    - stats_dump_html_head
    - stats_dump_json_schema
    - 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:658,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:661,1
    - Dst: stats_emit_raw_data_field
      Src: /src/haproxy/src/stats.c:663,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:665,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:667,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: 671
      start: 650
    functionDepth: 2
    functionLinenumber: 650
    functionLinenumberEnd: 671
    functionName: stats_dump_info_fields
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - stats_emit_raw_data_field
    - chunk_strcat
    - field_format
    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:682,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:685,1
    - Dst: stats_emit_field_tags
      Src: /src/haproxy/src/stats.c:689,1
    - Dst: stats_emit_typed_data_field
      Src: /src/haproxy/src/stats.c:691,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:693,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:695,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: 699
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 699
    functionName: stats_dump_typed_info_fields
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - stats_emit_typed_data_field
    - chunk_strcat
    - 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:709,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:717,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:718,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:728,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:729,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:730,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:731,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:732,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stats.c:737,1
    - Dst: tv_ms_remain
      Src: /src/haproxy/src/stats.c:740,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:745,1
    - Dst: memset
      Src: /src/haproxy/src/stats.c:746,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:748,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:749,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_u32
      Src: /src/haproxy/src/stats.c:753,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:754,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_str
      Src: /src/haproxy/src/stats.c:758,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats.c:758,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:759,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:761,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:761,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:762,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:762,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:763,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:764,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:765,1
    - Dst: pool_total_allocated
      Src: /src/haproxy/src/stats.c:765,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:766,1
    - Dst: pool_total_allocated
      Src: /src/haproxy/src/stats.c:766,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:767,1
    - Dst: pool_total_used
      Src: /src/haproxy/src/stats.c:767,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:768,1
    - Dst: pool_total_used
      Src: /src/haproxy/src/stats.c:768,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:769,1
    - Dst: pool_total_failures
      Src: /src/haproxy/src/stats.c:769,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:770,1
    - Dst: mkf_u32
      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:778,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:779,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:780,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:782,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:783,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:784,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:785,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:785,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:785,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:785,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:786,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:787,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:788,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:788,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:788,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:788,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:789,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:790,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:793,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:793,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:794,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:795,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:796,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_flt
      Src: /src/haproxy/src/stats.c:799,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:799,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:799,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:799,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:800,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:801,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:802,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:804,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:804,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:804,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:804,1
    - Dst: mkf_flt
      Src: /src/haproxy/src/stats.c:805,1
    - Dst: read_freq_ctr_flt
      Src: /src/haproxy/src/stats.c:805,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:805,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats.c:805,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:806,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:808,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:809,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:811,1
    - Dst: total_allocated_tasks
      Src: /src/haproxy/src/stats.c:811,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:812,1
    - Dst: total_run_queues
      Src: /src/haproxy/src/stats.c:812,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:813,1
    - Dst: clock_report_idle
      Src: /src/haproxy/src/stats.c:813,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:814,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:816,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:817,1
    - Dst: mkf_u32
      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_u64
      Src: /src/haproxy/src/stats.c:826,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:827,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:828,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:829,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:830,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats.c:832,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats.c:832,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats.c:833,1
    - Dst: get_tainted
      Src: /src/haproxy/src/stats.c:833,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:834,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:834,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:835,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats.c:835,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:836,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:837,1
    - Dst: total_niced_running_tasks
      Src: /src/haproxy/src/stats.c:837,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:838,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:839,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats.c:840,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:841,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats.c:842,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 105
    argCount: 3
    argNames:
    - line
    - len
    - flags
    argTypes:
    - struct field*
    - int
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 845
    functionName: stats_fill_info
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - pool_total_used
    - pool_total_allocated
    - mkf_u32
    - pool_total_failures
    - total_niced_running_tasks
    - chunk_appendf
    - tv_ms_remain
    - memset
    - HA_ATOMIC_LOAD
    - get_tainted
    - total_allocated_tasks
    - mkf_str
    - chunk_newstr
    - read_freq_ctr
    - read_freq_ctr_flt
    - ns_to_sec
    - mkf_flt
    - mkf_u64
    - clock_report_idle
    - total_run_queues
    - chunk_reset
    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:853,1
    - Dst: stats_fill_info
      Src: /src/haproxy/src/stats.c:859,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats.c:862,1
    - Dst: stats_dump_typed_info_fields
      Src: /src/haproxy/src/stats.c:867,1
    - Dst: stats_dump_json_info_fields
      Src: /src/haproxy/src/stats.c:869,1
    - Dst: stats_dump_info_fields
      Src: /src/haproxy/src/stats.c:871,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stats.c:873,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 851
    functionDepth: 3
    functionLinenumber: 851
    functionLinenumberEnd: 884
    functionName: stats_dump_info_to_buffer
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_dump_typed_info_fields
    - stats_dump_json_info_fields
    - __sc_appctx
    - applet_putchk
    - stats_fill_info
    - stats_dump_info_fields
    - chunk_reset
    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:890,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/stats.c:894,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/stats.c:895,1
    - Dst: proxy_stats_clear_counters
      Src: /src/haproxy/src/stats.c:904,1
    - Dst: resolv_stats_clear_counters
      Src: /src/haproxy/src/stats.c:906,1
    - Dst: memset
      Src: /src/haproxy/src/stats.c:908,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: 910
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 910
    functionName: cli_parse_clear_counters
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - memset
    - strcmp
    - resolv_stats_clear_counters
    - proxy_stats_clear_counters
    - cli_has_level
    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:915,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:924,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:926,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:928,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:930,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: 935
      start: 913
    functionDepth: 1
    functionLinenumber: 913
    functionLinenumberEnd: 935
    functionName: cli_parse_show_info
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - applet_reserve_svcctx
    - strcmp
    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:940,1
    - Dst: watcher_init
      Src: /src/haproxy/src/stats.c:947,1
    - Dst: strm_li
      Src: /src/haproxy/src/stats.c:949,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/stats.c:949,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:954,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:957,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:959,1
    - Dst: cli_err
      Src: /src/haproxy/src/stats.c:963,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/stats.c:971,1
    - Dst: atoi
      Src: /src/haproxy/src/stats.c:975,1
    - Dst: cli_err
      Src: /src/haproxy/src/stats.c:978,1
    - Dst: atoi
      Src: /src/haproxy/src/stats.c:981,1
    - Dst: atoi
      Src: /src/haproxy/src/stats.c:982,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:987,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:989,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:991,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:993,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats.c:995,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 1001
    functionName: cli_parse_show_stat
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strm_li
    - cli_err
    - atoi
    - watcher_init
    - proxy_find_by_name
    - applet_reserve_svcctx
    - appctx_strm
    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:1005,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: 1009
      start: 1003
    functionDepth: 1
    functionLinenumber: 1003
    functionLinenumberEnd: 1009
    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:1014,1
    - Dst: stats_dump_info_to_buffer
      Src: /src/haproxy/src/stats.c:1015,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats.c:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1011
    functionDepth: 4
    functionLinenumber: 1011
    functionLinenumberEnd: 1016
    functionName: cli_io_handler_dump_info
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - appctx_sc
    - b_make
    - 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:1024,1
    - Dst: stats_dump_stat_to_buffer
      Src: /src/haproxy/src/stats.c:1025,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats.c:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1021
    functionDepth: 3
    functionLinenumber: 1021
    functionLinenumberEnd: 1026
    functionName: cli_io_handler_dump_stat
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_dump_stat_to_buffer
    - appctx_sc
    - b_make
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_stat(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats.c:1032,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1028
    functionDepth: 1
    functionLinenumber: 1028
    functionLinenumberEnd: 1033
    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:1038,1
    - Dst: stats_dump_json_schema_to_buffer
      Src: /src/haproxy/src/stats.c:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1040
    functionName: cli_io_handler_dump_json_schema
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_dump_json_schema_to_buffer
    - b_make
    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:1045,1
    - Dst: b_make
      Src: /src/haproxy/src/stats.c:1047,1
    - Dst: watcher_init
      Src: /src/haproxy/src/stats.c:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1042
    functionDepth: 1
    functionLinenumber: 1042
    functionLinenumberEnd: 1053
    functionName: cli_parse_dump_stat_file
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - applet_reserve_svcctx
    - b_make
    - watcher_init
    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:1073,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats.c:1073,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats.c:1077,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats.c:1078,1
    - Dst: stats_dump_stat_to_buffer
      Src: /src/haproxy/src/stats.c:1086,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stats.c:1086,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1056
    functionDepth: 3
    functionLinenumber: 1056
    functionLinenumberEnd: 1087
    functionName: cli_io_handler_dump_stat_file
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - stats_putchk
    - stats_dump_stat_to_buffer
    - appctx_sc
    - chunk_strcat
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_dump_stat_file(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats.c:1093,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1094
    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:1101,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1103,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats.c:1104,1
    - Dst: EXTRA_COUNTERS_ADD
      Src: /src/haproxy/src/stats.c:1107,1
    - Dst: EXTRA_COUNTERS_ALLOC
      Src: /src/haproxy/src/stats.c:1110,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1112,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats.c:1113,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats.c:1116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - counters
    - type
    - px_cap
    argTypes:
    - struct extra_counters**
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1096
    functionDepth: 1
    functionLinenumber: 1096
    functionLinenumberEnd: 1123
    functionName: stats_allocate_proxy_counters_internal
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - EXTRA_COUNTERS_ALLOC
    - stats_px_get_cap
    - EXTRA_COUNTERS_ADD
    - EXTRA_COUNTERS_INIT
    - EXTRA_COUNTERS_REGISTER
    linkageType: ''
    returnType: int
    signature: "int stats_allocate_proxy_counters_internal(struct extra_counters **counters,\n
      \                                          int type, int px_cap)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/stats.c:1134,1
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/stats.c:1142,1
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/stats.c:1150,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1157,1
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/stats.c:1158,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1128
    functionDepth: 2
    functionLinenumber: 1128
    functionLinenumberEnd: 1166
    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:1170,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stats.c:1172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct stats_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1174
    functionName: stats_register_module
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - stats_get_domain
    linkageType: ''
    returnType: void
    signature: void stats_register_module(struct stats_module *m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:1186,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1188,1
    - Dst: stcol2ndesc
      Src: /src/haproxy/src/stats.c:1194,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1196,1
    - Dst: stcol2ndesc
      Src: /src/haproxy/src/stats.c:1198,1
    - Dst: stats_allocate_proxy_counters
      Src: /src/haproxy/src/stats.c:1205,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1206,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1177
    functionDepth: 3
    functionLinenumber: 1177
    functionLinenumberEnd: 1215
    functionName: allocate_stats_px_postcheck
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - malloc
    - stats_allocate_proxy_counters
    - ha_alert
    - stcol2ndesc
    linkageType: ''
    returnType: int
    signature: int allocate_stats_px_postcheck(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:1225,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1227,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats.c:1232,1
    - Dst: stcol2ndesc
      Src: /src/haproxy/src/stats.c:1234,1
    - Dst: resolv_allocate_counters
      Src: /src/haproxy/src/stats.c:1240,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1249
    functionName: allocate_stats_rslv_postcheck
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - resolv_allocate_counters
    - malloc
    - ha_alert
    - stcol2ndesc
    linkageType: ''
    returnType: int
    signature: int allocate_stats_rslv_postcheck(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:1260,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1265
    functionName: allocate_stat_lines_per_thread
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - malloc
    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:1277,1
    - Dst: malloc
      Src: /src/haproxy/src/stats.c:1285,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats.c:1287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1269
    functionDepth: 1
    functionLinenumber: 1269
    functionLinenumberEnd: 1293
    functionName: allocate_trash_counters
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - malloc
    - list_for_each_entry
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int allocate_trash_counters(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/stats.c:1304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1297
    functionDepth: 1
    functionLinenumber: 1297
    functionLinenumberEnd: 1306
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/stats.c:1319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1311
    functionDepth: 1
    functionLinenumber: 1311
    functionLinenumberEnd: 1321
    functionName: deinit_stats
    functionSourceFile: /src/haproxy/src/stats.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void deinit_stats(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/stats.c:1328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1329
    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:
    - MJSONEOO
    - MJSONCALL
    - memcmp
    - mjson_pass_string
    - 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: 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:
    - kcmp
    - plen2
    - MJSON_TOK_IS_VALUE
    - plen1
    - mystrtod
    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_esc
    - mjson_unhex_nimble
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 343
    functionName: is_digit
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int is_digit(int c)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:358,1
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:360,1
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:377,1
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:378,1
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:396,1
    - Dst: is_digit
      Src: /src/haproxy/src/mjson.c:422,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 83
    argCount: 2
    argNames:
    - str
    - end
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 430
    functionName: mystrtod
    functionSourceFile: /src/haproxy/src/mjson.c
    functionUses: 3
    functionsReached:
    - is_digit
    linkageType: ''
    returnType: double
    signature: double mystrtod(const char *str, 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:
    - strdup
    - ha_free
    - memprintf
    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:
    - memprintf
    - atoi
    - 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:
    - strdup
    - strlen
    - ha_free
    - memprintf
    linkageType: ''
    returnType: int
    signature: int bind_parse_tcp_md5sig(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:157,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-tcp.c:161,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:163,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:168,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:173,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: 179
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 179
    functionName: bind_parse_tcp_ut
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    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:187,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-tcp.c:191,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-tcp.c:192,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:194,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: 198
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 198
    functionName: bind_parse_interface
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_free
    - memprintf
    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:208,1
    - Dst: netns_store_insert
      Src: /src/haproxy/src/cfgparse-tcp.c:216,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-tcp.c:219,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: 224
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 224
    functionName: bind_parse_namespace
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - netns_store_insert
    - memprintf
    - ha_alert
    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:232,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-tcp.c:236,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-tcp.c:237,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:239,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: 243
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 243
    functionName: srv_parse_cc
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_free
    - memprintf
    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:251,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-tcp.c:256,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-tcp.c:257,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:258,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-tcp.c:262,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:264,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: 269
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 269
    functionName: srv_parse_tcp_md5sig
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - strdup
    - strlen
    - ha_free
    - memprintf
    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:280,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-tcp.c:284,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:286,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:291,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-tcp.c:296,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: 304
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 304
    functionName: srv_parse_tcp_ut
    functionSourceFile: /src/haproxy/src/cfgparse-tcp.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    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:36,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/uri_auth.c:39,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/uri_auth.c:40,1
    - Dst: stats_uri_auth_take
      Src: /src/haproxy/src/uri_auth.c:41,1
    - Dst: strlen
      Src: /src/haproxy/src/uri_auth.c:46,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:47,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:58,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct uri_auth**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: stats_check_init_uri_auth
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - strdup
    - stats_uri_auth_take
    - strlen
    - free
    - LIST_INIT
    - calloc
    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:73,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:74,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:77,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:80,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - root
    - uri
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: stats_set_uri
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - strdup
    - strlen
    - stats_check_init_uri_auth
    - free
    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:100,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:103,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:106,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - root
    - realm
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 114
    functionName: stats_set_realm
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - strdup
    - stats_check_init_uri_auth
    - free
    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:127,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:132,1
    - Dst: stats_set_flag
      Src: /src/haproxy/src/uri_auth.c:135,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:139,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:146,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - root
    - name
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 149
    functionName: stats_set_node
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - strdup
    - stats_check_init_uri_auth
    - free
    - stats_set_flag
    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:162,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:167,1
    - Dst: stats_set_flag
      Src: /src/haproxy/src/uri_auth.c:170,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:174,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - root
    - desc
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 184
    functionName: stats_set_desc
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - strdup
    - stats_check_init_uri_auth
    - free
    - stats_set_flag
    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:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - interval
    argTypes:
    - struct uri_auth**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 197
    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:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - root
    - flag
    argTypes:
    - struct uri_auth**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 210
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/uri_auth.c:223,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: free
      Src: /src/haproxy/src/uri_auth.c:257,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:261,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:263,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:264,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 2
    argNames:
    - root
    - user
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 273
    functionName: stats_add_auth
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - strdup
    - stats_check_init_uri_auth
    - ha_warning
    - strcmp
    - free
    - strchr
    - calloc
    linkageType: ''
    returnType: struct uri_auth
    signature: struct uri_auth *stats_add_auth(struct uri_auth **root, char *user)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/uri_auth.c:286,1
    - Dst: strcmp
      Src: /src/haproxy/src/uri_auth.c:291,1
    - Dst: strdup
      Src: /src/haproxy/src/uri_auth.c:297,1
    - Dst: calloc
      Src: /src/haproxy/src/uri_auth.c:300,1
    - Dst: strlen
      Src: /src/haproxy/src/uri_auth.c:304,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:310,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:312,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - root
    - scope
    argTypes:
    - struct uri_auth**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 315
    functionName: stats_add_scope
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - strdup
    - stats_check_init_uri_auth
    - strcmp
    - strlen
    - free
    - calloc
    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:322,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:323,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:324,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:325,1
    - Dst: userlist_free
      Src: /src/haproxy/src/uri_auth.c:327,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/uri_auth.c:328,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/uri_auth.c:329,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/uri_auth.c:330,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/uri_auth.c:331,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:332,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:339,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:340,1
    - Dst: free
      Src: /src/haproxy/src/uri_auth.c:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - uri_auth
    argTypes:
    - struct uri_auth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 344
    functionName: stats_uri_auth_free
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - userlist_free
    - list_for_each_entry_safe
    - free_act_rules
    - free
    - free_acl_cond
    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:350,1
    - Dst: stats_uri_auth_free
      Src: /src/haproxy/src/uri_auth.c:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - uri_auth
    argTypes:
    - struct uri_auth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 352
    functionName: stats_uri_auth_drop
    functionSourceFile: /src/haproxy/src/uri_auth.c
    functionUses: 0
    functionsReached:
    - stats_uri_auth_free
    - HA_ATOMIC_SUB_FETCH
    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:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - uri_auth
    argTypes:
    - struct uri_auth*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 359
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct act_rule*::check_ptr
      Src: /src/haproxy/src/action.c:37,1
    - Dst: ha_alert
      Src: /src/haproxy/src/action.c:38,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/action.c:41,1
    - Dst: ha_free
      Src: /src/haproxy/src/action.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - rules
    - px
    - err_code
    argTypes:
    - struct list*
    - struct proxy*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 46
    functionName: check_action_rules
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - warnif_tcp_http_cond
    - ha_free
    - struct act_rule*::check_ptr
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int check_action_rules(struct list *rules, struct proxy *px, int *err_code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_ptr
      Src: /src/haproxy/src/action.c:37,1
    - Dst: ha_alert
      Src: /src/haproxy/src/action.c:38,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/action.c:41,1
    - Dst: ha_free
      Src: /src/haproxy/src/action.c:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 15
    functionsReached:
    - warnif_tcp_http_cond
    - ha_free
    - check_ptr
    - ha_alert
    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:59,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:64,1
    - Dst: stktable_compatible_sample
      Src: /src/haproxy/src/action.c:70,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:71,1
    - Dst: in_proxies_list
      Src: /src/haproxy/src/action.c:77,1
    - Dst: free
      Src: /src/haproxy/src/action.c:81,1
    - Dst: ha_warning
      Src: /src/haproxy/src/action.c:91,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/action.c:95,1
    - Dst: ha_warning
      Src: /src/haproxy/src/action.c:108,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/action.c:111,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: 116
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 116
    functionName: check_trk_action
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - in_proxies_list
    - stktable_find_by_name
    - free
    - memprintf
    - proxy_type_str
    - stktable_compatible_sample
    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:128,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/action.c:132,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: 136
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 136
    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:145,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/action.c:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - requester
    - counters
    argTypes:
    - struct resolv_requester*
    - struct dns_counters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 152
    functionName: act_resolution_cb
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - objt_stream
    - task_wakeup
    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:167,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/action.c:171,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - requester
    - error_code
    argTypes:
    - struct resolv_requester*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: act_resolution_error_cb
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - objt_stream
    - task_wakeup
    linkageType: ''
    returnType: int
    signature: int act_resolution_error_cb(struct resolv_requester *requester, int
      error_code)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/action.c:191,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:193,1
    - Dst: strcmp
      Src: /src/haproxy/src/action.c:198,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:200,1
    - Dst: strcmp
      Src: /src/haproxy/src/action.c:205,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:207,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:213,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/action.c:219,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:221,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:226,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/action.c:232,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:235,1
    - Dst: memprintf
      Src: /src/haproxy/src/action.c:241,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 5
    argNames:
    - args
    - idx
    - rule
    - px
    - err
    argTypes:
    - char**
    - int
    - struct act_rule*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 247
    functionName: cfg_parse_rule_set_timeout
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - parse_time_err
    - memprintf
    - strcmp
    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:267,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/action.c:270,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/action.c:271,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/action.c:281,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/action.c:282,1
    - Dst: strlen
      Src: /src/haproxy/src/action.c:295,1
    - Dst: strlen
      Src: /src/haproxy/src/action.c:296,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 27
    argCount: 3
    argNames:
    - word
    - keywords
    - extra
    argTypes:
    - char*
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 300
    functionName: action_suggest
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - word_fingerprint_distance
    - strlen
    - make_word_fingerprint
    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:270,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/action.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 278
    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:310,1
    - Dst: strdup
      Src: /src/haproxy/src/action.c:314,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/action.c:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - from
    - file
    - linenum
    argTypes:
    - enum act_from
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 318
    functionName: new_act_rule
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - strdup
    - LIST_INIT
    - calloc
    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:323,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/action.c:324,1
    - Dst: struct act_rule*::release_ptr
      Src: /src/haproxy/src/action.c:326,1
    - Dst: free
      Src: /src/haproxy/src/action.c:327,1
    - Dst: free
      Src: /src/haproxy/src/action.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 329
    functionName: free_act_rule
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 0
    functionsReached:
    - struct act_rule*::release_ptr
    - free
    - LIST_DELETE
    - free_acl_cond
    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:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rules
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 338
    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:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/action.c
    functionUses: 4
    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:353,1
    - Dst: printf
      Src: /src/haproxy/src/action.c:360,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - rules
    - pfx
    argTypes:
    - struct list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 363
    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:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 357
    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: 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: 1
    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: 0
    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: 0
    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:
    - BUG_ON
    - ha_bit_clr
    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: 0
    functionsReached:
    - isttrim
    - istnext
    - istptr
    - isdigit
    - ist2
    - likely
    - istend
    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: 0
    functionsReached:
    - isteq
    - istlen
    - isteqi
    - isttest
    - ist
    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: 0
    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: 0
    functionsReached:
    - isalnum
    - istptr
    - isalpha
    - ist2
    - istend
    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: 0
    functionsReached:
    - istend
    - ist2
    - istptr
    - http_parse_scheme
    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: 5
    functionsReached:
    - http_parse_scheme
    - http_parse_authority
    - istptr
    - ist2
    - istend
    - 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: 0
    functionsReached:
    - HTTP_IS_LWS
    - unlikely
    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: 0
    functionsReached:
    - HTTP_IS_SPHT
    - strncasecmp
    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: 0
    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: 0
    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: 2
    functionsReached:
    - HTTP_IS_SPHT
    - memcmp
    - 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: 1
    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: 1
    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
    - strncasecmp
    - memcmp
    - http_is_param_delimiter
    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: 1
    functionsReached:
    - fix_pointer_if_wrap
    - http_find_url_param_pos
    - http_is_param_delimiter
    - memchr
    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: 0
    functionsReached:
    - HTTP_IS_SPHT
    - HTTP_IS_TOKEN
    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: 0
    functionsReached:
    - HTTP_IS_SPHT
    - HTTP_IS_TOKEN
    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: 0
    functionsReached:
    - HTTP_IS_SPHT
    - HTTP_IS_TOKEN
    - strl2ui
    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: 0
    functionsReached:
    - isteq
    - istadv
    - http_get_etag_type
    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: 0
    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_add_range
    - http_status_del_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:
    - http_status_add_range
    - memset
    - strcmp
    - read_uint
    - strlen
    - memprintf
    - http_status_del_range
    - ABORT_NOW
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: conn_is_back
      Src: /src/haproxy/src/quic_sock.c:62,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:69,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - conn
    - addr
    - len
    argTypes:
    - struct connection*
    - struct sockaddr*
    - socklen_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 72
    functionName: quic_sock_get_src
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - 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:83,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:87,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:95,1
    - Dst: is_addr
      Src: /src/haproxy/src/quic_sock.c:96,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:99,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: 102
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 102
    functionName: quic_sock_get_dst
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - conn_is_back
    - BUG_ON
    - memcpy
    - is_addr
    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:115,1
    - Dst: conn_new
      Src: /src/haproxy/src/quic_sock.c:115,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/quic_sock.c:118,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/quic_sock.c:131,1
    - Dst: conn_xprt_close
      Src: /src/haproxy/src/quic_sock.c:132,1
    - Dst: conn_free
      Src: /src/haproxy/src/quic_sock.c:133,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: 137
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 137
    functionName: new_quic_cli_conn
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - sockaddr_alloc
    - conn_xprt_close
    - unlikely
    - conn_stop_tracking
    - conn_new
    - conn_free
    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: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    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:156,1
    - Dst: new_quic_cli_conn
      Src: /src/haproxy/src/quic_sock.c:160,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:167,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_sock.c:168,1
    - Dst: MT_LIST_INSERT
      Src: /src/haproxy/src/quic_sock.c:177,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - l
    - status
    argTypes:
    - struct listener*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 151
    functionDepth: 4
    functionLinenumber: 151
    functionLinenumberEnd: 181
    functionName: quic_sock_accept_conn
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - MT_LIST_POP
    - HA_ATOMIC_DEC
    - new_quic_cli_conn
    - BUG_ON
    - MT_LIST_INSERT
    linkageType: ''
    returnType: struct connection
    signature: struct connection *quic_sock_accept_conn(struct listener *l, int *status)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_sock.c:190,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/quic_sock.c:192,1
    - Dst: typeof
      Src: /src/haproxy/src/quic_sock.c:192,1
    - Dst: quic_dgram_parse
      Src: /src/haproxy/src/quic_sock.c:193,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:202,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/quic_sock.c:207,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_sock.c:208,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:210,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 212
    functionName: quic_lstnr_dghdlr
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - MT_LIST_POP
    - tasklet_wakeup
    - MT_LIST_ISEMPTY
    - TRACE_ENTER
    - quic_dgram_parse
    - typeof
    - TRACE_LEAVE
    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:224,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_sock.c:227,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:247,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_sock.c:251,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 4
    argNames:
    - pos
    - end
    - dcid
    - dcid_len
    argTypes:
    - unsigned char*
    - unsigned char*
    - unsigned char**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 253
    functionName: quic_get_dgram_dcid
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_PROTO
    - TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: "int quic_get_dgram_dcid(unsigned char *pos, const unsigned char *end,\n
      \                              unsigned char **dcid, size_t *dcid_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: quic_get_dgram_dcid
      Src: /src/haproxy/src/quic_sock.c:270,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_sock.c:273,1
    - Dst: quic_get_cid_tid
      Src: /src/haproxy/src/quic_sock.c:277,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:301,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:302,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_sock.c:305,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_sock.c:310,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 7
    argNames:
    - pos
    - len
    - owner
    - saddr
    - daddr
    - new_dgram
    - dgrams
    argTypes:
    - unsigned char*
    - size_t
    - void*
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    - struct quic_dgram*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 312
    functionName: quic_lstnr_dgram_dispatch
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - quic_get_dgram_dcid
    - quic_get_cid_tid
    - tasklet_wakeup
    - MT_LIST_APPEND
    - pool_free
    - LIST_APPEND
    - pool_alloc
    linkageType: ''
    returnType: int
    signature: "int quic_lstnr_dgram_dispatch(unsigned char *pos, size_t len, void
      *owner,\n                                     struct sockaddr_storage *saddr,\n
      \                                    struct sockaddr_storage *daddr,\n                                     struct
      quic_dgram *new_dgram, struct list *dgrams)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_sock.c:325,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/quic_sock.c:326,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_sock.c:329,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/quic_sock.c:333,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_sock.c:334,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_sock.c:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rbuf
    argTypes:
    - struct quic_receiver_buf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 343
    functionName: quic_rxbuf_purge_dgrams
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - pool_free
    - HA_ATOMIC_LOAD
    - b_del
    - LIST_ISEMPTY
    - LIST_ELEM
    linkageType: ''
    returnType: struct quic_dgram
    signature: struct quic_dgram *quic_rxbuf_purge_dgrams(struct quic_receiver_buf
      *rbuf)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:375,1
    - Dst: memset
      Src: /src/haproxy/src/quic_sock.c:384,1
    - Dst: clear_addr
      Src: /src/haproxy/src/quic_sock.c:392,1
    - Dst: recvmsg
      Src: /src/haproxy/src/quic_sock.c:395,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_sock.c:405,1
    - Dst: port_is_restricted
      Src: /src/haproxy/src/quic_sock.c:405,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:410,1
    - Dst: CMSG_NXTHDR
      Src: /src/haproxy/src/quic_sock.c:410,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:416,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:427,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:442,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:446,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: 457
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 457
    functionName: quic_recv
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - recvmsg
    - memset
    - unlikely
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - CMSG_SPACE
    - port_is_restricted
    - clear_addr
    - memcpy
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/src/quic_sock.c:467,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:476,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/quic_sock.c:482,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/quic_sock.c:485,1
    - Dst: typeof
      Src: /src/haproxy/src/quic_sock.c:485,1
    - Dst: quic_rxbuf_purge_dgrams
      Src: /src/haproxy/src/quic_sock.c:497,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_sock.c:501,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_sock.c:504,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_sock.c:510,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_sock.c:510,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_sock.c:511,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_sock.c:518,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:528,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_sock.c:531,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_sock.c:532,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_sock.c:533,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_sock.c:538,1
    - Dst: quic_recv
      Src: /src/haproxy/src/quic_sock.c:539,1
    - Dst: get_net_port
      Src: /src/haproxy/src/quic_sock.c:542,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_sock.c:546,1
    - Dst: quic_lstnr_dgram_dispatch
      Src: /src/haproxy/src/quic_sock.c:547,1
    - Dst: b_sub
      Src: /src/haproxy/src/quic_sock.c:550,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_sock.c:556,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:557,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 56
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 558
    functionName: quic_lstnr_sock_fd_iocb
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - b_sub
    - pool_free
    - b_tail
    - EXTRA_COUNTERS_GET
    - pool_alloc
    - quic_lstnr_dgram_dispatch
    - get_net_port
    - MT_LIST_APPEND
    - fd_recv_ready
    - MT_LIST_POP
    - BUG_ON
    - LIST_APPEND
    - typeof
    - b_wrap
    - quic_rxbuf_purge_dgrams
    - b_contig_space
    - quic_recv
    - objt_listener
    - b_add
    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:565,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/quic_sock.c:567,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/quic_sock.c:567,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_sock.c:568,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/quic_sock.c:569,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/quic_sock.c:570,1
    - Dst: qc_notify_send
      Src: /src/haproxy/src/quic_sock.c:571,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/quic_sock.c:574,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_sock.c:575,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/quic_sock.c:576,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/quic_sock.c:577,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 581
    functionName: quic_conn_sock_fd_iocb
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - tasklet_wakeup_after
    - fd_stop_recv
    - fd_send_active
    - fd_send_ready
    - TRACE_ENTER
    - fd_stop_send
    - qc_notify_send
    - fd_recv_ready
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void quic_conn_sock_fd_iocb(int fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:618,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/quic_sock.c:621,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:621,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:623,1
    - Dst: CMSG_NXTHDR
      Src: /src/haproxy/src/quic_sock.c:623,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/quic_sock.c:624,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/quic_sock.c:626,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:633,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:636,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:641,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:641,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:652,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_sock.c:654,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: 664
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 664
    functionName: cmsg_set_saddr
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - CMSG_NXTHDR
    - CMSG_LEN
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - ASSUME_NONNULL
    - CMSG_SPACE
    - memcpy
    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:674,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/quic_sock.c:677,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:677,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/quic_sock.c:679,1
    - Dst: CMSG_NXTHDR
      Src: /src/haproxy/src/quic_sock.c:679,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/quic_sock.c:680,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/quic_sock.c:682,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/quic_sock.c:686,1
    - Dst: write_u16
      Src: /src/haproxy/src/quic_sock.c:687,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/quic_sock.c:687,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: 689
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 689
    functionName: cmsg_set_gso
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - CMSG_NXTHDR
    - CMSG_LEN
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - ASSUME_NONNULL
    - CMSG_SPACE
    - write_u16
    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:696,1
    - Dst: is_addr
      Src: /src/haproxy/src/quic_sock.c:704,1
    - Dst: is_addr
      Src: /src/haproxy/src/quic_sock.c:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 706
    functionName: qc_may_use_saddr
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - qc_test_fd
    - is_addr
    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:732,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:732,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:735,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:735,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:737,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/quic_sock.c:737,1
    - Dst: memset
      Src: /src/haproxy/src/quic_sock.c:749,1
    - Dst: b_peek
      Src: /src/haproxy/src/quic_sock.c:751,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/quic_sock.c:751,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_sock.c:762,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/quic_sock.c:764,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_sock.c:777,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/quic_sock.c:777,1
    - Dst: qc_may_use_saddr
      Src: /src/haproxy/src/quic_sock.c:780,1
    - Dst: cmsg_set_saddr
      Src: /src/haproxy/src/quic_sock.c:782,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_sock.c:788,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_sock.c:788,1
    - Dst: cmsg_set_gso
      Src: /src/haproxy/src/quic_sock.c:792,1
    - Dst: sendmsg
      Src: /src/haproxy/src/quic_sock.c:796,1
    - Dst: qc_fd
      Src: /src/haproxy/src/quic_sock.c:796,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_sock.c:808,1
    - Dst: fd_want_send
      Src: /src/haproxy/src/quic_sock.c:809,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/quic_sock.c:810,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_sock.c:812,1
    - Dst: strerror
      Src: /src/haproxy/src/quic_sock.c:813,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_sock.c:819,1
    - Dst: strerror
      Src: /src/haproxy/src/quic_sock.c:820,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: 829
      start: 722
    functionDepth: 2
    functionLinenumber: 722
    functionLinenumberEnd: 829
    functionName: qc_snd_buf
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - qc_fd
    - memset
    - fd_send_ready
    - cmsg_set_saddr
    - b_data
    - fd_want_send
    - cmsg_set_gso
    - fd_cant_send
    - TRACE_PRINTF
    - qc_test_fd
    - qc_may_use_saddr
    - BUG_ON_HOT
    - strerror
    - b_peek
    - CMSG_SPACE
    - sendmsg
    - b_head_ofs
    - get_addr_len
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:845,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_sock.c:847,1
    - Dst: b_alloc
      Src: /src/haproxy/src/quic_sock.c:850,1
    - Dst: b_reset
      Src: /src/haproxy/src/quic_sock.c:853,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:854,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_sock.c:854,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_sock.c:857,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_sock.c:860,1
    - Dst: quic_recv
      Src: /src/haproxy/src/quic_sock.c:861,1
    - Dst: get_net_port
      Src: /src/haproxy/src/quic_sock.c:864,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/quic_sock.c:868,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_sock.c:873,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_sock.c:885,1
    - Dst: quic_get_dgram_dcid
      Src: /src/haproxy/src/quic_sock.c:887,1
    - Dst: qc_check_dcid
      Src: /src/haproxy/src/quic_sock.c:893,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_sock.c:904,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/quic_sock.c:906,1
    - Dst: typeof
      Src: /src/haproxy/src/quic_sock.c:906,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/quic_sock.c:907,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_sock.c:908,1
    - Dst: quic_rxbuf_purge_dgrams
      Src: /src/haproxy/src/quic_sock.c:910,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_sock.c:911,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/quic_sock.c:914,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_sock.c:915,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:918,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:924,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_sock.c:925,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_sock.c:929,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:931,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_sock.c:935,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/quic_sock.c:936,1
    - Dst: quic_lstnr_dgram_dispatch
      Src: /src/haproxy/src/quic_sock.c:937,1
    - Dst: b_sub
      Src: /src/haproxy/src/quic_sock.c:940,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:947,1
    - Dst: quic_dgram_parse
      Src: /src/haproxy/src/quic_sock.c:951,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_sock.c:952,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:954,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_sock.c:957,1
    - Dst: b_size
      Src: /src/haproxy/src/quic_sock.c:959,1
    - Dst: b_free
      Src: /src/haproxy/src/quic_sock.c:960,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/quic_sock.c:961,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_sock.c:964,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 835
    functionDepth: 3
    functionLinenumber: 835
    functionLinenumberEnd: 966
    functionName: qc_rcv_buf
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - offer_buffers
    - b_space_wraps
    - b_sub
    - pool_free
    - b_tail
    - pool_alloc
    - quic_lstnr_dgram_dispatch
    - ASSUME_NONNULL
    - b_free
    - TRACE_LEAVE
    - __b_putblk
    - get_net_port
    - MT_LIST_APPEND
    - quic_dgram_parse
    - qc_check_dcid
    - quic_get_dgram_dcid
    - MT_LIST_POP
    - __objt_server
    - BUG_ON
    - LIST_APPEND
    - typeof
    - quic_rxbuf_purge_dgrams
    - b_size
    - fd_want_recv
    - b_contig_space
    - quic_recv
    - TRACE_STATE
    - TRACE_ENTER
    - b_alloc
    - b_reset
    - b_add
    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:986,1
    - Dst: qc_init_fd
      Src: /src/haproxy/src/quic_sock.c:988,1
    - Dst: socket
      Src: /src/haproxy/src/quic_sock.c:990,1
    - Dst: send_log
      Src: /src/haproxy/src/quic_sock.c:995,1
    - Dst: setsockopt
      Src: /src/haproxy/src/quic_sock.c:1001,1
    - Dst: setsockopt
      Src: /src/haproxy/src/quic_sock.c:1008,1
    - Dst: setsockopt
      Src: /src/haproxy/src/quic_sock.c:1010,1
    - Dst: setsockopt
      Src: /src/haproxy/src/quic_sock.c:1015,1
    - Dst: bind
      Src: /src/haproxy/src/quic_sock.c:1022,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/quic_sock.c:1022,1
    - Dst: send_log
      Src: /src/haproxy/src/quic_sock.c:1026,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/quic_sock.c:1033,1
    - Dst: connect
      Src: /src/haproxy/src/quic_sock.c:1038,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/quic_sock.c:1038,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/quic_sock.c:1043,1
    - Dst: fd_insert
      Src: /src/haproxy/src/quic_sock.c:1044,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/quic_sock.c:1045,1
    - Dst: close
      Src: /src/haproxy/src/quic_sock.c:1051,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: 1052
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 1052
    functionName: qc_alloc_fd
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - bind
    - fd_set_nonblock
    - fd_want_recv
    - HA_ATOMIC_STORE
    - fd_insert
    - BUG_ON
    - close
    - send_log
    - socket
    - qc_init_fd
    - setsockopt
    - connect
    - get_addr_len
    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:1059,1
    - Dst: fd_delete
      Src: /src/haproxy/src/quic_sock.c:1060,1
    - Dst: qc_init_fd
      Src: /src/haproxy/src/quic_sock.c:1064,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - qc
    - reinit
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1066
    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:1073,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/quic_sock.c:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1075
    functionName: qc_want_recv
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - fd_want_recv
    - qc_test_fd
    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:1091,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_sock.c:1093,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/quic_sock.c:1093,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_sock.c:1094,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/quic_sock.c:1103,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/quic_sock.c:1104,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/quic_sock.c:1107,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_sock.c:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1111
    functionName: quic_accept_push_qc
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - MT_LIST_TRY_APPEND
    - tasklet_wakeup
    - MT_LIST_INLIST
    - MT_LIST_APPEND
    - BUG_ON
    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:1122,1
    - Dst: listener_accept
      Src: /src/haproxy/src/quic_sock.c:1123,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/quic_sock.c:1124,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_sock.c:1126,1
    - Dst: mt_list_unlock_self
      Src: /src/haproxy/src/quic_sock.c:1129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - t
    - ctx
    - i
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1135
    functionName: quic_accept_run
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - listener_accept
    - tasklet_wakeup
    - MT_LIST_ISEMPTY
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - mt_list_unlock_self
    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:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1144
    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:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1153
    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:1159,1
    - Dst: ha_alert
      Src: /src/haproxy/src/quic_sock.c:1162,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/quic_sock.c:1168,1
    - Dst: ha_alert
      Src: /src/haproxy/src/quic_sock.c:1169,1
    - Dst: tasklet_set_tid
      Src: /src/haproxy/src/quic_sock.c:1173,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/quic_sock.c:1177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1181
    functionName: quic_alloc_accept_queues
    functionSourceFile: /src/haproxy/src/quic_sock.c
    functionUses: 0
    functionsReached:
    - tasklet_new
    - tasklet_set_tid
    - MT_LIST_INIT
    - ha_alert
    - calloc
    linkageType: ''
    returnType: int
    signature: int quic_alloc_accept_queues(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_free
      Src: /src/haproxy/src/quic_sock.c:1190,1
    - Dst: free
      Src: /src/haproxy/src/quic_sock.c:1191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1184
    functionDepth: 1
    functionLinenumber: 1184
    functionLinenumberEnd: 1195
    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: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    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: qmux_stream_rx_bufsz
      Src: /src/haproxy/src/quic_tp.c:49,1
    - Dst: quic_dflt_transport_params_cpy
      Src: /src/haproxy/src/quic_tp.c:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - p
    - server
    argTypes:
    - struct quic_transport_params*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 103
    functionName: quic_transport_params_init
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - qmux_stream_rx_bufsz
    - quic_dflt_transport_params_cpy
    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:115,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:118,1
    - Dst: write_n16
      Src: /src/haproxy/src/quic_tp.c:121,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:124,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:129,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:133,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: 135
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 135
    functionName: quic_transport_param_enc_pref_addr_val
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - write_n16
    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:153,1
    - Dst: read_n16
      Src: /src/haproxy/src/quic_tp.c:156,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:159,1
    - Dst: read_n16
      Src: /src/haproxy/src/quic_tp.c:162,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:172,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:179,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: 183
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 183
    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:203,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_tp.c:203,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_tp.c:213,1
    - Dst: ntohl
      Src: /src/haproxy/src/quic_tp.c:235,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_tp.c:235,1
    - Dst: ntohl
      Src: /src/haproxy/src/quic_tp.c:242,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_tp.c:242,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: 252
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 252
    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: 48
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:281,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:291,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:303,1
    - Dst: quic_transport_param_dec_pref_addr
      Src: /src/haproxy/src/quic_tp.c:312,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:335,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:339,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:343,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:347,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:351,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:355,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:359,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:372,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:391,1
    - Dst: quic_transport_param_dec_version_info
      Src: /src/haproxy/src/quic_tp.c:395,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:408,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 112
    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: 417
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 417
    functionName: quic_transport_param_decode
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    - quic_transport_param_dec_pref_addr
    - memcpy
    - quic_transport_param_dec_version_info
    linkageType: ''
    returnType: enum quic_tp_dec_err
    signature: "enum quic_tp_dec_err 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:426,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_tp.c:426,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: 427
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 427
    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:437,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_tp.c:437,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: 438
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 438
    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:446,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:453,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: 457
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 457
    functionName: quic_transport_param_enc_mem
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - quic_transport_param_encode_type_len
    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:468,1
    - Dst: quic_transport_param_encode_type_len
      Src: /src/haproxy/src/quic_tp.c:470,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_tp.c:471,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: 472
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 472
    functionName: quic_transport_param_enc_int
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_enc_int
    - quic_transport_param_encode_type_len
    - quic_int_getsize
    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: 478
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 478
    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:491,1
    - Dst: quic_transport_param_encode_type_len
      Src: /src/haproxy/src/quic_tp.c:494,1
    - Dst: quic_transport_param_enc_pref_addr_val
      Src: /src/haproxy/src/quic_tp.c:500,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: 503
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 503
    functionName: quic_transport_param_enc_pref_addr
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - sizeof_quic_cid
    - quic_transport_param_enc_pref_addr_val
    - quic_transport_param_encode_type_len
    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:519,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:528,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:529,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:534,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:535,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:540,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:541,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:543,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:544,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tp.c:546,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:547,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: 552
      start: 509
    functionDepth: 2
    functionLinenumber: 509
    functionLinenumberEnd: 552
    functionName: quic_transport_param_enc_version_info
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - memcpy
    - htonl
    - quic_transport_param_encode_type_len
    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:570,1
    - Dst: quic_transport_param_enc_mem
      Src: /src/haproxy/src/quic_tp.c:577,1
    - Dst: quic_transport_param_enc_mem
      Src: /src/haproxy/src/quic_tp.c:585,1
    - Dst: quic_transport_param_enc_pref_addr
      Src: /src/haproxy/src/quic_tp.c:590,1
    - Dst: quic_transport_param_enc_mem
      Src: /src/haproxy/src/quic_tp.c:594,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:601,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:609,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:613,1
    - Dst: quic_transport_param_enc_int
      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_int
      Src: /src/haproxy/src/quic_tp.c:627,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:632,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:637,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:646,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:654,1
    - Dst: quic_transport_param_encode_type_len
      Src: /src/haproxy/src/quic_tp.c:659,1
    - Dst: quic_transport_param_enc_int
      Src: /src/haproxy/src/quic_tp.c:664,1
    - Dst: quic_transport_param_enc_version_info
      Src: /src/haproxy/src/quic_tp.c:668,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: 672
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 672
    functionName: quic_transport_params_encode
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_transport_param_enc_pref_addr
    - quic_transport_param_encode_type_len
    - quic_transport_param_enc_mem
    - quic_transport_param_enc_int
    - quic_transport_param_enc_version_info
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: quic_transport_param_decode_type_len
      Src: /src/haproxy/src/quic_tp.c:690,1
    - Dst: quic_transport_param_decode
      Src: /src/haproxy/src/quic_tp.c:696,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - p
    - server
    - buf
    - end
    argTypes:
    - struct quic_transport_params*
    - int
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 679
    functionDepth: 3
    functionLinenumber: 679
    functionLinenumberEnd: 726
    functionName: quic_transport_params_decode
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_transport_param_decode_type_len
    - quic_transport_param_decode
    linkageType: ''
    returnType: enum quic_tp_dec_err
    signature: "enum quic_tp_dec_err quic_transport_params_decode(struct quic_transport_params
      *p, int server,\n                             const unsigned char *buf, const
      unsigned char *end)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: quic_dflt_transport_params_cpy
      Src: /src/haproxy/src/quic_tp.c:750,1
    - Dst: quic_transport_params_decode
      Src: /src/haproxy/src/quic_tp.c:752,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tp.c:754,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_tp.c:755,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_tp.c:755,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tp.c:759,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_tp.c:766,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_tp.c:767,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_tp.c:767,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tp.c:768,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_tp.c:784,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_tp.c:787,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:788,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_tp.c:795,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:796,1
    - Dst: qc_kill_conn
      Src: /src/haproxy/src/quic_tp.c:799,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 33
    argCount: 4
    argNames:
    - qc
    - server
    - buf
    - end
    argTypes:
    - struct quic_conn*
    - int
    - unsigned char*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 739
    functionDepth: 4
    functionLinenumber: 739
    functionLinenumberEnd: 803
    functionName: quic_transport_params_store
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - quic_err_transport
    - quic_dflt_transport_params_cpy
    - qc_kill_conn
    - memcmp
    - QUIC_MAX
    - quic_transport_params_decode
    - TRACE_ERROR
    - TRACE_PROTO
    - quic_set_connection_close
    - 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)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:825,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:829,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:832,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:836,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tp.c:841,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    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: 846
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 846
    functionName: qc_lstnr_params_init
    functionSourceFile: /src/haproxy/src/quic_tp.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - 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:862,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tp.c:864,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: 865
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 865
    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: 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:
    - strlen
    - find_http_meth
    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:
    - strncasecmp
    - strncmp
    - list_for_each_entry
    linkageType: ''
    returnType: struct pattern
    signature: struct pattern *pat_match_meth(struct sample *smp, struct pattern_expr
      *expr, int fill)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/xprt_quic.c:27,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/xprt_quic.c:38,1
    - Dst: qc_check_close_on_released_mux
      Src: /src/haproxy/src/xprt_quic.c:47,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: quic_close
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - quic_conn_release
    - qc_check_close_on_released_mux
    - TRACE_ENTER
    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:61,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_quic.c:63,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/xprt_quic.c:64,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/xprt_quic.c:74,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/xprt_quic.c:77,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:79,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: 82
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 82
    functionName: quic_conn_subscribe
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ENTER
    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:92,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/xprt_quic.c:95,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/xprt_quic.c:97,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:105,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: 108
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 108
    functionName: quic_conn_unsubscribe
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_LEAVE
    - TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int quic_conn_unsubscribe(struct connection *conn, void *xprt_ctx,
      int event_type, struct wait_event *es)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/xprt_quic.c:118,1
    - Dst: objt_listener
      Src: /src/haproxy/src/xprt_quic.c:120,1
    - Dst: objt_server
      Src: /src/haproxy/src/xprt_quic.c:125,1
    - Dst: qc_new_conn
      Src: /src/haproxy/src/xprt_quic.c:126,1
    - Dst: qc_finalize_tid_rebind
      Src: /src/haproxy/src/xprt_quic.c:138,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 150
    functionName: qc_conn_init
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - objt_server
    - qc_new_conn
    - TRACE_ENTER
    - objt_listener
    - qc_finalize_tid_rebind
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qc_conn_init(struct connection *conn, void **xprt_ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/xprt_quic.c:159,1
    - Dst: objt_listener
      Src: /src/haproxy/src/xprt_quic.c:161,1
    - Dst: qc_ssl_do_hanshake
      Src: /src/haproxy/src/xprt_quic.c:169,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/xprt_quic.c:177,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/xprt_quic.c:178,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/xprt_quic.c:182,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - conn
    - ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 184
    functionName: qc_xprt_start
    functionSourceFile: /src/haproxy/src/xprt_quic.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - qc_is_back
    - TRACE_ENTER
    - objt_listener
    - qc_ssl_do_hanshake
    - TRACE_LEAVE
    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:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    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:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: xprt_register
      Src: /src/haproxy/src/xprt_quic.c:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 219
    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                  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:
    - cshared_add
    - QUIC_MAX
    - 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:
    - quic_cwnd_may_increase
    - QUIC_MAX
    - quic_cc_max_win_ratio
    - cshared_add
    - QUIC_MIN
    linkageType: ''
    returnType: void
    signature: void quic_cc_path_inc(struct quic_cc_path *path, uint64_t val)
  - 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:
    - addr_to_str
    - snprintf
    - setsockopt
    - listener_set_state
    - get_host_port
    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:
    - fd_stop_recv
    - connect
    - getsockname
    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:
    - snprintf
    - listener_set_state
    - ha_free
    - sa2str
    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
    - LIST_ELEM
    - uxdg_disable_listener
    linkageType: ''
    returnType: int
    signature: int uxdg_suspend_receiver(struct receiver *rx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_init
      Src: /src/haproxy/src/chunk.c:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: get_trash_chunk
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 16
    functionsReached:
    - chunk_init
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *get_trash_chunk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_init
      Src: /src/haproxy/src/chunk.c:70,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:70,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:72,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/chunk.c:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - bufsize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: alloc_trash_buffers
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - my_realloc2
    - chunk_init
    linkageType: ''
    returnType: int
    signature: int alloc_trash_buffers(int bufsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_buffers
      Src: /src/haproxy/src/chunk.c:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: alloc_trash_buffers_per_thread
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - alloc_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:84,1
    - Dst: ha_free
      Src: /src/haproxy/src/chunk.c:85,1
    - Dst: ha_free
      Src: /src/haproxy/src/chunk.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    functionName: free_trash_buffers_per_thread
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - ha_free
    linkageType: ''
    returnType: void
    signature: void free_trash_buffers_per_thread()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pool_evict_from_local_cache
      Src: /src/haproxy/src/chunk.c:95,1
    - Dst: pool_flush
      Src: /src/haproxy/src/chunk.c:96,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/chunk.c:99,1
    - Dst: pool_used
      Src: /src/haproxy/src/chunk.c:99,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/chunk.c:100,1
    - Dst: create_pool
      Src: /src/haproxy/src/chunk.c:101,1
    - Dst: alloc_trash_buffers
      Src: /src/haproxy/src/chunk.c:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - first
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 107
    functionName: init_trash_buffers
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - pool_flush
    - pool_used
    - BUG_ON
    - pool_destroy
    - pool_evict_from_local_cache
    - create_pool
    - alloc_trash_buffers
    linkageType: ''
    returnType: int
    signature: int init_trash_buffers(int first)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_trash_buffers
      Src: /src/haproxy/src/chunk.c:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 116
    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:131,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/chunk.c:132,1
    - Dst: va_end
      Src: /src/haproxy/src/chunk.c:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - chk
    - fmt
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 140
    functionName: chunk_printf
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 3
    functionsReached:
    - vsnprintf
    - va_end
    - va_start
    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:160,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/chunk.c:161,1
    - Dst: va_end
      Src: /src/haproxy/src/chunk.c:167,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - chk
    - fmt
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 169
    functionName: chunk_appendf
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 16
    functionsReached:
    - vsnprintf
    - va_end
    - va_start
    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:194,1
    - Dst: isprint
      Src: /src/haproxy/src/chunk.c:194,1
    - Dst: snprintf
      Src: /src/haproxy/src/chunk.c:195,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 211
    functionName: chunk_htmlencode
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 1
    functionsReached:
    - snprintf
    - isascii
    - isprint
    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:236,1
    - Dst: isprint
      Src: /src/haproxy/src/chunk.c:236,1
    - Dst: snprintf
      Src: /src/haproxy/src/chunk.c:237,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - dst
    - src
    - qc
    argTypes:
    - struct buffer*
    - struct buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 253
    functionName: chunk_asciiencode
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - snprintf
    - isascii
    - isprint
    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: 273
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 273
    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:291,1
    - Dst: likely
      Src: /src/haproxy/src/chunk.c:298,1
    - Dst: likely
      Src: /src/haproxy/src/chunk.c:300,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - chk
    - str
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 307
    functionName: chunk_strcasecmp
    functionSourceFile: /src/haproxy/src/chunk.c
    functionUses: 0
    functionsReached:
    - likely
    - unlikely
    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: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - pool_free
    - pipe
    - fcntl
    - pool_alloc
    - HA_SPIN_LOCK
    - likely
    - HA_SPIN_UNLOCK
    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:
    - pool_free
    - HA_ATOMIC_DEC
    - close
    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: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - unlikely
    - HA_SPIN_LOCK
    - likely
    - HA_SPIN_UNLOCK
    - kill_pipe
    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:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn_id
    argTypes:
    - struct quic_connection_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 53
    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:75,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:83,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:85,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:92,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:94,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_cid.c:100,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:104,1
    - Dst: XXH64
      Src: /src/haproxy/src/quic_cid.c:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 2
    argNames:
    - orig
    - addr
    argTypes:
    - struct quic_cid*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 115
    functionName: quic_derive_cid
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - XXH64
    - ABORT_NOW
    - memcpy
    linkageType: ''
    returnType: struct quic_cid
    signature: "struct quic_cid quic_derive_cid(const struct quic_cid *orig,\n                                       const
      struct sockaddr_storage *addr)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cid.c:132,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_cid.c:135,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_cid.c:137,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:139,1
    - Dst: quic_newcid_from_hash64
      Src: /src/haproxy/src/quic_cid.c:147,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_cid.c:149,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:151,1
    - Dst: quic_derive_cid
      Src: /src/haproxy/src/quic_cid.c:157,1
    - Dst: quic_stateless_reset_token_init
      Src: /src/haproxy/src/quic_cid.c:160,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:161,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/quic_cid.c:166,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_cid.c:172,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:174,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_cid.c:178,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:179,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - root
    - qc
    - orig
    - addr
    argTypes:
    - struct eb_root*
    - struct quic_conn*
    - struct quic_cid*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 181
    functionName: new_quic_cid
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - quic_newcid_from_hash64
    - HA_ATOMIC_STORE
    - pool_free
    - eb64_insert
    - BUG_ON
    - quic_stateless_reset_token_init
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - RAND_bytes
    - quic_derive_cid
    - TRACE_LEAVE
    linkageType: ''
    returnType: struct quic_connection_id
    signature: "struct quic_connection_id *new_quic_cid(struct eb_root *root,\n                                        struct
      quic_conn *qc,\n                                        const struct quic_cid
      *orig,\n                                        const struct sockaddr_storage
      *addr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: quic_cid_tree_idx
      Src: /src/haproxy/src/quic_cid.c:196,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/quic_cid.c:198,1
    - Dst: ebmb_insert
      Src: /src/haproxy/src/quic_cid.c:199,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:202,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_cid.c:203,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/quic_cid.c:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - conn_id
    - new_tid
    argTypes:
    - struct quic_connection_id*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 212
    functionName: quic_cid_insert
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - ebmb_insert
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - quic_cid_tree_idx
    - HA_ATOMIC_LOAD
    - ebmb_entry
    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:227,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:228,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:229,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:231,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:235,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: 238
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 238
    functionName: quic_cmp_cid_conn
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - _quic_cid_tree_idx
    - HA_RWLOCK_RDUNLOCK
    - ebmb_entry
    - ebmb_lookup
    - HA_RWLOCK_RDLOCK
    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:257,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:258,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:259,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:261,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_cid.c:262,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:264,1
    - Dst: qc_parse_hd_form
      Src: /src/haproxy/src/quic_cid.c:273,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_cid.c:282,1
    - Dst: quic_derive_cid
      Src: /src/haproxy/src/quic_cid.c:284,1
    - Dst: quic_cid_tree_idx
      Src: /src/haproxy/src/quic_cid.c:286,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:287,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:288,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:290,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_cid.c:291,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:293,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: 298
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 298
    functionName: quic_get_cid_tid
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 1
    functionsReached:
    - _quic_cid_tree_idx
    - quic_cid_tree_idx
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_RDUNLOCK
    - memcpy
    - quic_derive_cid
    - ebmb_entry
    - ebmb_lookup
    - qc_parse_hd_form
    - 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:316,1
    - Dst: _quic_cid_tree_idx
      Src: /src/haproxy/src/quic_cid.c:320,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:321,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:322,1
    - Dst: quic_derive_cid
      Src: /src/haproxy/src/quic_cid.c:330,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:332,1
    - Dst: quic_cid_tree_idx
      Src: /src/haproxy/src/quic_cid.c:334,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/quic_cid.c:335,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/quic_cid.c:336,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/quic_cid.c:342,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_cid.c:343,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_cid.c:349,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/quic_cid.c:352,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:353,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - pkt
    - saddr
    - new_tid
    argTypes:
    - struct quic_rx_packet*
    - struct sockaddr_storage*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 355
    functionName: retrieve_qc_conn_from_cid
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - _quic_cid_tree_idx
    - TRACE_DEVEL
    - quic_cid_tree_idx
    - TRACE_ENTER
    - HA_RWLOCK_RDUNLOCK
    - HA_ATOMIC_LOAD
    - quic_derive_cid
    - ebmb_entry
    - TRACE_LEAVE
    - ebmb_lookup
    - 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:368,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_cid.c:371,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_cid.c:373,1
    - Dst: quic_connection_id_to_frm_cpy
      Src: /src/haproxy/src/quic_cid.c:377,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_cid.c:378,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cid.c:381,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: 383
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 383
    functionName: qc_build_new_connection_id_frm
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - quic_connection_id_to_frm_cpy
    - TRACE_ENTER
    - LIST_APPEND
    - TRACE_ERROR
    - qc_frm_alloc
    - TRACE_LEAVE
    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:389,1
    - Dst: ha_alert
      Src: /src/haproxy/src/quic_cid.c:391,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/quic_cid.c:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 401
    functionName: quic_alloc_global_cid_tree
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - calloc
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int quic_alloc_global_cid_tree(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/quic_cid.c:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 408
    functionName: quic_deallocate_global_cid_tree
    functionSourceFile: /src/haproxy/src/quic_cid.c
    functionUses: 0
    functionsReached:
    - ha_free
    linkageType: ''
    returnType: int
    signature: int quic_deallocate_global_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
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - fwrr_dequeue_srv
    - fwrr_remove_from_tree
    - update_backend_weight
    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
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - fwrr_get_srv
    - srv_lb_commit_status
    - fwrr_queue_srv
    - update_backend_weight
    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
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - fwrr_set_server_status_up
    - srv_lb_commit_status
    - fwrr_dequeue_srv
    - fwrr_get_srv
    - fwrr_set_server_status_down
    - fwrr_queue_srv
    - update_backend_weight
    - fwrr_queue_by_weight
    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:309,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_fwrr.c:312,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwrr.c:313,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwrr.c:340,1
    - Dst: fwrr_queue_by_weight
      Src: /src/haproxy/src/lb_fwrr.c:344,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwrr.c:352,1
    - Dst: fwrr_queue_by_weight
      Src: /src/haproxy/src/lb_fwrr.c:354,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 360
    functionName: fwrr_init_server_groups
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached:
    - recount_servers
    - srv_currently_usable
    - srv_lb_commit_status
    - update_backend_weight
    - fwrr_queue_by_weight
    linkageType: ''
    returnType: void
    signature: void fwrr_init_server_groups(struct proxy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_fwrr.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 369
    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:394,1
    - Dst: fwrr_remove_from_tree
      Src: /src/haproxy/src/lb_fwrr.c:395,1
    - Dst: fwrr_queue_by_weight
      Src: /src/haproxy/src/lb_fwrr.c:403,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/lb_fwrr.c:416,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 419
    functionName: fwrr_queue_srv
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 2
    functionsReached:
    - fwrr_remove_from_tree
    - srv_willbe_usable
    - fwrr_queue_by_weight
    - eb32_insert
    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: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    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: 441
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 441
    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: 454
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 454
    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:469,1
    - Dst: fwrr_get_srv_next
      Src: /src/haproxy/src/lb_fwrr.c:472,1
    - Dst: fwrr_get_srv_down
      Src: /src/haproxy/src/lb_fwrr.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - s
    - tgid
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 477
    functionName: fwrr_get_srv
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 2
    functionsReached:
    - fwrr_get_srv_next
    - fwrr_get_srv_init
    - fwrr_get_srv_down
    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: 492
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 492
    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:507,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_fwrr.c:509,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_fwrr.c:519,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_fwrr.c:521,1
    - Dst: fwrr_get_srv_init
      Src: /src/haproxy/src/lb_fwrr.c:524,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - grp
    argTypes:
    - struct fwrr_group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 529
    functionName: fwrr_get_server_from_group
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached:
    - fwrr_get_srv_init
    - eb32_first
    - eb32_entry
    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: 556
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 556
    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:571,1
    - Dst: fwrr_get_server_from_group
      Src: /src/haproxy/src/lb_fwrr.c:601,1
    - Dst: fwrr_switch_trees
      Src: /src/haproxy/src/lb_fwrr.c:612,1
    - Dst: fwrr_update_position
      Src: /src/haproxy/src/lb_fwrr.c:620,1
    - Dst: fwrr_dequeue_srv
      Src: /src/haproxy/src/lb_fwrr.c:621,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_fwrr.c:623,1
    - Dst: fwrr_queue_srv
      Src: /src/haproxy/src/lb_fwrr.c:639,1
    - Dst: unlikely
      Src: /src/haproxy/src/lb_fwrr.c:647,1
    - Dst: likely
      Src: /src/haproxy/src/lb_fwrr.c:654,1
    - Dst: fwrr_queue_by_weight
      Src: /src/haproxy/src/lb_fwrr.c:655,1
    - Dst: likely
      Src: /src/haproxy/src/lb_fwrr.c:663,1
    - Dst: fwrr_queue_srv
      Src: /src/haproxy/src/lb_fwrr.c:664,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_fwrr.c:670,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 76
    argCount: 2
    argNames:
    - p
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 672
    functionName: fwrr_get_next_server
    functionSourceFile: /src/haproxy/src/lb_fwrr.c
    functionUses: 0
    functionsReached:
    - fwrr_switch_trees
    - srv_dynamic_maxconn
    - HA_RWLOCK_WRLOCK
    - unlikely
    - HA_RWLOCK_WRUNLOCK
    - fwrr_get_server_from_group
    - fwrr_dequeue_srv
    - fwrr_queue_srv
    - likely
    - fwrr_queue_by_weight
    - fwrr_update_position
    linkageType: ''
    returnType: struct server
    signature: struct server *fwrr_get_next_server(struct proxy *p, struct server
      *srvtoavoid)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:281,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:284,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:287,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:290,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:293,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:296,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:300,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h1.c:303,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 37
    argCount: 3
    argNames:
    - data
    - stats
    - selected_field
    argTypes:
    - void*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 319
    functionName: h1_fill_stats
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - mkf_u64
    linkageType: ''
    returnType: int
    signature: int h1_fill_stats(void *data, 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: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    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:381,1
    - Dst: h1c_st_to_str
      Src: /src/haproxy/src/mux_h1.c:381,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:385,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:386,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:386,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:389,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:391,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:402,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_h1.c:405,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:406,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h1.c:407,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:408,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:411,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/mux_h1.c:412,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/mux_h1.c:412,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/mux_h1.c:413,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/mux_h1.c:413,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/mux_h1.c:414,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/mux_h1.c:414,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:418,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:420,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:421,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:423,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h1.c:424,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_h1.c:425,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:425,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:425,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:427,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h1.c:428,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_h1.c:429,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:429,1
    - Dst: TICKS_TO_MS
      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:433,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_h1.c:434,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:435,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:436,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:436,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:436,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:446,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:447,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:447,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h1.c:448,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:448,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:451,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:452,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:452,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h1.c:453,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:453,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:456,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:475,1
    - Dst: htx_dump
      Src: /src/haproxy/src/mux_h1.c:476,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: 478
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 478
    functionName: h1_trace
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - HTX_SL_P2_LEN
    - htx_dump
    - htx_get_blk_ptr
    - h1s_sc
    - tick_is_expired
    - htx_get_head_blk
    - chunk_appendf
    - human_time
    - htx_get_blk_type
    - b_data
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - HTX_SL_P2_PTR
    - h1c_st_to_str
    - b_head_ofs
    - htx_nbblks
    - HTX_SL_P1_LEN
    - b_size
    - chunk_memcat
    - se_fl_get
    - b_orig
    - HTX_SL_P3_LEN
    - h1m_state_str
    - TICKS_TO_MS
    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:502,1
    - Dst: sc_strm
      Src: /src/haproxy/src/mux_h1.c:503,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:503,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: 505
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 505
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:527,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:533,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:538,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 543
    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:561,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:564,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:568,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:571,1
    - Dst: h1_recv_allowed
      Src: /src/haproxy/src/mux_h1.c:574,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:575,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:576,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 580
    functionName: h1_buf_available
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_wake_stream_for_send
    - tasklet_wakeup
    - h1_recv_allowed
    - 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:593,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h1.c:593,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_h1.c:595,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 602
    functionName: h1_get_ibuf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - unlikely
    - 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:612,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h1.c:612,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_h1.c:614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 621
    functionName: h1_get_obuf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - unlikely
    - 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:632,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h1.c:632,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_h1.c:634,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 641
    functionName: h1_get_rxbuf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - unlikely
    - 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:650,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h1.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h1c
    - bptr
    argTypes:
    - struct h1c*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 653
    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:661,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: 662
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 662
    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: 670
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 670
    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:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 679
    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: 691
      start: 686
    functionDepth: 0
    functionLinenumber: 686
    functionLinenumberEnd: 691
    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:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 697
    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:705,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:710,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:711,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:714,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:716,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:717,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:721,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:721,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:722,1
    - Dst: tick_first
      Src: /src/haproxy/src/mux_h1.c:727,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:727,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:728,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:737,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:741,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h1.c:749,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/mux_h1.c:754,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_h1.c:758,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h1.c:758,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:759,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h1.c:766,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:769,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_h1.c:770,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 772
    functionName: h1_refresh_timeout
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - tick_add
    - statistical_prng_range
    - b_data
    - task_wakeup
    - tick_remain
    - tick_isset
    - task_queue
    - tick_add_ifset
    - tick_is_le
    - h1_is_alive
    - tick_first
    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:777,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:782,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:784,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:785,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:786,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:787,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:790,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:791,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:796,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:797,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:798,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:803,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 805
    functionName: h1_set_idle_expiration
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_data
    - tick_add_ifset
    - 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:823,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 3
    argCount: 2
    argNames:
    - h1s
    - h1m
    argTypes:
    - struct h1s*
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 817
    functionDepth: 1
    functionLinenumber: 817
    functionLinenumberEnd: 824
    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:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 833
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:846,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:849,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:851,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/mux_h1.c:853,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:854,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:859,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:860,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:863,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - h1s
    - input
    argTypes:
    - struct h1s*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 865
    functionName: h1s_new_sc
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - se_fl_set
    - h1s_sc
    - TRACE_ENTER
    - TRACE_ERROR
    - sc_new_from_endp
    - TRACE_LEAVE
    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:869,1
    - Dst: stream_upgrade_from_sc
      Src: /src/haproxy/src/mux_h1.c:871,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:871,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:872,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:876,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:879,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:880,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:883,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - h1s
    - input
    argTypes:
    - struct h1s*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 885
    functionName: h1s_upgrade_sc
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h1s_sc
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - stream_upgrade_from_sc
    - TRACE_LEAVE
    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:891,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h1.c:893,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:895,1
    - Dst: memset
      Src: /src/haproxy/src/mux_h1.c:905,1
    - Dst: h1m_init_req
      Src: /src/haproxy/src/mux_h1.c:907,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/mux_h1.c:910,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:920,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:924,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 926
    functionName: h1s_new
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - memset
    - h1m_init_req
    - h1m_init_res
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - TRACE_LEAVE
    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:932,1
    - Dst: h1s_new
      Src: /src/haproxy/src/mux_h1.c:934,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_h1.c:939,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/mux_h1.c:944,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:949,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:957,1
    - Dst: se_expect_no_data
      Src: /src/haproxy/src/mux_h1.c:958,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:964,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:965,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:968,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:970,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:971,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:975,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:976,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: 978
      start: 928
    functionDepth: 2
    functionLinenumber: 928
    functionLinenumberEnd: 978
    functionName: h1c_frt_stream_new
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1s_new
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - se_fl_set
    - h1s_destroy
    - sedesc_new
    - TRACE_STATE
    - TRACE_ENTER
    - se_expect_no_data
    - h1_set_idle_expiration
    - sc_attach_mux
    - TRACE_LEAVE
    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:984,1
    - Dst: h1s_new
      Src: /src/haproxy/src/mux_h1.c:986,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_h1.c:990,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:998,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1004,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1005,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1007,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:1008,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1012,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:1013,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: 1015
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 1015
    functionName: h1c_bck_stream_new
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1s_new
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - se_fl_set
    - h1s_destroy
    - TRACE_STATE
    - TRACE_ENTER
    - sc_attach_mux
    - TRACE_LEAVE
    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:1022,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:1028,1
    - Dst: h1_is_alive
      Src: /src/haproxy/src/mux_h1.c:1036,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1042,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:1045,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1046,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/mux_h1.c:1049,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:1050,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:1050,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_h1.c:1051,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h1.c:1052,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1017
    functionDepth: 2
    functionLinenumber: 1017
    functionLinenumberEnd: 1054
    functionName: h1s_destroy
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_DEC
    - pool_free
    - se_fl_test
    - h1_close
    - TRACE_STATE
    - BUG_ON
    - h1_is_alive
    - TRACE_POINT
    - h1_release_buf
    - 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:1066,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:1068,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1069,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1073,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1077,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1081,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1085,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1090,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:1094,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1096
    functionName: h1s_must_shut_conn
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - se_fl_test
    - TRACE_STATE
    - TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int h1s_must_shut_conn(struct h1s *h1s)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:1109,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:1120,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1134,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:1135,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:1136,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1137,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_h1.c:1143,1
    - Dst: struct h1c*::conn::mux::destroy
      Src: /src/haproxy/src/mux_h1.c:1146,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h1.c:1155,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:1156,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h1.c:1157,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_h1.c:1160,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1161,1
    - Dst: struct h1c*::conn::mux::destroy
      Src: /src/haproxy/src/mux_h1.c:1162,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h1.c:1179,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:1180,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h1.c:1181,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_h1.c:1183,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h1.c:1183,1
    - Dst: struct h1c*::conn::mux::destroy
      Src: /src/haproxy/src/mux_h1.c:1185,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1186,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1201,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1203,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:1204,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:1212,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1212,1
    - Dst: h1_process
      Src: /src/haproxy/src/mux_h1.c:1213,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:1219,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:1221,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:1222,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:1225,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1229,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 81
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1103
    functionDepth: 3
    functionLinenumber: 1103
    functionLinenumberEnd: 1231
    functionName: h1s_finish_detach
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - struct h1c*::conn::xprt::subscribe
    - unlikely
    - h1_release
    - session_add_conn
    - h1_release_buf
    - TRACE_LEAVE
    - h1_process
    - h1s_destroy
    - b_data
    - struct h1c*::conn::mux::destroy
    - xprt_set_idle
    - HA_ATOMIC_OR
    - h1_refresh_timeout
    - h1_close
    - h1_set_idle_expiration
    - objt_server
    - TRACE_ENTER
    - session_check_idle_conn
    - srv_add_to_idle_list
    linkageType: ''
    returnType: int
    signature: int h1s_finish_detach(struct h1s *h1s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:1249,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h1.c:1251,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:1253,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h1.c:1269,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h1.c:1270,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h1.c:1278,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:1281,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h1.c:1284,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:1288,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h1.c:1291,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h1.c:1294,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h1.c:1298,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:1300,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h1.c:1306,1
    - Dst: h1c_bck_stream_new
      Src: /src/haproxy/src/mux_h1.c:1312,1
    - Dst: h1c_frt_stream_new
      Src: /src/haproxy/src/mux_h1.c:1317,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1322,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:1327,1
    - Dst: tick_first
      Src: /src/haproxy/src/mux_h1.c:1328,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_h1.c:1329,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1333,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:1334,1
    - Dst: h1_recv_allowed
      Src: /src/haproxy/src/mux_h1.c:1335,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:1336,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h1.c:1338,1
    - Dst: proxy_inc_fe_cum_sess_ver_ctr
      Src: /src/haproxy/src/mux_h1.c:1339,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1340,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:1341,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:1344,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h1.c:1348,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h1.c:1349,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h1.c:1350,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h1.c:1352,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h1.c:1353,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1355,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 91
    argCount: 4
    argNames:
    - conn
    - proxy
    - sess
    - input
    argTypes:
    - struct connection*
    - struct proxy*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1242
    functionDepth: 3
    functionLinenumber: 1242
    functionLinenumberEnd: 1357
    functionName: h1_init
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - struct h1c*::conn::xprt::subscribe
    - pool_free
    - h1_recv_allowed
    - EXTRA_COUNTERS_GET
    - pool_alloc
    - task_destroy
    - TRACE_LEAVE
    - proxy_inc_fe_cum_sess_ver_ctr
    - tasklet_free
    - b_data
    - tick_isset
    - LIST_INIT
    - tick_add_ifset
    - h1c_frt_stream_new
    - tasklet_wakeup
    - LIST_DEL_INIT
    - LIST_APPEND
    - h1_set_idle_expiration
    - task_new_here
    - h1c_bck_stream_new
    - tasklet_new
    - TRACE_ENTER
    - TRACE_ERROR
    - task_queue
    - conn_is_back
    - tick_first
    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:1366,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1373,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h1.c:1376,1
    - Dst: conn_upgrade_mux_fe
      Src: /src/haproxy/src/mux_h1.c:1378,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1378,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:1383,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:1384,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:1387,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1387,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:1388,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1388,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/mux_h1.c:1390,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:1391,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:1392,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h1.c:1396,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h1.c:1401,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:1405,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h1.c:1408,1
    - Dst: h1_shutw_conn
      Src: /src/haproxy/src/mux_h1.c:1410,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/mux_h1.c:1413,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h1.c:1414,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1419,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/mux_h1.c:1421,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/mux_h1.c:1422,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/mux_h1.c:1424,1
    - Dst: conn_free
      Src: /src/haproxy/src/mux_h1.c:1425,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1362
    functionDepth: 4
    functionLinenumber: 1362
    functionLinenumberEnd: 1427
    functionName: h1_release
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - h1_shutw_conn
    - HA_ATOMIC_DEC
    - pool_free
    - conn_full_close
    - task_wakeup
    - h1_release_buf
    - tasklet_free
    - h1s_destroy
    - b_data
    - b_dequeue
    - conn_upgrade_mux_fe
    - sess_log
    - COUNT_IF
    - struct connection*::xprt::unsubscribe
    - conn_free
    - ist
    - struct connection*::destroy_cb
    - conn_stop_tracking
    - TRACE_ERROR
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void h1_release(struct h1c *h1c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/mux_h1.c:1437,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/mux_h1.c:1439,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - h1m
    - sl
    argTypes:
    - struct h1m*
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1435
    functionDepth: 1
    functionLinenumber: 1435
    functionLinenumberEnd: 1443
    functionName: h1_parse_req_vsn
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_VPTR
    - HTX_SL_REQ_VLEN
    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:1450,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/mux_h1.c:1452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 3
    argCount: 2
    argNames:
    - h1m
    - sl
    argTypes:
    - struct h1m*
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1448
    functionDepth: 1
    functionLinenumber: 1448
    functionLinenumberEnd: 1456
    functionName: h1_parse_res_vsn
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - HTX_SL_RES_VPTR
    - HTX_SL_RES_VLEN
    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:1481,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1490,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1496,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1505,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:1520,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h1.c:1521,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h1.c:1526,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1534,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 35
    argCount: 2
    argNames:
    - h1s
    - h1m
    argTypes:
    - struct h1s*
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1463
    functionDepth: 1
    functionLinenumber: 1463
    functionLinenumberEnd: 1537
    functionName: h1_set_cli_conn_mode
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - statistical_prng_range
    - TRACE_STATE
    - tick_remain
    - tick_isset
    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:1564,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1574,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1583,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1591,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1598,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 26
    argCount: 2
    argNames:
    - h1s
    - h1m
    argTypes:
    - struct h1s*
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1600
    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:1614,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1615,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1620,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1621,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: 1624
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1624
    functionName: h1_update_req_conn_value
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - ist
    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:1637,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1638,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1643,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1644,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: 1647
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1647
    functionName: h1_update_res_conn_value
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - ist
    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:1652,1
    - Dst: h1_set_srv_conn_mode
      Src: /src/haproxy/src/mux_h1.c:1654,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: 1655
      start: 1649
    functionDepth: 2
    functionLinenumber: 1649
    functionLinenumberEnd: 1655
    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:1660,1
    - Dst: h1_set_srv_conn_mode
      Src: /src/haproxy/src/mux_h1.c:1662,1
    - Dst: h1_update_req_conn_value
      Src: /src/haproxy/src/mux_h1.c:1665,1
    - Dst: h1_update_res_conn_value
      Src: /src/haproxy/src/mux_h1.c:1667,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: 1668
      start: 1657
    functionDepth: 2
    functionLinenumber: 1657
    functionLinenumberEnd: 1668
    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:1679,1
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/mux_h1.c:1690,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h1.c:1693,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: 1696
      start: 1673
    functionDepth: 1
    functionLinenumber: 1673
    functionLinenumberEnd: 1696
    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:1704,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:1709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - es
    argTypes:
    - struct buffer*
    - struct error_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1711
    functionName: h1_show_error_snapshot
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - h1m_state_str
    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:1730,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:1730,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/mux_h1.c:1732,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:1732,1
    - Dst: proxy_capture_error
      Src: /src/haproxy/src/mux_h1.c:1746,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: 1750
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1750
    functionName: h1_capture_bad_message
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - proxy_capture_error
    - __sc_strm
    - h1s_sc
    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:1765,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:1780,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - buf
    - chksz
    - length
    argTypes:
    - struct buffer*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1761
    functionDepth: 1
    functionLinenumber: 1761
    functionLinenumberEnd: 1781
    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, size_t chksz, size_t
      length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:1798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - chksz
    argTypes:
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1799
    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, size_t chksz)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/mux_h1.c:1809,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:1813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1814
    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:1821,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1821,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h1.c:1822,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:1822,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:1823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1824
      start: 1819
    functionDepth: 1
    functionLinenumber: 1819
    functionLinenumberEnd: 1824
    functionName: h1_append_chunk_crlf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_data
    - b_peek
    - 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:1840,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:1844,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1845,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:1849,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1830
    functionDepth: 1
    functionLinenumber: 1830
    functionLinenumberEnd: 1852
    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:1873,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/mux_h1.c:1874,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/mux_h1.c:1875,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:1876,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h1.c:1884,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:1885,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h1.c:1888,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1888,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h1.c:1894,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h1.c:1898,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1898,1
    - Dst: h1_calculate_ws_output_key
      Src: /src/haproxy/src/mux_h1.c:1905,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h1.c:1906,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:1906,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: 1919
      start: 1866
    functionDepth: 1
    functionLinenumber: 1866
    functionLinenumberEnd: 1919
    functionName: h1_search_websocket_key
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - htx_get_head
    - htx_get_blk_value
    - h1_calculate_ws_output_key
    - htx_get_blk_type
    - htx_get_blk_name
    - isteqi
    - htx_get_next
    - htx_get_blk
    - memcpy
    - ist
    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:1933,1
    - Dst: h1_parse_msg_hdrs
      Src: /src/haproxy/src/mux_h1.c:1940,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:1942,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:1947,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:1948,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:1951,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:1972,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:1973,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:1988,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:1989,1
    - Dst: h1_search_websocket_key
      Src: /src/haproxy/src/mux_h1.c:1997,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2000,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2006,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2012,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2024,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2025,1
    - Dst: h1_process_input_conn_mode
      Src: /src/haproxy/src/mux_h1.c:2038,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2042,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 79
    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: 2044
      start: 1927
    functionDepth: 3
    functionLinenumber: 1927
    functionLinenumberEnd: 2044
    functionName: h1_handle_headers
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h1_parse_msg_hdrs
    - h1_capture_bad_message
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h1_process_input_conn_mode
    - h1_search_websocket_key
    - TRACE_LEAVE
    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:2057,1
    - Dst: h1_parse_msg_data
      Src: /src/haproxy/src/mux_h1.c:2058,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2060,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2063,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2064,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2072,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2073,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2077,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    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: 2079
      start: 2051
    functionDepth: 2
    functionLinenumber: 2051
    functionLinenumberEnd: 2079
    functionName: h1_handle_data
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_data
    - h1_capture_bad_message
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h1_parse_msg_data
    - TRACE_LEAVE
    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:2093,1
    - Dst: h1_parse_msg_tlrs
      Src: /src/haproxy/src/mux_h1.c:2094,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2096,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2099,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2100,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2103,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    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: 2115
      start: 2088
    functionDepth: 2
    functionLinenumber: 2088
    functionLinenumberEnd: 2115
    functionName: h1_handle_trailers
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h1_capture_bad_message
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h1_parse_msg_tlrs
    - TRACE_LEAVE
    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:2134,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2135,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_h1.c:2151,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2154,1
    - Dst: h1_handle_headers
      Src: /src/haproxy/src/mux_h1.c:2155,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:2159,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/mux_h1.c:2164,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2166,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2170,1
    - Dst: h1_handle_data
      Src: /src/haproxy/src/mux_h1.c:2171,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2175,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2179,1
    - Dst: h1_handle_trailers
      Src: /src/haproxy/src/mux_h1.c:2180,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2184,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:2188,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_h1.c:2195,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2201,1
    - Dst: h1_capture_bad_message
      Src: /src/haproxy/src/mux_h1.c:2204,1
    - Dst: h1_set_tunnel_mode
      Src: /src/haproxy/src/mux_h1.c:2207,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2213,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:2217,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2218,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2224,1
    - Dst: h1_handle_data
      Src: /src/haproxy/src/mux_h1.c:2225,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2229,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_h1.c:2237,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2242,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2245,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2247,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2249,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2253,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2255,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2257,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h1.c:2262,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2265,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h1.c:2268,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2270,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:2271,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2274,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:2275,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:2285,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2288,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:2289,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:2289,1
    - Dst: h1s_new_sc
      Src: /src/haproxy/src/mux_h1.c:2290,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2296,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:2297,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:2297,1
    - Dst: h1s_upgrade_sc
      Src: /src/haproxy/src/mux_h1.c:2298,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2300,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2311,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2312,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2315,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h1.c:2316,1
    - Dst: h1s_set_se_eoi_cond
      Src: /src/haproxy/src/mux_h1.c:2320,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2330,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2331,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h1.c:2334,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2337,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2338,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2342,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2343,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2346,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2348,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2349,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:2353,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2354,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2355,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2358,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2359,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:2365,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2366,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2371,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:2373,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2374,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2375,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2378,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:2379,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2381,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h1.c:2386,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2387,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h1.c:2391,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2392,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:2393,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: 2395
      start: 2124
    functionDepth: 4
    functionLinenumber: 2124
    functionLinenumberEnd: 2395
    functionName: h1_process_demux
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h1_set_tunnel_mode
    - h1s_upgrade_sc
    - struct h1c*::conn::xprt::subscribe
    - htx_from_buf
    - h1s_set_se_eoi_cond
    - h1_release_buf
    - se_fl_clr
    - TRACE_LEAVE
    - h1c_report_term_evt
    - h1s_sc
    - b_data
    - h1m_init_res
    - TRACE_USER
    - se_report_term_evt
    - se_fl_set
    - h1_wake_stream_for_send
    - se_fl_test
    - BUG_ON
    - TRACE_PROTO
    - h1_handle_headers
    - h1s_new_sc
    - h1_handle_data
    - buf_room_for_htx_data
    - se_expect_data
    - TRACE_STATE
    - h1_capture_bad_message
    - TRACE_ENTER
    - TRACE_ERROR
    - b_del
    - h1_handle_trailers
    - htx_used_space
    - htx_to_buf
    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:2411,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:2414,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:2417,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:2418,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:2426,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:2428,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:2429,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2429,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:2430,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:2430,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:2430,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h1.c:2432,1
    - Dst: h1_format_htx_reqline
      Src: /src/haproxy/src/mux_h1.c:2433,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:2436,1
    - Dst: h1_parse_req_vsn
      Src: /src/haproxy/src/mux_h1.c:2439,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:2458,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2459,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:2464,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2467,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2471,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2478,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2479,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 66
    argCount: 4
    argNames:
    - h1s
    - h1m
    - htx
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2401
    functionDepth: 2
    functionLinenumber: 2401
    functionLinenumberEnd: 2482
    functionName: h1_make_reqline
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - h1_parse_req_vsn
    - b_tail
    - htx_get_blk_ptr
    - h1_format_htx_reqline
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - htx_get_blk_type
    - TRACE_USER
    - b_make
    - se_fl_set
    - htx_remove_blk
    - b_contig_space
    - htx_get_blksz
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - b_slow_realign
    - h1_wake_stream_for_recv
    - b_add
    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:2498,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:2501,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:2505,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:2506,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:2515,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:2517,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:2518,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2518,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:2519,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:2519,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:2519,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h1.c:2521,1
    - Dst: h1_format_htx_stline
      Src: /src/haproxy/src/mux_h1.c:2522,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:2525,1
    - Dst: h1_parse_res_vsn
      Src: /src/haproxy/src/mux_h1.c:2528,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:2546,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2549,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2553,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2560,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2561,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 61
    argCount: 4
    argNames:
    - h1s
    - h1m
    - htx
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2564
      start: 2488
    functionDepth: 2
    functionLinenumber: 2488
    functionLinenumberEnd: 2564
    functionName: h1_make_stline
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - b_tail
    - htx_get_blk_ptr
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - h1_parse_res_vsn
    - htx_get_blk_type
    - TRACE_USER
    - b_make
    - se_fl_set
    - h1_format_htx_stline
    - htx_remove_blk
    - b_contig_space
    - htx_get_blksz
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - b_slow_realign
    - b_add
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_stline(struct h1s *h1s, struct h1m *h1m, struct htx
      *htx, size_t count)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2580,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:2582,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:2583,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2583,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:2584,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:2584,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:2584,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:2586,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:2588,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:2589,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h1.c:2595,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:2596,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2602,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2602,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2609,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2612,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2612,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/mux_h1.c:2619,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2630,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2630,1
    - Dst: h1_parse_connection_header
      Src: /src/haproxy/src/mux_h1.c:2631,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2635,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2635,1
    - Dst: h1_parse_upgrade_header
      Src: /src/haproxy/src/mux_h1.c:2636,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2638,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2638,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2639,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2639,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h1.c:2642,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2642,1
    - Dst: istist
      Src: /src/haproxy/src/mux_h1.c:2646,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2646,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h1.c:2647,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2649,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h1.c:2653,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h1.c:2654,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2659,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2660,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:2675,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:2679,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2682,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2686,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2694,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2695,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 111
    argCount: 4
    argNames:
    - h1s
    - h1m
    - htx
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2570
    functionDepth: 2
    functionLinenumber: 2570
    functionLinenumberEnd: 2698
    functionName: h1_make_headers
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - isteq
    - b_space_wraps
    - htx_get_blk_value
    - b_tail
    - istist
    - htx_get_blk_name
    - TRACE_LEAVE
    - h1_parse_connection_header
    - b_data
    - htx_get_head_blk
    - h1_format_htx_hdr
    - htx_get_blk_type
    - http_parse_cont_len_header
    - b_make
    - se_fl_set
    - htx_remove_blk
    - isteqi
    - b_contig_space
    - ist
    - h1_adjust_case_outgoing_hdr
    - htx_get_blksz
    - TRACE_STATE
    - TRACE_ENTER
    - h1_parse_upgrade_header
    - TRACE_ERROR
    - isttest
    - b_slow_realign
    - b_add
    linkageType: ''
    returnType: size_t
    signature: size_t h1_make_headers(struct h1s *h1s, struct h1m *h1m, struct htx
      *htx, size_t count)
  - BBCount: 41
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2714,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:2717,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:2721,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:2722,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:2731,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:2732,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2732,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:2733,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:2733,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:2733,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2738,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2755,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2759,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2761,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2762,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2762,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2768,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2780,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2786,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2790,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2791,1
    - Dst: h1_process_output_conn_mode
      Src: /src/haproxy/src/mux_h1.c:2792,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2796,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2797,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2815,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2816,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2818,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2819,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2821,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h1.c:2827,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h1.c:2828,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2832,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:2836,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2837,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2840,1
    - Dst: h1_generate_random_ws_input_key
      Src: /src/haproxy/src/mux_h1.c:2852,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2854,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2854,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2855,1
    - Dst: h1_calculate_ws_output_key
      Src: /src/haproxy/src/mux_h1.c:2864,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:2865,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2865,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:2866,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:2878,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2885,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:2889,1
    - Dst: h1_set_tunnel_mode
      Src: /src/haproxy/src/mux_h1.c:2894,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:2898,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/mux_h1.c:2901,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2904,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_h1.c:2906,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:2913,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:2916,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:2921,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:2926,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:2929,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:2932,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:2934,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:2938,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:2945,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:2946,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 174
    argCount: 4
    argNames:
    - h1s
    - h1m
    - htx
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct htx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2949
      start: 2704
    functionDepth: 3
    functionLinenumber: 2704
    functionLinenumberEnd: 2949
    functionName: h1_make_eoh
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_set_tunnel_mode
    - h1_generate_random_ws_input_key
    - b_space_wraps
    - b_tail
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - h1_format_htx_hdr
    - htx_get_blk_type
    - h1m_init_res
    - b_make
    - se_fl_set
    - h1_calculate_ws_output_key
    - htx_is_unique_blk
    - htx_remove_blk
    - TRACE_PROTO
    - h1_process_output_conn_mode
    - chunk_memcat
    - b_contig_space
    - ist
    - h1_adjust_case_outgoing_hdr
    - htx_get_blksz
    - objt_server
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - isttest
    - b_slow_realign
    - b_add
    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:2959,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:2967,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:2968,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:2981,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_h1.c:2983,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:2984,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:2985,1
    - Dst: htx_reset
      Src: /src/haproxy/src/mux_h1.c:2998,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3002,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3003,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3026,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3027,1
    - Dst: h1_prepend_chunk_size
      Src: /src/haproxy/src/mux_h1.c:3037,1
    - Dst: h1_prepend_chunk_crlf
      Src: /src/haproxy/src/mux_h1.c:3039,1
    - Dst: h1_append_chunk_crlf
      Src: /src/haproxy/src/mux_h1.c:3048,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3055,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3056,1
    - Dst: b_putblk
      Src: /src/haproxy/src/mux_h1.c:3061,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3068,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:3072,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:3073,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3073,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:3074,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:3074,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:3074,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3080,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3081,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3085,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:3094,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:3095,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_h1.c:3102,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3105,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3111,1
    - Dst: h1_append_chunk_size
      Src: /src/haproxy/src/mux_h1.c:3120,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3140,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3142,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3144,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:3148,1
    - Dst: h1_format_htx_data
      Src: /src/haproxy/src/mux_h1.c:3150,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3155,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3156,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3166,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:3172,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3173,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3177,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3193,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:3208,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_h1.c:3210,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3211,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3220,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:3221,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3223,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3226,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3233,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3234,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 208
    argCount: 4
    argNames:
    - h1s
    - h1m
    - buf
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3237
      start: 2956
    functionDepth: 2
    functionLinenumber: 2956
    functionLinenumberEnd: 3237
    functionName: h1_make_data
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_space_wraps
    - h1_append_chunk_size
    - htx_get_blk_value
    - b_tail
    - htx_from_buf
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - htx_cut_data_blk
    - htx_get_blk_type
    - b_make
    - b_putblk
    - COUNT_IF
    - se_fl_set
    - htx_nbblks
    - h1_prepend_chunk_size
    - htx_is_unique_blk
    - b_room
    - htx_remove_blk
    - TRACE_PROTO
    - h1_format_htx_data
    - h1_prepend_chunk_crlf
    - chunk_memcat
    - b_contig_space
    - htx_get_blksz
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h1_append_chunk_crlf
    - htx_reset
    - b_slow_realign
    - b_add
    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:3247,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3255,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:3257,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3268,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_h1.c:3269,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:3270,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:3271,1
    - Dst: htx_reset
      Src: /src/haproxy/src/mux_h1.c:3283,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3286,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:3290,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:3291,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3291,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:3292,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:3292,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:3292,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:3297,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:3298,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3307,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:3309,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:3312,1
    - Dst: h1_format_htx_data
      Src: /src/haproxy/src/mux_h1.c:3314,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:3326,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_h1.c:3328,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3334,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:3335,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3338,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3342,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3350,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3351,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 75
    argCount: 4
    argNames:
    - h1s
    - h1m
    - buf
    - count
    argTypes:
    - struct h1s*
    - struct h1m*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3354
      start: 3244
    functionDepth: 1
    functionLinenumber: 3244
    functionLinenumberEnd: 3354
    functionName: h1_make_tunnel
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - htx_get_blk_value
    - b_tail
    - htx_from_buf
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - htx_cut_data_blk
    - htx_get_blk_type
    - b_make
    - se_fl_set
    - htx_nbblks
    - b_room
    - htx_remove_blk
    - TRACE_PROTO
    - h1_format_htx_data
    - b_contig_space
    - htx_get_blksz
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - htx_reset
    - b_slow_realign
    - b_add
    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:3370,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:3372,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:3373,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3373,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_h1.c:3374,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:3375,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:3375,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:3375,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h1.c:3377,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h1.c:3379,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h1.c:3380,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h1.c:3396,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h1.c:3397,1
    - Dst: h1_adjust_case_outgoing_hdr
      Src: /src/haproxy/src/mux_h1.c:3401,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/mux_h1.c:3402,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3409,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3413,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3415,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h1.c:3428,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:3432,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3435,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3439,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3447,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3448,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: 3451
      start: 3360
    functionDepth: 2
    functionLinenumber: 3360
    functionLinenumberEnd: 3451
    functionName: h1_make_trailers
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - htx_get_blk_value
    - b_tail
    - htx_get_blk_name
    - TRACE_LEAVE
    - b_data
    - htx_get_head_blk
    - h1_format_htx_hdr
    - htx_get_blk_type
    - b_make
    - se_fl_set
    - htx_remove_blk
    - TRACE_PROTO
    - chunk_memcat
    - b_contig_space
    - h1_adjust_case_outgoing_hdr
    - htx_get_blksz
    - chunk_reset
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - b_slow_realign
    - b_add
    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:3462,1
    - Dst: h1_get_obuf
      Src: /src/haproxy/src/mux_h1.c:3464,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3465,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:3469,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:3470,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3470,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:3471,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h1.c:3471,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:3471,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h1.c:3474,1
    - Dst: h1_append_chunk_size
      Src: /src/haproxy/src/mux_h1.c:3478,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h1.c:3483,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:3484,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3488,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3491,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: 3494
      start: 3456
    functionDepth: 2
    functionLinenumber: 3456
    functionLinenumberEnd: 3494
    functionName: h1_make_chunk
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - chunk_memcat
    - b_space_wraps
    - h1_append_chunk_size
    - b_contig_space
    - b_data
    - TRACE_STATE
    - b_tail
    - h1_get_obuf
    - TRACE_ENTER
    - TRACE_PROTO
    - TRACE_LEAVE
    - b_slow_realign
    - b_make
    - b_add
    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:3508,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3509,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h1.c:3511,1
    - Dst: h1_get_obuf
      Src: /src/haproxy/src/mux_h1.c:3517,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3518,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h1.c:3525,1
    - Dst: h1_make_reqline
      Src: /src/haproxy/src/mux_h1.c:3528,1
    - Dst: h1_make_stline
      Src: /src/haproxy/src/mux_h1.c:3532,1
    - Dst: h1_make_headers
      Src: /src/haproxy/src/mux_h1.c:3536,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:3537,1
    - Dst: h1_make_eoh
      Src: /src/haproxy/src/mux_h1.c:3538,1
    - Dst: h1_make_eoh
      Src: /src/haproxy/src/mux_h1.c:3542,1
    - Dst: h1_make_data
      Src: /src/haproxy/src/mux_h1.c:3548,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h1.c:3550,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:3551,1
    - Dst: h1_make_trailers
      Src: /src/haproxy/src/mux_h1.c:3552,1
    - Dst: h1_make_tunnel
      Src: /src/haproxy/src/mux_h1.c:3556,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h1.c:3558,1
    - Dst: h1_make_trailers
      Src: /src/haproxy/src/mux_h1.c:3562,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3566,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3573,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3574,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h1.c:3584,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:3589,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3590,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h1.c:3595,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h1.c:3596,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3597,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:3603,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:3605,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3615,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h1.c:3616,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:3619,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:3620,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:3621,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3625,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: 3627
      start: 3501
    functionDepth: 4
    functionLinenumber: 3501
    functionLinenumberEnd: 3627
    functionName: h1_process_mux
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h1_make_data
    - h1_get_obuf
    - htx_from_buf
    - TRACE_LEAVE
    - h1c_report_term_evt
    - TRACE_USER
    - h1_make_headers
    - se_report_term_evt
    - htxbuf
    - h1_make_trailers
    - se_fl_set
    - h1_make_stline
    - h1_make_tunnel
    - h1_make_eoh
    - htx_is_empty
    - buf_room_for_htx_data
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h1_make_reqline
    - htx_to_buf
    - h1_wake_stream_for_recv
    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:3635,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:3636,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3641
      start: 3632
    functionDepth: 1
    functionLinenumber: 3632
    functionLinenumberEnd: 3641
    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:3645,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:3646,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3651
      start: 3642
    functionDepth: 1
    functionLinenumber: 3642
    functionLinenumberEnd: 3651
    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: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:3661,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:3662,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:3664,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:3664,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:3665,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:3666,1
    - Dst: wake
      Src: /src/haproxy/src/mux_h1.c:3666,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:3666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3668
      start: 3658
    functionDepth: 2
    functionLinenumber: 3658
    functionLinenumberEnd: 3668
    functionName: h1_alert
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1s_sc
    - h1_wake_stream_for_send
    - wake
    - TRACE_POINT
    - h1_wake_stream_for_recv
    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:3678,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3681,1
    - Dst: b_is_null
      Src: /src/haproxy/src/mux_h1.c:3688,1
    - Dst: h1_get_obuf
      Src: /src/haproxy/src/mux_h1.c:3701,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3703,1
    - Dst: h1_format_htx_msg
      Src: /src/haproxy/src/mux_h1.c:3707,1
    - Dst: htxbuf
      Src: /src/haproxy/src/mux_h1.c:3707,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h1.c:3709,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:3709,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:3710,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3713,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:3723,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:3723,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3724,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:3725,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:3730,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3732,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3734
      start: 3675
    functionDepth: 3
    functionLinenumber: 3675
    functionLinenumberEnd: 3734
    functionName: h1_send_error
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - htxbuf
    - h1_format_htx_msg
    - unlikely
    - h1s_sc
    - h1s_destroy
    - b_is_null
    - h1_close
    - TRACE_STATE
    - BUG_ON
    - h1_get_obuf
    - TRACE_ENTER
    - b_istput
    - TRACE_LEAVE
    - http_get_status_idx
    - ist
    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:3746,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3749,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3750,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3752,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3753,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3756,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:3759,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:3760,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3763
      start: 3739
    functionDepth: 4
    functionLinenumber: 3739
    functionLinenumberEnd: 3763
    functionName: h1_handle_internal_err
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - sess_log
    - h1s_destroy
    - h1_send_error
    - proxy_inc_fe_req_ctr
    - _HA_ATOMIC_INC
    - session_inc_http_req_ctr
    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:3777,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3780,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:3782,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3786,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h1.c:3787,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3788,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3790,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3791,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3794,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:3798,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3799,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:3800,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3804
      start: 3770
    functionDepth: 4
    functionLinenumber: 3770
    functionLinenumberEnd: 3804
    functionName: h1_handle_parsing_error
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - session_inc_http_err_ctr
    - sess_log
    - h1s_destroy
    - b_data
    - h1_close
    - h1_send_error
    - proxy_inc_fe_req_ctr
    - _HA_ATOMIC_INC
    - session_inc_http_req_ctr
    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:3817,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3820,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:3822,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3826,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3827,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3829,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3830,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3833,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:3836,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3837,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:3838,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3842
      start: 3810
    functionDepth: 4
    functionLinenumber: 3810
    functionLinenumberEnd: 3842
    functionName: h1_handle_not_impl_err
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - sess_log
    - h1s_destroy
    - b_data
    - h1_close
    - h1_send_error
    - proxy_inc_fe_req_ctr
    - _HA_ATOMIC_INC
    - session_inc_http_req_ctr
    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:3854,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3857,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:3859,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3863,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/mux_h1.c:3864,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3866,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3867,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h1.c:3870,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:3873,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3874,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h1.c:3875,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3879
      start: 3847
    functionDepth: 4
    functionLinenumber: 3847
    functionLinenumberEnd: 3879
    functionName: h1_handle_req_tout
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - sess_log
    - h1s_destroy
    - b_data
    - h1_close
    - h1_send_error
    - proxy_inc_fe_req_ctr
    - _HA_ATOMIC_INC
    - session_inc_http_req_ctr
    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:3891,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3894,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3895,1
    - Dst: h1_recv_allowed
      Src: /src/haproxy/src/mux_h1.c:3898,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3899,1
    - Dst: h1_get_ibuf
      Src: /src/haproxy/src/mux_h1.c:3903,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3904,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3912,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3912,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_h1.c:3913,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h1.c:3915,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3942,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3945,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_h1.c:3951,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:3952,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_h1.c:3955,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3956,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3960,1
    - Dst: h1_recv_allowed
      Src: /src/haproxy/src/mux_h1.c:3964,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3965,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:3966,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h1.c:3969,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:3970,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:3973,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:3974,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h1.c:3975,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:3977,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:3980,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 56
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3982
      start: 3885
    functionDepth: 2
    functionLinenumber: 3885
    functionLinenumberEnd: 3982
    functionName: h1_recv
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_ADD
    - buf_room_for_htx_data
    - b_slow_realign_ofs
    - conn_xprt_read0_pending
    - h1_get_ibuf
    - b_data
    - h1_recv_allowed
    - TRACE_DATA
    - TRACE_STATE
    - TRACE_ENTER
    - struct connection*::xprt::subscribe
    - struct connection*::xprt::rcv_buf
    - h1_release_buf
    - h1_wake_stream_for_recv
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int h1_recv(struct h1c *h1c)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:3995,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:3998,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_h1.c:3999,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4005,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_h1.c:4013,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4013,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h1.c:4015,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4018,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:4020,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h1.c:4021,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4027,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4029,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4037,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_h1.c:4039,1
    - Dst: h1_wake_stream_for_send
      Src: /src/haproxy/src/mux_h1.c:4044,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4047,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4048,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:4049,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4051,1
    - Dst: h1_shutw_conn
      Src: /src/haproxy/src/mux_h1.c:4052,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4056,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4057,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4060,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 3988
    functionDepth: 2
    functionLinenumber: 3988
    functionLinenumberEnd: 4062
    functionName: h1_send
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h1c_report_term_evt
    - HA_ATOMIC_ADD
    - h1_shutw_conn
    - struct h1c*::conn::xprt::subscribe
    - h1_wake_stream_for_send
    - b_data
    - TRACE_DATA
    - TRACE_STATE
    - TRACE_ENTER
    - b_del
    - struct connection*::xprt::subscribe
    - TRACE_LEAVE
    - h1_release_buf
    - b_reset
    - struct connection*::xprt::snd_buf
    linkageType: ''
    returnType: int
    signature: int h1_send(struct h1c *h1c)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4072,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4075,1
    - Dst: b_isteq
      Src: /src/haproxy/src/mux_h1.c:4092,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4092,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:4092,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4095,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:4096,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4098,1
    - Dst: h1c_frt_stream_new
      Src: /src/haproxy/src/mux_h1.c:4105,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_h1.c:4107,1
    - Dst: h1_handle_internal_err
      Src: /src/haproxy/src/mux_h1.c:4108,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4109,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/mux_h1.c:4115,1
    - Dst: h1_get_rxbuf
      Src: /src/haproxy/src/mux_h1.c:4118,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4120,1
    - Dst: h1_process_demux
      Src: /src/haproxy/src/mux_h1.c:4125,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:4126,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:4127,1
    - Dst: h1_handle_internal_err
      Src: /src/haproxy/src/mux_h1.c:4130,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4131,1
    - Dst: h1_handle_not_impl_err
      Src: /src/haproxy/src/mux_h1.c:4134,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4135,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4137,1
    - Dst: h1_handle_parsing_error
      Src: /src/haproxy/src/mux_h1.c:4138,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4139,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4142,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4143,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4149,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4157,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4161,1
    - Dst: h1_handle_parsing_error
      Src: /src/haproxy/src/mux_h1.c:4165,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4166,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4170,1
    - Dst: h1_send_error
      Src: /src/haproxy/src/mux_h1.c:4171,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4172,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4175,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4175,1
    - Dst: h1s_destroy
      Src: /src/haproxy/src/mux_h1.c:4176,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4177,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:4180,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4181,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4197,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:4200,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4201,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:4203,1
    - Dst: h1_alert
      Src: /src/haproxy/src/mux_h1.c:4204,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4208,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4209,1
    - Dst: h1s_must_shut_conn
      Src: /src/haproxy/src/mux_h1.c:4210,1
    - Dst: h1_shutw_conn
      Src: /src/haproxy/src/mux_h1.c:4211,1
    - Dst: h1s_finish_detach
      Src: /src/haproxy/src/mux_h1.c:4214,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4219,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:4220,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:4226,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h1.c:4235,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h1.c:4236,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h1.c:4241,1
    - Dst: h1s_data_pending
      Src: /src/haproxy/src/mux_h1.c:4252,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4253,1
    - Dst: h1_wake_stream_for_recv
      Src: /src/haproxy/src/mux_h1.c:4254,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4258,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4259,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4268,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:4271,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4272,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:4275,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4276,1
    - Dst: h1_alert
      Src: /src/haproxy/src/mux_h1.c:4278,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4279,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:4283,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4284,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 158
    argCount: 1
    argNames:
    - h1c
    argTypes:
    - struct h1c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4288
      start: 4068
    functionDepth: 5
    functionLinenumber: 4068
    functionLinenumberEnd: 4288
    functionName: h1_process
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - h1_shutw_conn
    - struct h1c*::conn::xprt::subscribe
    - unlikely
    - h1_handle_internal_err
    - h1_release
    - h1_handle_not_impl_err
    - h1_release_buf
    - TRACE_LEAVE
    - h1c_report_term_evt
    - h1_handle_parsing_error
    - h1s_destroy
    - b_data
    - ns_to_ms
    - h1_process_demux
    - tick_remain
    - tick_isset
    - h1_alert
    - h1s_must_shut_conn
    - h1c_frt_stream_new
    - se_fl_set
    - h1_refresh_timeout
    - se_fl_test
    - h1_wake_stream_for_recv
    - h1_close
    - BUG_ON
    - h1s_finish_detach
    - se_fl_set_error
    - h1_set_idle_expiration
    - b_isteq
    - h1_send
    - ist
    - statistical_prng_range
    - TRACE_STATE
    - h1_get_rxbuf
    - TRACE_ENTER
    - TRACE_ERROR
    - h1s_data_pending
    - h1_send_error
    - TRACE_POINT
    - b_reset
    linkageType: ''
    returnType: int
    signature: int h1_process(struct h1c * h1c)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h1.c:4302,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4308,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h1.c:4309,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:4313,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_h1.c:4321,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h1.c:4325,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4329,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4333,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4338,1
    - Dst: h1_recv
      Src: /src/haproxy/src/mux_h1.c:4340,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4341,1
    - Dst: h1_process
      Src: /src/haproxy/src/mux_h1.c:4342,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h1.c:4353,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_h1.c:4357,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_h1.c:4363,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h1.c:4364,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/mux_h1.c:4365,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4366,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:4377,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4379
      start: 4290
    functionDepth: 6
    functionLinenumber: 4290
    functionLinenumberEnd: 4379
    functionName: h1_io_cb
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_process
    - tasklet_free
    - conn_delete_from_tree
    - b_data
    - objt_server
    - TRACE_ENTER
    - h1_release
    - _srv_add_idle
    - ASSUME_NONNULL
    - HA_SPIN_LOCK
    - session_detach_idle_conn
    - TRACE_POINT
    - HA_SPIN_UNLOCK
    - h1_send
    - session_reinsert_idle_conn
    - h1_recv
    linkageType: ''
    returnType: struct task
    signature: struct task *h1_io_cb(struct task *t, void *ctx, unsigned int state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h1.c:4386,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4388,1
    - Dst: h1_process
      Src: /src/haproxy/src/mux_h1.c:4389,1
    - Dst: h1_alert
      Src: /src/haproxy/src/mux_h1.c:4394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4397
      start: 4381
    functionDepth: 6
    functionLinenumber: 4381
    functionLinenumberEnd: 4397
    functionName: h1_wake
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_process
    - h1_send
    - h1_alert
    - 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:4405,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4407,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h1.c:4411,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4418,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4423,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4424,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4432,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4434,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4440,1
    - Dst: h1_handle_req_tout
      Src: /src/haproxy/src/mux_h1.c:4441,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4442,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4443,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4444,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4445,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4450,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:4453,1
    - Dst: h1_alert
      Src: /src/haproxy/src/mux_h1.c:4454,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4455,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4456,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4457,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h1.c:4465,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h1.c:4467,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4469,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h1.c:4473,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4477,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:4482,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4483,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4485
      start: 4402
    functionDepth: 5
    functionLinenumber: 4402
    functionLinenumberEnd: 4485
    functionName: h1_timeout_task
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h1c_report_term_evt
    - h1_handle_req_tout
    - se_fl_set
    - tick_is_expired
    - h1_refresh_timeout
    - b_data
    - se_fl_test
    - conn_delete_from_tree
    - TRACE_ENTER
    - h1_release
    - task_destroy
    - h1_alert
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - h1_send
    - TRACE_LEAVE
    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:4503,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4505,1
    - Dst: h1c_bck_stream_new
      Src: /src/haproxy/src/mux_h1.c:4509,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4511,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_h1.c:4516,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_h1.c:4517,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4519,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4522,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: 4524
      start: 4495
    functionDepth: 3
    functionLinenumber: 4495
    functionLinenumberEnd: 4524
    functionName: h1_attach
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_AND
    - xprt_set_used
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_LEAVE
    - 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:4535,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4538
      start: 4529
    functionDepth: 1
    functionLinenumber: 4529
    functionLinenumberEnd: 4538
    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:4544,1
    - Dst: h1_release
      Src: /src/haproxy/src/mux_h1.c:4546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4547
      start: 4540
    functionDepth: 5
    functionLinenumber: 4540
    functionLinenumberEnd: 4547
    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:4557,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4560,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4567,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:4568,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4569,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h1.c:4573,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4573,1
    - Dst: h1_process
      Src: /src/haproxy/src/mux_h1.c:4574,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4578,1
    - Dst: h1_set_idle_expiration
      Src: /src/haproxy/src/mux_h1.c:4579,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4580,1
    - Dst: h1s_finish_detach
      Src: /src/haproxy/src/mux_h1.c:4583,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4587
      start: 4552
    functionDepth: 6
    functionLinenumber: 4552
    functionLinenumberEnd: 4587
    functionName: h1_detach
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h1c_report_term_evt
    - h1_process
    - COUNT_IF
    - unlikely
    - struct h1c*::conn::xprt::subscribe
    - h1_refresh_timeout
    - b_data
    - TRACE_ENTER
    - h1s_finish_detach
    - h1_set_idle_expiration
    - TRACE_LEAVE
    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:4591,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4598,1
    - Dst: h1s_must_shut_conn
      Src: /src/haproxy/src/mux_h1.c:4600,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4604,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:4605,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4609,1
    - Dst: h1_shutw_conn
      Src: /src/haproxy/src/mux_h1.c:4610,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4612,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: 4613
      start: 4589
    functionDepth: 2
    functionLinenumber: 4589
    functionLinenumberEnd: 4613
    functionName: h1_shut
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - h1c_report_term_evt
    - h1_shutw_conn
    - b_data
    - h1_close
    - TRACE_ENTER
    - h1s_must_shut_conn
    - TRACE_LEAVE
    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:4619,1
    - Dst: h1_close
      Src: /src/haproxy/src/mux_h1.c:4620,1
    - Dst: conn_xprt_shutw
      Src: /src/haproxy/src/mux_h1.c:4624,1
    - Dst: conn_sock_shutw
      Src: /src/haproxy/src/mux_h1.c:4625,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h1.c:4628,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4630,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4631
      start: 4615
    functionDepth: 2
    functionLinenumber: 4615
    functionLinenumberEnd: 4631
    functionName: h1_shutw_conn
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 4
    functionsReached:
    - tasklet_wakeup
    - conn_xprt_shutw
    - conn_sock_shutw
    - h1_close
    - TRACE_ENTER
    - TRACE_LEAVE
    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:4639,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4644,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4645,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4652,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4655,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: 4658
      start: 4637
    functionDepth: 1
    functionLinenumber: 4637
    functionLinenumberEnd: 4658
    functionName: h1_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - 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:4669,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4675,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4676,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4682,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4686,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4695,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: 4701
      start: 4667
    functionDepth: 1
    functionLinenumber: 4667
    functionLinenumberEnd: 4701
    functionName: h1_subscribe
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - BUG_ON
    - struct h1c*::conn::xprt::subscribe
    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:4717,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4722,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4726,1
    - Dst: h1_process_demux
      Src: /src/haproxy/src/mux_h1.c:4731,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4733,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:4735,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4737,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:4741,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4745,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: 4747
      start: 4715
    functionDepth: 5
    functionLinenumber: 4715
    functionLinenumberEnd: 4747
    functionName: h1_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - struct h1c*::conn::xprt::subscribe
    - se_fl_test
    - h1_process_demux
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: size_t
    signature: size_t h1_rcv_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:4753,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4761,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4768,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:4773,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4774,1
    - Dst: h1_process_mux
      Src: /src/haproxy/src/mux_h1.c:4789,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4791,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:4802,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:4812,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:4813,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4814,1
    - Dst: h1_refresh_timeout
      Src: /src/haproxy/src/mux_h1.c:4817,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4818,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4820
      start: 4751
    functionDepth: 5
    functionLinenumber: 4751
    functionLinenumberEnd: 4820
    functionName: h1_snd_buf
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - h1_refresh_timeout
    - se_report_term_evt
    - TRACE_ENTER
    - TRACE_ERROR
    - se_fl_set_error
    - h1_send
    - h1_process_mux
    - TRACE_LEAVE
    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:4824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h1s
    argTypes:
    - struct h1s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4825
      start: 4822
    functionDepth: 1
    functionLinenumber: 4822
    functionLinenumberEnd: 4825
    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: 23
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h1.c:4829,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4834,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4844,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4851,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4858,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:4861,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:4869,1
    - Dst: h1_make_chunk
      Src: /src/haproxy/src/mux_h1.c:4871,1
    - Dst: MAX_RANGE
      Src: /src/haproxy/src/mux_h1.c:4883,1
    - Dst: MAX_RANGE
      Src: /src/haproxy/src/mux_h1.c:4884,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4901,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4901,1
    - Dst: struct h1c*::conn::xprt::get_capability
      Src: /src/haproxy/src/mux_h1.c:4907,1
    - Dst: get_pipe
      Src: /src/haproxy/src/mux_h1.c:4909,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:4929,1
    - Dst: h1_get_obuf
      Src: /src/haproxy/src/mux_h1.c:4934,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4936,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h1.c:4940,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h1.c:4941,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4941,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:4943,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:4946,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h1.c:4951,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4960,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4963,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4964,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_h1.c:4966,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:4970,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:4977,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 106
    argCount: 4
    argNames:
    - sc
    - input
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4979
      start: 4827
    functionDepth: 3
    functionLinenumber: 4827
    functionLinenumberEnd: 4979
    functionName: h1_nego_ff
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - struct h1c*::conn::xprt::get_capability
    - b_space_wraps
    - h1_make_chunk
    - b_xfer
    - b_data
    - BUG_ON
    - TRACE_STATE
    - TRACE_ENTER
    - MAX_RANGE
    - TRACE_ERROR
    - h1_get_obuf
    - get_pipe
    - b_slow_realign
    - b_contig_space
    - TRACE_LEAVE
    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:4983,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:4989,1
    - Dst: struct h1c*::conn::xprt::snd_pipe
      Src: /src/haproxy/src/mux_h1.c:4993,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:4995,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:4997,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:5004,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h1.c:5008,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:5008,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:5008,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/mux_h1.c:5009,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5009,1
    - Dst: h1_prepend_chunk_size
      Src: /src/haproxy/src/mux_h1.c:5011,1
    - Dst: h1_prepend_chunk_crlf
      Src: /src/haproxy/src/mux_h1.c:5013,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:5014,1
    - Dst: h1_send
      Src: /src/haproxy/src/mux_h1.c:5029,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5043,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5048,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5056,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:5058,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5059,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:5061,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5064,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:5067,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 60
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5069
      start: 4981
    functionDepth: 3
    functionLinenumber: 4981
    functionLinenumberEnd: 5069
    functionName: h1_done_ff
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - __sc_mux_strm
    - HA_ATOMIC_ADD
    - TRACE_DEVEL
    - struct h1c*::conn::xprt::subscribe
    - struct h1c*::conn::xprt::snd_pipe
    - TRACE_LEAVE
    - h1c_report_term_evt
    - b_data
    - b_make
    - se_report_term_evt
    - put_pipe
    - h1_prepend_chunk_size
    - b_room
    - se_fl_set_error
    - h1_prepend_chunk_crlf
    - b_size
    - h1_send
    - b_orig
    - TRACE_ENTER
    - b_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:5073,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:5081,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5085,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h1.c:5089,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5095,1
    - Dst: h1s_opposite_sd
      Src: /src/haproxy/src/mux_h1.c:5099,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5101,1
    - Dst: struct h1c*::conn::xprt::get_capability
      Src: /src/haproxy/src/mux_h1.c:5117,1
    - Dst: se_nego_ff
      Src: /src/haproxy/src/mux_h1.c:5124,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h1.c:5125,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5127,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5129,1
    - Dst: h1_release_buf
      Src: /src/haproxy/src/mux_h1.c:5130,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5135,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5139,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5140,1
    - Dst: struct h1c*::conn::xprt::rcv_pipe
      Src: /src/haproxy/src/mux_h1.c:5149,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:5152,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h1.c:5154,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:5155,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5162,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5163,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5165,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h1.c:5169,1
    - Dst: struct h1c*::conn::xprt::rcv_buf
      Src: /src/haproxy/src/mux_h1.c:5170,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5172,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5173,1
    - Dst: b_sub
      Src: /src/haproxy/src/mux_h1.c:5175,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:5187,1
    - Dst: se_done_ff
      Src: /src/haproxy/src/mux_h1.c:5189,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5197,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/mux_h1.c:5198,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:5199,1
    - Dst: h1s_set_se_eoi_cond
      Src: /src/haproxy/src/mux_h1.c:5207,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_h1.c:5217,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5220,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_h1.c:5224,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5225,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5226,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5230,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5232,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5233,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5236,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5239,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h1.c:5240,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:5245,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5246,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5247,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5250,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5251,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5255,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5258,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:5261,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5262,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5263,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5266,1
    - Dst: h1c_report_term_evt
      Src: /src/haproxy/src/mux_h1.c:5267,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5269,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:5274,1
    - Dst: se_done_ff
      Src: /src/haproxy/src/mux_h1.c:5279,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5282,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h1.c:5285,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5291,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h1.c:5292,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h1.c:5294,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5295,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:5299,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: 5301
      start: 5071
    functionDepth: 3
    functionLinenumber: 5071
    functionLinenumberEnd: 5301
    functionName: h1_fastfwd
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - HA_ATOMIC_ADD
    - conn_xprt_read0_pending
    - b_sub
    - struct h1c*::conn::xprt::subscribe
    - h1s_opposite_sd
    - h1s_set_se_eoi_cond
    - h1_release_buf
    - se_fl_clr
    - TRACE_LEAVE
    - h1c_report_term_evt
    - b_data
    - se_report_term_evt
    - struct h1c*::conn::xprt::rcv_pipe
    - COUNT_IF
    - se_fl_set
    - put_pipe
    - se_fl_test
    - BUG_ON
    - b_room
    - b_size
    - se_nego_ff
    - struct h1c*::conn::xprt::get_capability
    - struct h1c*::conn::xprt::rcv_buf
    - se_expect_data
    - TRACE_STATE
    - TRACE_ENTER
    - se_done_ff
    - TRACE_ERROR
    - b_add
    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:5305,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h1.c:5309,1
    - Dst: struct h1c*::conn::xprt::snd_pipe
      Src: /src/haproxy/src/mux_h1.c:5316,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5318,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:5320,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/mux_h1.c:5333,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5347,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h1.c:5349,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_h1.c:5351,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h1.c:5354,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h1.c:5357,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 2
    argNames:
    - sc
    - flags
    argTypes:
    - struct stconn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5359
      start: 5303
    functionDepth: 3
    functionLinenumber: 5303
    functionLinenumberEnd: 5359
    functionName: h1_resume_fastfwd
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - HA_ATOMIC_ADD
    - put_pipe
    - struct h1c*::conn::xprt::subscribe
    - struct h1c*::conn::xprt::snd_pipe
    - TRACE_ENTER
    - se_fl_set_error
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int h1_resume_fastfwd(struct stconn *sc, unsigned int flags)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5382,1
    - Dst: h1_used_streams
      Src: /src/haproxy/src/mux_h1.c:5385,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - conn
    - mux_ctl
    - output
    argTypes:
    - struct connection*
    - enum mux_ctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5393
      start: 5361
    functionDepth: 1
    functionLinenumber: 5361
    functionLinenumberEnd: 5393
    functionName: h1_ctl
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_used_streams
    - struct h1c*::conn::xprt::subscribe
    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:5398,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_h1.c:5409,1
    - Dst: h1_dump_h1s_info
      Src: /src/haproxy/src/mux_h1.c:5412,1
    - Dst: h1_dump_h1c_info
      Src: /src/haproxy/src/mux_h1.c:5415,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5418,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h1.c:5420,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: 5430
      start: 5395
    functionDepth: 2
    functionLinenumber: 5395
    functionLinenumberEnd: 5430
    functionName: h1_sctl
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - h1_dump_h1c_info
    - get_trash_chunk
    - chunk_appendf
    - h1_dump_h1s_info
    - tevt_evts2str
    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:5444,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5446,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:5446,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h1.c:5447,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:5447,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h1.c:5448,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h1.c:5448,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h1.c:5449,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h1.c:5449,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h1.c:5450,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5452,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5454,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h1.c:5455,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_h1.c:5456,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:5456,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h1.c:5456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - h1c
    - pfx
    argTypes:
    - struct buffer*
    - struct h1c*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5460
      start: 5437
    functionDepth: 1
    functionLinenumber: 5437
    functionLinenumberEnd: 5460
    functionName: h1_dump_h1c_info
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 1
    functionsReached:
    - b_orig
    - tick_is_expired
    - b_data
    - chunk_appendf
    - human_time
    - b_size
    - TICKS_TO_MS
    - b_head_ofs
    - 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:5484,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5485,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:5485,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_h1.c:5485,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5488,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5490,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5494,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_h1.c:5495,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h1.c:5495,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h1.c:5497,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5498,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:5499,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:5499,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h1.c:5499,1
    - Dst: h1s_sc
      Src: /src/haproxy/src/mux_h1.c:5499,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5504,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5506,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5508,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5509,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/mux_h1.c:5514,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5515,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 3
    argNames:
    - msg
    - h1s
    - pfx
    argTypes:
    - struct buffer*
    - struct h1s*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5518
      start: 5471
    functionDepth: 1
    functionLinenumber: 5471
    functionLinenumberEnd: 5518
    functionName: h1_dump_h1s_info
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 1
    functionsReached:
    - resolve_sym_name
    - se_fl_get
    - h1s_sc
    - se_fl_test
    - chunk_appendf
    - h1m_state_str
    - tevt_evts2str
    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:5527,1
    - Dst: h1_dump_h1s_info
      Src: /src/haproxy/src/mux_h1.c:5530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5533
      start: 5521
    functionDepth: 2
    functionLinenumber: 5521
    functionLinenumberEnd: 5533
    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:5548,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5550,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h1.c:5551,1
    - Dst: h1_dump_h1c_info
      Src: /src/haproxy/src/mux_h1.c:5552,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5554
      start: 5540
    functionDepth: 2
    functionLinenumber: 5540
    functionLinenumberEnd: 5554
    functionName: h1_show_sd
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - h1_dump_h1c_info
    - chunk_appendf
    - 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:5563,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5564,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/mux_h1.c:5569,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5570,1
    - Dst: ebis_lookup
      Src: /src/haproxy/src/mux_h1.c:5575,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5576,1
    - Dst: malloc
      Src: /src/haproxy/src/mux_h1.c:5581,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5583,1
    - Dst: strdup
      Src: /src/haproxy/src/mux_h1.c:5587,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h1.c:5588,1
    - Dst: strdup
      Src: /src/haproxy/src/mux_h1.c:5588,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h1.c:5589,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5590,1
    - Dst: istfree
      Src: /src/haproxy/src/mux_h1.c:5591,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5592,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5593,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/mux_h1.c:5596,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - from
    - to
    - err
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5598
      start: 5558
    functionDepth: 1
    functionLinenumber: 5558
    functionLinenumberEnd: 5598
    functionName: add_hdr_case_adjust
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - strdup
    - ebis_insert
    - strcasecmp
    - istfree
    - strlen
    - free
    - ebis_lookup
    - malloc
    - memprintf
    - isttest
    - ist
    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:5619,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h1.c:5626,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h1.c:5627,1
    - Dst: fd_takeover
      Src: /src/haproxy/src/mux_h1.c:5632,1
    - Dst: struct connection*::xprt::takeover
      Src: /src/haproxy/src/mux_h1.c:5635,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_h1.c:5642,1
    - Dst: struct h1c*::conn::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h1.c:5647,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/mux_h1.c:5657,1
    - Dst: task_kill
      Src: /src/haproxy/src/mux_h1.c:5658,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_h1.c:5672,1
    - Dst: struct h1c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h1.c:5678,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_h1.c:5683,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_h1.c:5687,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h1.c:5688,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - conn
    - orig_tid
    - release
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5690
      start: 5604
    functionDepth: 1
    functionLinenumber: 5604
    functionLinenumberEnd: 5690
    functionName: h1_takeover
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - struct connection*::xprt::takeover
    - tasklet_free
    - tasklet_new
    - struct h1c*::conn::xprt::subscribe
    - fd_takeover
    - tasklet_wakeup_on
    - __task_free
    - task_new_here
    - task_kill
    - LIST_INLIST
    - struct h1c*::conn::xprt::unsubscribe
    - __ha_barrier_store
    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:5698,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/mux_h1.c:5700,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/mux_h1.c:5701,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h1.c:5702,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5703,1
    - Dst: istfree
      Src: /src/haproxy/src/mux_h1.c:5704,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5705,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5709
      start: 5693
    functionDepth: 1
    functionLinenumber: 5693
    functionLinenumberEnd: 5709
    functionName: h1_hdeaders_case_adjust_deinit
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - ebpt_next
    - istfree
    - container_of
    - free
    - ebpt_delete
    - 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:5721,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mux_h1.c:5723,1
    - Dst: fgets
      Src: /src/haproxy/src/mux_h1.c:5733,1
    - Dst: add_hdr_case_adjust
      Src: /src/haproxy/src/mux_h1.c:5770,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mux_h1.c:5772,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5775,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mux_h1.c:5779,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5782,1
    - Dst: fclose
      Src: /src/haproxy/src/mux_h1.c:5788,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/mux_h1.c:5789,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5791
      start: 5711
    functionDepth: 2
    functionLinenumber: 5711
    functionLinenumberEnd: 5791
    functionName: cfg_h1_headers_case_adjust_postparser
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - fclose
    - fgets
    - free
    - add_hdr_case_adjust
    - hap_register_post_deinit
    - ha_alert
    - fopen
    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:5798,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: 5802
      start: 5794
    functionDepth: 1
    functionLinenumber: 5794
    functionLinenumberEnd: 5802
    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:5810,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5813,1
    - Dst: add_hdr_case_adjust
      Src: /src/haproxy/src/mux_h1.c:5816,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: 5817
      start: 5806
    functionDepth: 2
    functionLinenumber: 5806
    functionLinenumberEnd: 5817
    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:5824,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5827,1
    - Dst: free
      Src: /src/haproxy/src/mux_h1.c:5830,1
    - Dst: strdup
      Src: /src/haproxy/src/mux_h1.c:5831,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5833,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: 5837
      start: 5820
    functionDepth: 1
    functionLinenumber: 5820
    functionLinenumberEnd: 5837
    functionName: cfg_parse_h1_headers_case_adjust_file
    functionSourceFile: /src/haproxy/src/mux_h1.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - too_many_args
    - memprintf
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h1.c:5844,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h1.c:5847,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h1.c:5849,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5852,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: 5856
      start: 5840
    functionDepth: 1
    functionLinenumber: 5840
    functionLinenumberEnd: 5856
    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:5863,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h1.c:5866,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h1.c:5868,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h1.c:5871,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: 5875
      start: 5859
    functionDepth: 1
    functionLinenumber: 5859
    functionLinenumberEnd: 5875
    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: struct act_rule*::action_ptr
      Src: /src/haproxy/src/quic_rules.c:40,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_rules.c:53,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - li
    - dgram
    argTypes:
    - struct listener*
    - struct quic_dgram*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 67
    functionName: quic_init_exec_rules
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - struct act_rule*::action_ptr
    - ABORT_NOW
    - list_for_each_entry
    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: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    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: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    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:91,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rules.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 93
    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:101,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: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    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:107,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: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    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:115,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: 118
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 118
    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: 127
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 127
    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: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    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: LIST_APPEND
      Src: /src/haproxy/src/quic_rules.c:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: quic_init_actions_register
    functionSourceFile: /src/haproxy/src/quic_rules.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    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:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    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: 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_path_reset
    - quic_cc_priv
    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:
    - quic_cc_path_set
    - container_of
    - 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:
    - quic_cc_nr_enter_recovery
    - container_of
    - TRACE_ENTER
    - TRACE_PROTO
    - quic_cc_priv
    - quic_cc_path_inc
    - TRACE_LEAVE
    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:
    - quic_cc_nr_enter_recovery
    - container_of
    - TRACE_ENTER
    - TRACE_PROTO
    - quic_cc_priv
    - quic_cc_path_inc
    - TRACE_LEAVE
    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:
    - container_of
    - TRACE_ENTER
    - TRACE_PROTO
    - tick_is_le
    - quic_cc_priv
    - 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:
    - quic_cc_state_str
    - chunk_appendf
    - container_of
    - tick_remain
    - tick_isset
    - quic_cc_priv
    - TICKS_TO_MS
    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:
    - eb64_entry
    - TRACE_PROTO
    - quic_enc_int
    - eb64_last
    - eb64_prev
    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:367,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:368,1
    - 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
    CyclomaticComplexity: 3
    EdgeCount: 3
    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: 371
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 371
    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:381,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:382,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:383,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: 384
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 384
    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:394,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:395,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:396,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: 397
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 397
    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:407,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:408,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: 409
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 409
    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:419,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:420,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: 421
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 421
    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:433,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:434,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:449,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: 456
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 456
    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:466,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:467,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: 474
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 474
    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:485,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:488,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: 492
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 492
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:503,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - frm
    - qc
    - pos
    - end
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    - unsigned char**
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 519
    functionName: quic_parse_new_token_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    - memcpy
    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:531,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:534,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:535,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:537,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_frame.c:544,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:547,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:551,1
    - Dst: b_orig
      Src: /src/haproxy/src/quic_frame.c:551,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:555,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: 560
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 560
    functionName: quic_build_stream_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - b_orig
    - BUG_ON
    - b_wrap
    - quic_enc_int
    - memcpy
    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:570,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:576,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:583,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: 590
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 590
    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:600,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: 601
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 601
    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:611,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: 612
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 612
    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:622,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:623,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: 624
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 624
    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:634,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:635,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: 636
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 636
    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:646,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: 647
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 647
    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:658,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: 659
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 659
    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:669,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: 670
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 670
    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:681,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: 682
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 682
    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:692,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: 693
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 693
    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:703,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: 704
      start: 698
    functionDepth: 1
    functionLinenumber: 698
    functionLinenumberEnd: 704
    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:714,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:715,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: 716
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 716
    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:726,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:727,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: 728
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 728
    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:738,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: 739
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 739
    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:750,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: 751
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 751
    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:761,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: 762
      start: 756
    functionDepth: 1
    functionLinenumber: 756
    functionLinenumberEnd: 762
    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:773,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: 774
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 774
    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:784,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:785,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:792,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:795,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: 799
      start: 779
    functionDepth: 1
    functionLinenumber: 779
    functionLinenumberEnd: 799
    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:809,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:810,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: 825
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 825
    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:835,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: 836
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 836
    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:846,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: 847
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 847
    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:860,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: 864
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 864
    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:877,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: 881
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 881
    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:895,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: 899
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 899
    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:912,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: 916
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 916
    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:928,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:929,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:930,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:934,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: 938
      start: 923
    functionDepth: 1
    functionLinenumber: 923
    functionLinenumberEnd: 938
    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:951,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:952,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:953,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_frame.c:957,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:958,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: 962
      start: 945
    functionDepth: 1
    functionLinenumber: 945
    functionLinenumberEnd: 962
    functionName: quic_parse_connection_close_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    - QUIC_MIN
    - memcpy
    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:974,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:975,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:979,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: 983
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 983
    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:996,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:997,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_frame.c:1001,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_frame.c:1002,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: 1006
      start: 990
    functionDepth: 1
    functionLinenumber: 990
    functionLinenumberEnd: 1006
    functionName: quic_parse_connection_close_app_frame
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    - QUIC_MIN
    - memcpy
    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: 1016
      start: 1011
    functionDepth: 0
    functionLinenumber: 1011
    functionLinenumberEnd: 1016
    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: 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: 1026
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1026
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1133
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_frame.c:1142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1135
    functionDepth: 1
    functionLinenumber: 1135
    functionLinenumberEnd: 1144
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_frame.c:1153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1155
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1167,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1169,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_frame.c:1173,1
    - Dst: quic_frame_type_is_known
      Src: /src/haproxy/src/quic_frame.c:1174,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1180,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_frame.c:1181,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_frame.c:1181,1
    - Dst: qf_parser
      Src: /src/haproxy/src/quic_frame.c:1185,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1187,1
    - Dst: struct quic_frame_parser*::func
      Src: /src/haproxy/src/quic_frame.c:1191,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1192,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_frame.c:1196,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 5
    argNames:
    - frm
    - pkt
    - pos
    - end
    - qc
    argTypes:
    - struct quic_frame*
    - struct quic_rx_packet*
    - unsigned char**
    - unsigned char*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1160
    functionDepth: 2
    functionLinenumber: 1160
    functionLinenumberEnd: 1204
    functionName: qc_parse_frm
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_dec_int
    - quic_err_transport
    - qf_parser
    - TRACE_ENTER
    - TRACE_PROTO
    - quic_set_connection_close
    - struct quic_frame_parser*::func
    - quic_frame_type_is_known
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: "int qc_parse_frm(struct quic_frame *frm, struct quic_rx_packet *pkt,\n
      \                const unsigned char **pos, const unsigned char *end,\n                 struct
      quic_conn *qc)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1219,1
    - Dst: qf_builder
      Src: /src/haproxy/src/quic_frame.c:1220,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_frame.c:1223,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_frame.c:1224,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_frame.c:1227,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1228,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_frame.c:1232,1
    - Dst: struct quic_frame_builder*::func
      Src: /src/haproxy/src/quic_frame.c:1233,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_frame.c:1234,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1243,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - pos
    - end
    - frm
    - pkt
    - qc
    argTypes:
    - unsigned char**
    - unsigned char*
    - struct quic_frame*
    - struct quic_tx_packet*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1211
    functionDepth: 2
    functionLinenumber: 1211
    functionLinenumberEnd: 1245
    functionName: qc_build_frm
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - BUG_ON
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_PROTO
    - quic_enc_int
    - struct quic_frame_builder*::func
    - qf_builder
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: "int qc_build_frm(unsigned char **pos, const unsigned char *end,\n
      \                struct quic_frame *frm, struct quic_tx_packet *pkt,\n                 struct
      quic_conn *qc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1252,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_frame.c:1254,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1256,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1258,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1262,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - frm
    - qc
    argTypes:
    - struct quic_frame*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1268
      start: 1248
    functionDepth: 1
    functionLinenumber: 1248
    functionLinenumberEnd: 1268
    functionName: qc_frm_unref
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - list_for_each_entry_safe
    - LIST_DEL_INIT
    - TRACE_ENTER
    - TRACE_LEAVE
    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:1274,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_frame.c:1278,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_frame.c:1278,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_frame.c:1279,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/quic_frame.c:1279,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1285,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_frame.c:1287,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - qc
    - frm
    argTypes:
    - struct quic_conn*
    - struct quic_frame**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1271
    functionDepth: 1
    functionLinenumber: 1271
    functionLinenumberEnd: 1290
    functionName: qc_frm_free
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - LIST_INLIST
    - pool_free
    - BUG_ON
    - LIST_DEL_INIT
    - TRACE_ENTER
    - LIST_ISEMPTY
    - TRACE_LEAVE
    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:1302,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_frame.c:1304,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_frame.c:1317,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1321,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1323,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1327,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1329,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_frame.c:1330,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1333,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_frame.c:1335,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_frame.c:1336,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_frame.c:1338,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_frame.c:1340,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - qc
    - frm
    argTypes:
    - struct quic_conn*
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1293
    functionDepth: 2
    functionLinenumber: 1293
    functionLinenumberEnd: 1341
    functionName: qc_release_frm
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - list_for_each_entry_safe
    - BUG_ON
    - LIST_DEL_INIT
    - TRACE_ENTER
    - quic_tx_packet_refdec
    - qc_frm_free
    - TRACE_LEAVE
    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:1359,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_frame.c:1361,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_frame.c:1366,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_frame.c:1371,1
    - Dst: quic_int_cap_length
      Src: /src/haproxy/src/quic_frame.c:1384,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_frame.c:1391,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_frame.c:1396,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: 1402
      start: 1350
    functionDepth: 1
    functionLinenumber: 1350
    functionLinenumberEnd: 1402
    functionName: quic_strm_frm_fillbuf
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - ABORT_NOW
    - quic_int_cap_length
    - quic_int_getsize
    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:1415,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1420,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1421,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1422,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1423,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1424,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1427,1
    - Dst: stream::stream
      Src: /src/haproxy/src/quic_frame.c:1428,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_frame.c:1432,1
    - Dst: b_orig
      Src: /src/haproxy/src/quic_frame.c:1432,1
    - Dst: b_size
      Src: /src/haproxy/src/quic_frame.c:1433,1
    - Dst: b_orig
      Src: /src/haproxy/src/quic_frame.c:1434,1
    - Dst: b_peek
      Src: /src/haproxy/src/quic_frame.c:1437,1
    - Dst: crypto::crypto
      Src: /src/haproxy/src/quic_frame.c:1440,1
    - Dst: crypto::crypto
      Src: /src/haproxy/src/quic_frame.c:1441,1
    - Dst: crypto::crypto
      Src: /src/haproxy/src/quic_frame.c:1442,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_frame.c:1450,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_frame.c:1455,1
    - Dst: ref::ref
      Src: /src/haproxy/src/quic_frame.c:1455,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_frame.c:1457,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - frm
    - split
    argTypes:
    - struct quic_frame*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1410
    functionDepth: 1
    functionLinenumber: 1410
    functionLinenumberEnd: 1462
    functionName: quic_strm_frm_split
    functionSourceFile: /src/haproxy/src/quic_frame.c
    functionUses: 0
    functionsReached:
    - b_orig
    - crypto::crypto
    - LIST_DEL_INIT
    - ref::ref
    - LIST_APPEND
    - qc_frm_alloc::qc_frm_alloc
    - b_peek
    - b_size
    - stream::stream
    - ABORT_NOW
    - b_make
    linkageType: ''
    returnType: struct quic_frame
    signature: struct quic_frame *quic_strm_frm_split(struct quic_frame *frm, uint64_t
      split)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hash_djb2
      Src: /src/haproxy/src/backend.c:73,1
    - Dst: hash_wt6
      Src: /src/haproxy/src/backend.c:76,1
    - Dst: hash_crc32
      Src: /src/haproxy/src/backend.c:79,1
    - Dst: read_int64
      Src: /src/haproxy/src/backend.c:86,1
    - Dst: hash_sdbm
      Src: /src/haproxy/src/backend.c:92,1
    - Dst: full_hash
      Src: /src/haproxy/src/backend.c:97,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - px
    - key
    - len
    argTypes:
    - struct proxy*
    - char*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 100
    functionName: gen_hash
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - hash_sdbm
    - full_hash
    - hash_crc32
    - hash_wt6
    - hash_djb2
    - read_int64
    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:123,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 139
    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: 164
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 164
    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:187,1
    - Dst: full_hash
      Src: /src/haproxy/src/backend.c:195,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:198,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:200,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: 201
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 201
    functionName: get_server_sh
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - map_get_server_hash
    - ntohl
    - full_hash
    - 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:232,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:247,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:251,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:253,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: 254
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 254
    functionName: get_server_uh
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - map_get_server_hash
    - gen_hash
    - chash_get_server_hash
    - MIN
    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:277,1
    - Dst: memcmp
      Src: /src/haproxy/src/backend.c:289,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:302,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:305,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:307,1
    - Dst: memchr
      Src: /src/haproxy/src/backend.c:311,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: 319
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 319
    functionName: get_server_ph
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - chash_get_server_hash
    - map_get_server_hash
    - memcmp
    - gen_hash
    - memchr
    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:329,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/backend.c:340,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/backend.c:340,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/backend.c:341,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/backend.c:346,1
    - Dst: memcmp
      Src: /src/haproxy/src/backend.c:355,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:365,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/backend.c:365,1
    - Dst: likely
      Src: /src/haproxy/src/backend.c:369,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/backend.c:369,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:379,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:382,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:384,1
    - Dst: memchr
      Src: /src/haproxy/src/backend.c:388,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 396
    functionName: get_server_ph_post
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - chash_get_server_hash
    - unlikely
    - htx_get_blk_value
    - map_get_server_hash
    - memcmp
    - htx_get_blk_type
    - gen_hash
    - htx_get_next_blk
    - HTTP_IS_TOKEN
    - memchr
    - likely
    - htx_get_first_blk
    - HTTP_IS_LWS
    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:417,1
    - Dst: http_find_header
      Src: /src/haproxy/src/backend.c:428,1
    - Dst: ist2
      Src: /src/haproxy/src/backend.c:428,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:441,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:471,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:476,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:478,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 409
    functionDepth: 2
    functionLinenumber: 409
    functionLinenumberEnd: 479
    functionName: get_server_hh
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_find_header
    - chash_get_server_hash
    - map_get_server_hash
    - gen_hash
    - ist2
    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:495,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:497,1
    - Dst: c_rew
      Src: /src/haproxy/src/backend.c:498,1
    - Dst: fetch_rdp_cookie_name
      Src: /src/haproxy/src/backend.c:500,1
    - Dst: c_adv
      Src: /src/haproxy/src/backend.c:503,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:515,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:519,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:521,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 522
    functionName: get_server_rch
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - c_rew
    - co_data
    - memset
    - chash_get_server_hash
    - map_get_server_hash
    - gen_hash
    - c_adv
    - fetch_rdp_cookie_name
    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:540,1
    - Dst: gen_hash
      Src: /src/haproxy/src/backend.c:547,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:551,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/backend.c:553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 527
    functionDepth: 2
    functionLinenumber: 527
    functionLinenumberEnd: 554
    functionName: get_server_expr
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - map_get_server_hash
    - sample_fetch_as_type
    - gen_hash
    - chash_get_server_hash
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_expr(struct stream *s, const struct server
      *avoid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng
      Src: /src/haproxy/src/backend.c:571,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/backend.c:572,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/backend.c:588,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 16
    argCount: 2
    argNames:
    - s
    - avoid
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 592
    functionName: get_server_rnd
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - statistical_prng
    - chash_get_server_hash
    - srv_dynamic_maxconn
    linkageType: ''
    returnType: struct server
    signature: struct server *get_server_rnd(struct stream *s, const struct server
      *avoid)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:627,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:630,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:637,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/backend.c:651,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:652,1
    - Dst: server_has_room
      Src: /src/haproxy/src/backend.c:657,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/backend.c:659,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/backend.c:660,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/backend.c:663,1
    - Dst: fwrr_get_next_server
      Src: /src/haproxy/src/backend.c:699,1
    - Dst: fas_get_next_server
      Src: /src/haproxy/src/backend.c:703,1
    - Dst: fwlc_get_next_server
      Src: /src/haproxy/src/backend.c:707,1
    - Dst: get_server_rnd
      Src: /src/haproxy/src/backend.c:715,1
    - Dst: map_get_server_rr
      Src: /src/haproxy/src/backend.c:717,1
    - Dst: sc_src
      Src: /src/haproxy/src/backend.c:730,1
    - Dst: get_server_sh
      Src: /src/haproxy/src/backend.c:732,1
    - Dst: get_server_sh
      Src: /src/haproxy/src/backend.c:737,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:745,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/backend.c:748,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/backend.c:748,1
    - Dst: htxbuf
      Src: /src/haproxy/src/backend.c:748,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/backend.c:751,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/backend.c:753,1
    - Dst: isttest
      Src: /src/haproxy/src/backend.c:754,1
    - Dst: ist
      Src: /src/haproxy/src/backend.c:755,1
    - Dst: get_server_uh
      Src: /src/haproxy/src/backend.c:757,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:763,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/backend.c:766,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/backend.c:766,1
    - Dst: htxbuf
      Src: /src/haproxy/src/backend.c:766,1
    - Dst: get_server_ph
      Src: /src/haproxy/src/backend.c:767,1
    - Dst: get_server_ph_post
      Src: /src/haproxy/src/backend.c:770,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:776,1
    - Dst: get_server_hh
      Src: /src/haproxy/src/backend.c:777,1
    - Dst: get_server_rch
      Src: /src/haproxy/src/backend.c:782,1
    - Dst: get_server_expr
      Src: /src/haproxy/src/backend.c:787,1
    - Dst: chash_get_next_server
      Src: /src/haproxy/src/backend.c:801,1
    - Dst: map_get_server_rr
      Src: /src/haproxy/src/backend.c:803,1
    - Dst: ss_get_server
      Src: /src/haproxy/src/backend.c:814,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:829,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:831,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/backend.c:833,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:853,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:855,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:856,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 160
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 619
    functionDepth: 4
    functionLinenumber: 619
    functionLinenumberEnd: 862
    functionName: assign_server
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - unlikely
    - srv_currently_usable
    - sc_src
    - http_get_stline
    - ss_get_server
    - server_has_room
    - _HA_ATOMIC_INC
    - get_server_sh
    - chash_get_next_server
    - process_srv_queue
    - map_get_server_rr
    - get_server_ph
    - get_server_hh
    - get_server_uh
    - get_server_ph_post
    - get_server_rch
    - get_server_rnd
    - htxbuf
    - stream_set_srv_target
    - http_parse_path
    - fwlc_get_next_server
    - fas_get_next_server
    - http_uri_parser_init
    - get_server_expr
    - fwrr_get_next_server
    - ist
    - IS_HTX_STRM
    - list_for_each_entry
    - objt_server
    - may_dequeue_tasks
    - htx_sl_req_uri
    - isttest
    - sess_change_server
    linkageType: ''
    returnType: int
    signature: int assign_server(struct stream *s)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:891,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/backend.c:894,1
    - Dst: set_host_port
      Src: /src/haproxy/src/backend.c:897,1
    - Dst: is_addr
      Src: /src/haproxy/src/backend.c:898,1
    - Dst: sc_dst
      Src: /src/haproxy/src/backend.c:904,1
    - Dst: sc_dst
      Src: /src/haproxy/src/backend.c:921,1
    - Dst: get_host_port
      Src: /src/haproxy/src/backend.c:924,1
    - Dst: get_host_port
      Src: /src/haproxy/src/backend.c:927,1
    - Dst: set_host_port
      Src: /src/haproxy/src/backend.c:928,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:933,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:940,1
    - Dst: sc_dst
      Src: /src/haproxy/src/backend.c:944,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: 954
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 954
    functionName: alloc_dst_address
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - get_host_port
    - sockaddr_alloc
    - set_host_port
    - sc_dst
    - 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:986,1
    - Dst: assign_server
      Src: /src/haproxy/src/backend.c:988,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:999,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1006,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1008,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1011,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1013,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:1021,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:1037,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/backend.c:1057,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/backend.c:1064,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/backend.c:1066,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/backend.c:1067,1
    - Dst: pendconn_add
      Src: /src/haproxy/src/backend.c:1073,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1090,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:1093,1
    - Dst: pendconn_add
      Src: /src/haproxy/src/backend.c:1098,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:1115,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/backend.c:1118,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/backend.c:1122,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/backend.c:1125,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/backend.c:1138,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1144,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/backend.c:1147,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1148,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1150,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1153,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1155,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1157,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1158,1
    - Dst: pool_free
      Src: /src/haproxy/src/backend.c:1160,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/backend.c:1163,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:1166,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 101
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 975
    functionDepth: 5
    functionLinenumber: 975
    functionLinenumberEnd: 1185
    functionName: assign_server_and_queue
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    - pendconn_add
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_DEC
    - assign_server
    - srv_dynamic_maxconn
    - unlikely
    - HA_ATOMIC_XCHG
    - pool_free
    - stream_set_srv_target
    - __ha_cpu_relax
    - objt_server
    - eb32_delete
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - _HA_ATOMIC_INC
    - sess_change_server
    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:1215,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:1229,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:1237,1
    - Dst: sc_src
      Src: /src/haproxy/src/backend.c:1240,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:1244,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:1260,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:1262,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/backend.c:1265,1
    - Dst: http_get_htx_hdr
      Src: /src/haproxy/src/backend.c:1273,1
    - Dst: htxbuf
      Src: /src/haproxy/src/backend.c:1273,1
    - Dst: ist2
      Src: /src/haproxy/src/backend.c:1274,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/backend.c:1276,1
    - Dst: htonl
      Src: /src/haproxy/src/backend.c:1280,1
    - Dst: inetaddr_host_lim
      Src: /src/haproxy/src/backend.c:1280,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: 1289
      start: 1202
    functionDepth: 2
    functionLinenumber: 1202
    functionLinenumberEnd: 1289
    functionName: alloc_bind_address
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 1
    functionsReached:
    - http_get_htx_hdr
    - htxbuf
    - IS_HTX_STRM
    - sockaddr_alloc
    - inetaddr_host_lim
    - sockaddr_free
    - BUG_ON
    - sc_src
    - ist2
    - 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:1319,1
    - Dst: srv_lookup_conn
      Src: /src/haproxy/src/backend.c:1320,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1322,1
    - Dst: srv_lookup_conn
      Src: /src/haproxy/src/backend.c:1328,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1330,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1334,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/backend.c:1354,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/backend.c:1379,1
    - Dst: srv_lookup_conn
      Src: /src/haproxy/src/backend.c:1388,1
    - Dst: struct connection*::mux::takeover
      Src: /src/haproxy/src/backend.c:1390,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1391,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1392,1
    - Dst: srv_lookup_conn_next
      Src: /src/haproxy/src/backend.c:1396,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1400,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/backend.c:1420,1
    - Dst: srv_use_conn
      Src: /src/haproxy/src/backend.c:1422,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1424,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1425,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1426,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/backend.c:1428,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/backend.c:1433,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/backend.c:1436,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 85
    argCount: 5
    argNames:
    - reuse_mode
    - srv
    - sess
    - is_safe
    - hash
    argTypes:
    - int
    - struct server*
    - struct session*
    - int
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1303
    functionDepth: 2
    functionLinenumber: 1303
    functionLinenumberEnd: 1441
    functionName: conn_backend_get
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - srv_lookup_conn
    - HA_SPIN_TRYLOCK
    - _HA_ATOMIC_DEC
    - srv_add_to_avail_list
    - _HA_ATOMIC_INC
    - conn_delete_from_tree
    - __ha_barrier_atomic_store
    - _HA_ATOMIC_STORE
    - srv_lookup_conn_next
    - struct connection*::mux::takeover
    - protocol_lookup
    - HA_SPIN_LOCK
    - session_add_conn
    - HA_SPIN_UNLOCK
    - 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:1448,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:1451,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/backend.c:1455,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/backend.c:1455,1
    - Dst: struct connection*::ctrl::connect
      Src: /src/haproxy/src/backend.c:1456,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/backend.c:1468,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/backend.c:1476,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - s
    - conn
    argTypes:
    - struct stream*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1479
    functionName: do_connect_server
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - struct connection*::ctrl::connect
    - co_data
    - unlikely
    - struct connection*::mux::ctl
    - conn_get_src
    - conn_ctrl_ready
    - conn_xprt_ready
    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:1490,1
    - Dst: struct connection*::mux::takeover
      Src: /src/haproxy/src/backend.c:1492,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1493,1
    - Dst: ceb64_item_next
      Src: /src/haproxy/src/backend.c:1496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - root
    - curtid
    argTypes:
    - struct ceb_root**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1485
    functionDepth: 2
    functionLinenumber: 1485
    functionLinenumberEnd: 1500
    functionName: takeover_random_idle_conn
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - ceb64_item_next
    - conn_delete_from_tree
    - struct connection*::mux::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:1522,1
    - Dst: takeover_random_idle_conn
      Src: /src/haproxy/src/backend.c:1524,1
    - Dst: takeover_random_idle_conn
      Src: /src/haproxy/src/backend.c:1526,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1527,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1538,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1539,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1540,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:1547,1
    - Dst: struct connection*::mux::destroy
      Src: /src/haproxy/src/backend.c:1549,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1509
    functionDepth: 3
    functionLinenumber: 1509
    functionLinenumberEnd: 1553
    functionName: kill_random_idle_conn
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - _HA_ATOMIC_DEC
    - struct connection*::mux::destroy
    - HA_SPIN_UNLOCK
    - _HA_ATOMIC_INC
    - takeover_random_idle_conn
    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: 1566
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1566
    functionName: be_reuse_mode
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int be_reuse_mode(struct proxy *be, struct server *srv)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/backend.c:1592,1
    - Dst: memset
      Src: /src/haproxy/src/backend.c:1595,1
    - Dst: istlen
      Src: /src/haproxy/src/backend.c:1601,1
    - Dst: conn_hash_prehash
      Src: /src/haproxy/src/backend.c:1603,1
    - Dst: istptr
      Src: /src/haproxy/src/backend.c:1603,1
    - Dst: istlen
      Src: /src/haproxy/src/backend.c:1603,1
    - Dst: objt_conn
      Src: /src/haproxy/src/backend.c:1614,1
    - Dst: strm_orig
      Src: /src/haproxy/src/backend.c:1614,1
    - Dst: make_proxy_line
      Src: /src/haproxy/src/backend.c:1615,1
    - Dst: conn_hash_prehash
      Src: /src/haproxy/src/backend.c:1619,1
    - Dst: conn_calculate_hash
      Src: /src/haproxy/src/backend.c:1653,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: 1654
      start: 1583
    functionDepth: 3
    functionLinenumber: 1583
    functionLinenumberEnd: 1654
    functionName: be_calculate_conn_hash
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - memset
    - istlen
    - objt_conn
    - make_proxy_line
    - conn_hash_prehash
    - istptr
    - conn_calculate_hash
    - strm_orig
    - BUG_ON_HOT
    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:1676,1
    - Dst: session_get_conn
      Src: /src/haproxy/src/backend.c:1679,1
    - Dst: ceb_isempty
      Src: /src/haproxy/src/backend.c:1702,1
    - Dst: srv_lookup_conn
      Src: /src/haproxy/src/backend.c:1703,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:1706,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/backend.c:1706,1
    - Dst: conn_backend_get
      Src: /src/haproxy/src/backend.c:1721,1
    - Dst: conn_backend_get
      Src: /src/haproxy/src/backend.c:1727,1
    - Dst: conn_backend_get
      Src: /src/haproxy/src/backend.c:1733,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/backend.c:1745,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/backend.c:1749,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1750,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1751,1
    - Dst: struct connection*::mux::attach
      Src: /src/haproxy/src/backend.c:1755,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/backend.c:1756,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/backend.c:1758,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: 1775
      start: 1671
    functionDepth: 3
    functionLinenumber: 1671
    functionLinenumberEnd: 1775
    functionName: be_reuse_connection
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - srv_lookup_conn
    - struct connection*::mux::avail_streams
    - be_reuse_mode
    - sc_ep_clr
    - conn_delete_from_tree
    - conn_backend_get
    - BUG_ON
    - sc_reset_endp
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - struct connection*::mux::attach
    - LIST_INLIST
    - ceb_isempty
    - session_get_conn
    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: 76
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/backend.c:1793,1
    - Dst: strm_orig
      Src: /src/haproxy/src/backend.c:1793,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:1806,1
    - Dst: be_reuse_mode
      Src: /src/haproxy/src/backend.c:1807,1
    - Dst: alloc_dst_address
      Src: /src/haproxy/src/backend.c:1809,1
    - Dst: alloc_bind_address
      Src: /src/haproxy/src/backend.c:1813,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:1820,1
    - Dst: srv_check_reuse_ws
      Src: /src/haproxy/src/backend.c:1820,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:1821,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/backend.c:1829,1
    - Dst: ist2
      Src: /src/haproxy/src/backend.c:1833,1
    - Dst: be_calculate_conn_hash
      Src: /src/haproxy/src/backend.c:1838,1
    - Dst: be_reuse_connection
      Src: /src/haproxy/src/backend.c:1839,1
    - Dst: sc_conn
      Src: /src/haproxy/src/backend.c:1845,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/backend.c:1856,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/backend.c:1857,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/backend.c:1858,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1859,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1860,1
    - Dst: struct connection*::mux::destroy
      Src: /src/haproxy/src/backend.c:1866,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1869,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/backend.c:1881,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/backend.c:1883,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/backend.c:1886,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/backend.c:1887,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/backend.c:1888,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/backend.c:1890,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/backend.c:1895,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/backend.c:1897,1
    - Dst: DBG_TRACE_USER
      Src: /src/haproxy/src/backend.c:1912,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/backend.c:1927,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/backend.c:1930,1
    - Dst: kill_random_idle_conn
      Src: /src/haproxy/src/backend.c:1932,1
    - Dst: conn_new
      Src: /src/haproxy/src/backend.c:1952,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:1954,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/backend.c:1961,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:1984,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/backend.c:1988,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:2019,1
    - Dst: sc_oc
      Src: /src/haproxy/src/backend.c:2019,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/backend.c:2030,1
    - Dst: conn_prepare
      Src: /src/haproxy/src/backend.c:2032,1
    - Dst: conn_free
      Src: /src/haproxy/src/backend.c:2033,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:2036,1
    - Dst: conn_prepare
      Src: /src/haproxy/src/backend.c:2040,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/backend.c:2040,1
    - Dst: xprt_get
      Src: /src/haproxy/src/backend.c:2040,1
    - Dst: conn_free
      Src: /src/haproxy/src/backend.c:2042,1
    - Dst: conn_free
      Src: /src/haproxy/src/backend.c:2047,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/backend.c:2051,1
    - Dst: conn_free
      Src: /src/haproxy/src/backend.c:2052,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:2062,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2083,1
    - Dst: conn_update_alpn
      Src: /src/haproxy/src/backend.c:2103,1
    - Dst: ist
      Src: /src/haproxy/src/backend.c:2103,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2104,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:2114,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/backend.c:2116,1
    - Dst: strm_fe
      Src: /src/haproxy/src/backend.c:2121,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2130,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2132,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2135,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2137,1
    - Dst: do_connect_server
      Src: /src/haproxy/src/backend.c:2140,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/backend.c:2146,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/backend.c:2149,1
    - Dst: smp_make_safe
      Src: /src/haproxy/src/backend.c:2152,1
    - Dst: ssl_sock_set_servername
      Src: /src/haproxy/src/backend.c:2153,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/backend.c:2161,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/backend.c:2162,1
    - Dst: conn_xprt_start
      Src: /src/haproxy/src/backend.c:2166,1
    - Dst: likely
      Src: /src/haproxy/src/backend.c:2175,1
    - Dst: srv_get_ws_proto
      Src: /src/haproxy/src/backend.c:2175,1
    - Dst: conn_install_mux_be
      Src: /src/haproxy/src/backend.c:2176,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/backend.c:2177,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/backend.c:2180,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/backend.c:2191,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/backend.c:2192,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/backend.c:2198,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/backend.c:2222,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/backend.c:2228,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/backend.c:2229,1
    - Dst: struct stream*::be::lbprm::server_take_conn
      Src: /src/haproxy/src/backend.c:2231,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/backend.c:2248,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/backend.c:2250,1
    - Dst: sc_oc
      Src: /src/haproxy/src/backend.c:2253,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/backend.c:2265,1
    - Dst: sc_ic
      Src: /src/haproxy/src/backend.c:2267,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/backend.c:2274,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/backend.c:2276,1
    CyclomaticComplexity: 124
    EdgeCount: 124
    ICount: 248
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 1791
    functionDepth: 4
    functionLinenumber: 1791
    functionLinenumberEnd: 2282
    functionName: connect_server
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 1
    functionsReached:
    - sc_conn
    - be_reuse_connection
    - HA_SPIN_TRYLOCK
    - co_data
    - obj_type
    - alloc_dst_address
    - unlikely
    - conn_is_ssl
    - conn_full_close
    - conn_update_alpn
    - sample_fetch_as_type
    - struct connection*::mux::destroy
    - task_wakeup
    - strm_fe
    - conn_install_mux_be
    - kill_random_idle_conn
    - srv_get_ws_proto
    - protocol_lookup
    - HA_SPIN_LOCK
    - session_add_conn
    - _HA_ATOMIC_INC
    - conn_xprt_start
    - sc_state_in
    - sc_attach_mux
    - struct stream*::be::lbprm::server_take_conn
    - DBG_TRACE_STATE
    - sc_ep_test
    - objt_conn
    - sc_ep_clr
    - MT_LIST_APPEND
    - conn_set_private
    - HA_ATOMIC_UPDATE_MAX
    - conn_create_mux
    - strm_orig
    - alloc_bind_address
    - ist2
    - ALREADY_CHECKED
    - tick_add_ifset
    - likely
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - smp_make_safe
    - srv_check_reuse_ws
    - conn_prepare
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_DEC
    - struct connection*::mux::avail_streams
    - sockaddr_free
    - struct connection*::mux::ctl
    - BUG_ON
    - xprt_add_hs
    - sc_ic
    - conn_new
    - conn_free
    - LIST_ELEM
    - ist
    - IS_HTX_STRM
    - _HA_ATOMIC_ADD_FETCH
    - be_reuse_mode
    - srv_add_to_avail_list
    - ssl_sock_set_servername
    - conn_delete_from_tree
    - __ha_cpu_relax
    - objt_server
    - sc_oc
    - do_connect_server
    - xprt_get
    - DBG_TRACE_USER
    - be_calculate_conn_hash
    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:2302,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2303,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/backend.c:2320,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2329,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2331,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2341,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/backend.c:2345,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2354,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2354,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2355,1
    - Dst: srv_inc_sess_ctr
      Src: /src/haproxy/src/backend.c:2366,1
    - Dst: srv_set_sess_last
      Src: /src/haproxy/src/backend.c:2368,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2370,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2372,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2375,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2376,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2383
      start: 2293
    functionDepth: 6
    functionLinenumber: 2293
    functionLinenumberEnd: 2383
    functionName: srv_redispatch_connect
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - process_srv_queue
    - unlikely
    - sockaddr_free
    - objt_server
    - assign_server_and_queue
    - tick_add_ifset
    - may_dequeue_tasks
    - srv_inc_sess_ctr
    - _HA_ATOMIC_INC
    - srv_set_sess_last
    linkageType: ''
    returnType: int
    signature: int srv_redispatch_connect(struct stream *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:2390,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/backend.c:2390,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - req
    - s
    argTypes:
    - struct channel*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2386
    functionDepth: 1
    functionLinenumber: 2386
    functionLinenumberEnd: 2391
    functionName: back_may_abort_req
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - co_data
    - proxy_abrt_close
    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:2401,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/backend.c:2405,1
    - Dst: back_may_abort_req
      Src: /src/haproxy/src/backend.c:2414,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2416,1
    - Dst: connect_server
      Src: /src/haproxy/src/backend.c:2420,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2421,1
    - Dst: srv_inc_sess_ctr
      Src: /src/haproxy/src/backend.c:2426,1
    - Dst: srv_set_sess_last
      Src: /src/haproxy/src/backend.c:2428,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2429,1
    - Dst: srv_inc_sess_ctr
      Src: /src/haproxy/src/backend.c:2442,1
    - Dst: srv_set_sess_last
      Src: /src/haproxy/src/backend.c:2444,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2446,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2448,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:2451,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2452,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2453,1
    - Dst: sc_abort
      Src: /src/haproxy/src/backend.c:2456,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2457,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2460,1
    - Dst: pendconn_cond_unlink
      Src: /src/haproxy/src/backend.c:2463,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2468,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2469,1
    - Dst: back_handle_st_cer
      Src: /src/haproxy/src/backend.c:2479,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2481,1
    - Dst: pendconn_dequeue
      Src: /src/haproxy/src/backend.c:2486,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2493,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2496,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2499,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2508,1
    - Dst: pendconn_cond_unlink
      Src: /src/haproxy/src/backend.c:2511,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: sc_abort
      Src: /src/haproxy/src/backend.c:2517,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2518,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2524,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2525,1
    - Dst: back_may_abort_req
      Src: /src/haproxy/src/backend.c:2530,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2531,1
    - Dst: pendconn_cond_unlink
      Src: /src/haproxy/src/backend.c:2534,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2537,1
    - Dst: back_may_abort_req
      Src: /src/haproxy/src/backend.c:2545,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2547,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2566,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:2570,1
    - Dst: sc_abort
      Src: /src/haproxy/src/backend.c:2577,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2578,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2581,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/backend.c:2582,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 125
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2584
      start: 2399
    functionDepth: 5
    functionLinenumber: 2399
    functionLinenumberEnd: 2584
    functionName: back_try_conn_req
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - pendconn_dequeue
    - back_may_abort_req
    - back_handle_st_cer
    - unlikely
    - srv_inc_sess_ctr
    - _HA_ATOMIC_INC
    - process_srv_queue
    - DBG_TRACE_STATE
    - struct stream*::srv_error
    - connect_server
    - ns_to_ms
    - DBG_TRACE_ENTER
    - srv_set_sess_last
    - pendconn_cond_unlink
    - sc_abort
    - DBG_TRACE_LEAVE
    - objt_server
    - may_dequeue_tasks
    - sc_shutdown
    - sess_change_server
    - DBG_TRACE_DEVEL
    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:2599,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2601,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:2601,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:2608,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/backend.c:2608,1
    - Dst: sc_applet_create
      Src: /src/haproxy/src/backend.c:2609,1
    - Dst: objt_applet
      Src: /src/haproxy/src/backend.c:2609,1
    - Dst: sc_abort
      Src: /src/haproxy/src/backend.c:2617,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2618,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2623,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2624,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2628,1
    - Dst: srv_redispatch_connect
      Src: /src/haproxy/src/backend.c:2633,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2638,1
    - Dst: sc_abort
      Src: /src/haproxy/src/backend.c:2643,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2644,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2650,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2651,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2656,1
    - Dst: be_set_sess_last
      Src: /src/haproxy/src/backend.c:2658,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2659,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:2662,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2592
    functionDepth: 7
    functionLinenumber: 2592
    functionLinenumberEnd: 2663
    functionName: back_handle_st_req
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - obj_type
    - DBG_TRACE_STATE
    - sc_applet_create
    - struct stream*::srv_error
    - unlikely
    - sc_abort
    - objt_applet
    - ns_to_ms
    - be_set_sess_last
    - BUG_ON
    - DBG_TRACE_LEAVE
    - sc_appctx
    - sc_shutdown
    - DBG_TRACE_ENTER
    - srv_redispatch_connect
    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:2677,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:2682,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/backend.c:2682,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2684,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2687,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2689,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2704,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:2708,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2672
    functionDepth: 1
    functionLinenumber: 2672
    functionLinenumberEnd: 2709
    functionName: back_handle_st_con
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - co_data
    - DBG_TRACE_STATE
    - struct stream*::srv_error
    - DBG_TRACE_LEAVE
    - sc_shutdown
    - DBG_TRACE_ENTER
    - proxy_abrt_close
    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:2725,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2731,1
    - Dst: sc_conn
      Src: /src/haproxy/src/backend.c:2732,1
    - Dst: health_adjust
      Src: /src/haproxy/src/backend.c:2734,1
    - Dst: __objt_server
      Src: /src/haproxy/src/backend.c:2734,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/backend.c:2738,1
    - Dst: __objt_server
      Src: /src/haproxy/src/backend.c:2738,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/backend.c:2760,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2771,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2773,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:2774,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2775,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2775,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2776,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2776,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2779,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2784,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2786,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/backend.c:2800,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2805,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2807,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/backend.c:2808,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/backend.c:2809,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2809,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/backend.c:2810,1
    - Dst: objt_server
      Src: /src/haproxy/src/backend.c:2810,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2813,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2818,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2820,1
    - Dst: stream_choose_redispatch
      Src: /src/haproxy/src/backend.c:2825,1
    - Dst: tick_add
      Src: /src/haproxy/src/backend.c:2850,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/backend.c:2850,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2852,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:2856,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2720
    functionDepth: 1
    functionLinenumber: 2720
    functionLinenumberEnd: 2857
    functionName: back_handle_st_cer
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 1
    functionsReached:
    - sc_conn
    - stream_choose_redispatch
    - _HA_ATOMIC_INC
    - process_srv_queue
    - DBG_TRACE_STATE
    - struct stream*::srv_error
    - health_adjust
    - DBG_TRACE_ENTER
    - _HA_ATOMIC_DEC
    - __objt_server
    - MS_TO_TICKS
    - tick_add
    - DBG_TRACE_LEAVE
    - objt_server
    - sc_reset_endp
    - may_dequeue_tasks
    - sc_shutdown
    - sess_change_server
    - DBG_TRACE_DEVEL
    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:2871,1
    - Dst: unlikely
      Src: /src/haproxy/src/backend.c:2873,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:2873,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/backend.c:2877,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/backend.c:2877,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/backend.c:2881,1
    - Dst: be_set_sess_last
      Src: /src/haproxy/src/backend.c:2882,1
    - Dst: co_data
      Src: /src/haproxy/src/backend.c:2907,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/backend.c:2907,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/backend.c:2910,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/backend.c:2913,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2914,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2923,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/backend.c:2931,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:2936,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2866
    functionDepth: 1
    functionLinenumber: 2866
    functionLinenumberEnd: 2937
    functionName: back_handle_st_rdy
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - obj_type
    - co_data
    - struct stream*::srv_error
    - DBG_TRACE_STATE
    - unlikely
    - ns_to_ms
    - be_set_sess_last
    - DBG_TRACE_LEAVE
    - BUG_ON
    - sc_appctx
    - sc_shutdown
    - DBG_TRACE_ENTER
    - proxy_abrt_close
    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:2944,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/backend.c:2945,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/backend.c:2946,1
    - Dst: ha_alert
      Src: /src/haproxy/src/backend.c:2949,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/backend.c:2949,1
    - Dst: send_log
      Src: /src/haproxy/src/backend.c:2950,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/backend.c:2950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2942
    functionDepth: 1
    functionLinenumber: 2942
    functionLinenumberEnd: 2952
    functionName: set_backend_down
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_INC
    - send_log
    - ns_to_sec
    - ha_alert
    - proxy_type_str
    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:2970,1
    - Dst: memset
      Src: /src/haproxy/src/backend.c:2975,1
    - Dst: fetch_rdp_cookie_name
      Src: /src/haproxy/src/backend.c:2977,1
    - Dst: strtoul
      Src: /src/haproxy/src/backend.c:2986,1
    - Dst: ntohs
      Src: /src/haproxy/src/backend.c:2991,1
    - Dst: strtoul
      Src: /src/haproxy/src/backend.c:2991,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/backend.c:3003,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/backend.c:3013,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: 3015
      start: 2960
    functionDepth: 1
    functionLinenumber: 2960
    functionLinenumberEnd: 3015
    functionName: tcp_persist_rdp_cookie
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - memset
    - stream_set_srv_target
    - ntohs
    - DBG_TRACE_LEAVE
    - DBG_TRACE_ENTER
    - strtoul
    - fetch_rdp_cookie_name
    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:3018,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/backend.c:3021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3022
      start: 3017
    functionDepth: 1
    functionLinenumber: 3017
    functionLinenumberEnd: 3022
    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: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - algo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3055
      start: 3029
    functionDepth: 0
    functionLinenumber: 3029
    functionLinenumberEnd: 3055
    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:3073,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3077,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3081,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3085,1
    - Dst: strncmp
      Src: /src/haproxy/src/backend.c:3089,1
    - Dst: strtol
      Src: /src/haproxy/src/backend.c:3099,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3103,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3105,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3110,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3115,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3119,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3129,1
    - Dst: atoi
      Src: /src/haproxy/src/backend.c:3130,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3131,1
    - Dst: atoi
      Src: /src/haproxy/src/backend.c:3134,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3137,1
    - Dst: atoi
      Src: /src/haproxy/src/backend.c:3138,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3139,1
    - Dst: atoi
      Src: /src/haproxy/src/backend.c:3145,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3148,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3152,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3157,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3162,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3164,1
    - Dst: free
      Src: /src/haproxy/src/backend.c:3170,1
    - Dst: strdup
      Src: /src/haproxy/src/backend.c:3171,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3172,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3174,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3175,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3180,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3182,1
    - Dst: ha_free
      Src: /src/haproxy/src/backend.c:3188,1
    - Dst: strdup
      Src: /src/haproxy/src/backend.c:3189,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3190,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3193,1
    - Dst: strncmp
      Src: /src/haproxy/src/backend.c:3197,1
    - Dst: strchr
      Src: /src/haproxy/src/backend.c:3201,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3204,1
    - Dst: free
      Src: /src/haproxy/src/backend.c:3211,1
    - Dst: my_strndup
      Src: /src/haproxy/src/backend.c:3213,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3217,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3218,1
    - Dst: strncmp
      Src: /src/haproxy/src/backend.c:3224,1
    - Dst: strchr
      Src: /src/haproxy/src/backend.c:3232,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3235,1
    - Dst: free
      Src: /src/haproxy/src/backend.c:3239,1
    - Dst: my_strndup
      Src: /src/haproxy/src/backend.c:3240,1
    - Dst: free
      Src: /src/haproxy/src/backend.c:3244,1
    - Dst: strdup
      Src: /src/haproxy/src/backend.c:3245,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3246,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3249,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3253,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3255,1
    - Dst: ha_free
      Src: /src/haproxy/src/backend.c:3261,1
    - Dst: strdup
      Src: /src/haproxy/src/backend.c:3262,1
    - Dst: strcmp
      Src: /src/haproxy/src/backend.c:3264,1
    - Dst: memprintf
      Src: /src/haproxy/src/backend.c:3269,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 175
    argCount: 3
    argNames:
    - args
    - err
    - curproxy
    argTypes:
    - char**
    - char**
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3064
    functionDepth: 1
    functionLinenumber: 3064
    functionLinenumberEnd: 3273
    functionName: backend_parse_balance
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - strdup
    - strcmp
    - strncmp
    - ha_free
    - atoi
    - strlen
    - free
    - memprintf
    - strchr
    - strtol
    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:3297,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: 3300
      start: 3284
    functionDepth: 1
    functionLinenumber: 3284
    functionLinenumberEnd: 3300
    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: 3320
      start: 3307
    functionDepth: 0
    functionLinenumber: 3307
    functionLinenumberEnd: 3320
    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: 3356
      start: 3326
    functionDepth: 0
    functionLinenumber: 3326
    functionLinenumberEnd: 3356
    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:3366,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3367,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: 3375
      start: 3359
    functionDepth: 1
    functionLinenumber: 3359
    functionLinenumberEnd: 3375
    functionName: smp_fetch_be_id
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - obj_type
    - __objt_check
    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:3385,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3386,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3396,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: 3399
      start: 3378
    functionDepth: 1
    functionLinenumber: 3378
    functionLinenumberEnd: 3399
    functionName: smp_fetch_be_name
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - strlen
    - obj_type
    - __objt_check
    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:3408,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3409,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3410,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: 3418
      start: 3402
    functionDepth: 1
    functionLinenumber: 3402
    functionLinenumberEnd: 3418
    functionName: smp_fetch_srv_id
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - obj_type
    - objt_server
    - __objt_check
    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:3427,1
    - Dst: obj_type
      Src: /src/haproxy/src/backend.c:3428,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3429,1
    - Dst: strlen
      Src: /src/haproxy/src/backend.c:3438,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: 3441
      start: 3421
    functionDepth: 1
    functionLinenumber: 3421
    functionLinenumberEnd: 3441
    functionName: smp_fetch_srv_name
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - strlen
    - obj_type
    - objt_server
    - __objt_check
    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:3459,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: 3461
      start: 3447
    functionDepth: 1
    functionLinenumber: 3447
    functionLinenumberEnd: 3461
    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: 3481
      start: 3467
    functionDepth: 0
    functionLinenumber: 3467
    functionLinenumberEnd: 3481
    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:3509,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/backend.c:3520,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: 3526
      start: 3488
    functionDepth: 1
    functionLinenumber: 3488
    functionLinenumberEnd: 3526
    functionName: smp_fetch_be_conn_free
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - srv_dynamic_maxconn
    - srv_currently_usable
    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: 3546
      start: 3532
    functionDepth: 0
    functionLinenumber: 3532
    functionLinenumberEnd: 3546
    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:3570,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: 3578
      start: 3556
    functionDepth: 1
    functionLinenumber: 3556
    functionLinenumberEnd: 3578
    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: 3591
      start: 3584
    functionDepth: 0
    functionLinenumber: 3584
    functionLinenumberEnd: 3591
    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:3611,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: 3618
      start: 3597
    functionDepth: 1
    functionLinenumber: 3597
    functionLinenumberEnd: 3618
    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: 3631
      start: 3624
    functionDepth: 0
    functionLinenumber: 3624
    functionLinenumberEnd: 3631
    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:3642,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: 3644
      start: 3637
    functionDepth: 1
    functionLinenumber: 3637
    functionLinenumberEnd: 3644
    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: 3660
      start: 3650
    functionDepth: 0
    functionLinenumber: 3650
    functionLinenumberEnd: 3660
    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: 3673
      start: 3666
    functionDepth: 0
    functionLinenumber: 3666
    functionLinenumberEnd: 3673
    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: 3686
      start: 3679
    functionDepth: 0
    functionLinenumber: 3679
    functionLinenumberEnd: 3686
    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:3695,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3696,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/backend.c:3702,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: 3704
      start: 3688
    functionDepth: 1
    functionLinenumber: 3688
    functionLinenumberEnd: 3704
    functionName: smp_fetch_be_server_timeout
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - obj_type
    - TICKS_TO_MS
    - __objt_check
    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:3713,1
    - Dst: __objt_check
      Src: /src/haproxy/src/backend.c:3714,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/backend.c:3720,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: 3722
      start: 3706
    functionDepth: 1
    functionLinenumber: 3706
    functionLinenumberEnd: 3722
    functionName: smp_fetch_be_tunnel_timeout
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - obj_type
    - TICKS_TO_MS
    - __objt_check
    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:3729,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/backend.c:3732,1
    - Dst: be_usable_srv
      Src: /src/haproxy/src/backend.c:3737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3724
    functionDepth: 1
    functionLinenumber: 3724
    functionLinenumberEnd: 3740
    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:3747,1
    - Dst: strchr
      Src: /src/haproxy/src/backend.c:3750,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/backend.c:3754,1
    - Dst: server_find
      Src: /src/haproxy/src/backend.c:3764,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3765
      start: 3742
    functionDepth: 1
    functionLinenumber: 3742
    functionLinenumberEnd: 3765
    functionName: sample_conv_srv
    functionSourceFile: /src/haproxy/src/backend.c
    functionUses: 0
    functionsReached:
    - proxy_find_by_name
    - server_find
    - smp_make_safe
    - 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:3770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3782
      start: 3767
    functionDepth: 2
    functionLinenumber: 3767
    functionLinenumberEnd: 3782
    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:3787,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3795
      start: 3784
    functionDepth: 2
    functionLinenumber: 3784
    functionLinenumberEnd: 3795
    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:
    - istptr
    - isteqi
    - http_find_hdr_value_end
    - istend
    - HTTP_IS_LWS
    - ist
    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:
    - isteq
    - istlen
    - http_get_host_port
    - http_is_default_port
    - isteqi
    - 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:
    - istlen
    - http_get_host_port
    - http_is_default_port
    - isteqi
    - 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:
    - istcat
    - isteqi
    - http_find_hdr_value_end
    - HTTP_IS_LWS
    - ist
    linkageType: ''
    returnType: void
    signature: void h1_parse_connection_header(struct h1m *h1m, struct ist *value)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: istend
      Src: /src/haproxy/src/h1.c:287,1
    - 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
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - h1m
    - value
    argTypes:
    - struct h1m*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 308
    functionName: h1_parse_upgrade_header
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 1
    functionsReached:
    - isteqi
    - http_find_hdr_value_end
    - istend
    - HTTP_IS_LWS
    - ist
    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: 324
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 324
    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: 338
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 338
    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: 157
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:428,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:438,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h1.c:438,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:452,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:452,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:457,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:458,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:459,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:464,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:465,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:470,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h1.c:470,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:471,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:473,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:473,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/h1.c:475,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:476,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:479,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:479,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/h1.c:482,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:488,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:496,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:496,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:500,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:500,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:501,1
    - Dst: is_char4_outside
      Src: /src/haproxy/src/h1.c:510,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:521,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:528,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:531,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:531,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:533,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:535,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:544,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:547,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:547,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:559,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:559,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:563,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:563,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:564,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:571,1
    - Dst: HTTP_IS_VER_TOKEN
      Src: /src/haproxy/src/h1.c:571,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:572,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:574,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:574,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:584,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:590,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:595,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:595,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:597,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:602,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:602,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:606,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:607,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:626,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:629,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:630,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:638,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h1.c:638,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:652,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:652,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:657,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:658,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:659,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:664,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:665,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:670,1
    - Dst: HTTP_IS_VER_TOKEN
      Src: /src/haproxy/src/h1.c:670,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:671,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:673,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:673,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:681,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:688,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:688,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:693,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:693,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:694,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:701,1
    - Dst: HTTP_IS_DIGIT
      Src: /src/haproxy/src/h1.c:701,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:703,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:706,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:706,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:711,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:711,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:713,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:720,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:725,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:725,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:729,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:729,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:730,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:736,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:736,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:737,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:747,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:748,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:753,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:753,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:757,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:758,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:764,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:765,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:771,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:771,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:775,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:776,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:782,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h1.c:782,1
    - Dst: isupper
      Src: /src/haproxy/src/h1.c:785,1
    - Dst: tolower
      Src: /src/haproxy/src/h1.c:786,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:788,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:791,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:797,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:800,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:809,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:814,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:814,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:815,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:820,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:820,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:824,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:825,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:830,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:831,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:835,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:835,1
    - Dst: is_char8_below_opt
      Src: /src/haproxy/src/h1.c:860,1
    - Dst: is_char4_below_opt
      Src: /src/haproxy/src/h1.c:867,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:877,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:888,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:888,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:889,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:896,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:897,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:902,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:903,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:907,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1.c:907,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:925,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:926,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h1.c:929,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:933,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:934,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:939,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:944,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:944,1
    - Dst: h1_parse_xfer_enc_header
      Src: /src/haproxy/src/h1.c:945,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:962,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:962,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h1.c:965,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:978,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:978,1
    - Dst: h1_parse_connection_header
      Src: /src/haproxy/src/h1.c:979,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:985,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:985,1
    - Dst: h1_parse_upgrade_header
      Src: /src/haproxy/src/h1.c:986,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:988,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:988,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h1.c:991,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:998,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:1008,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:1014,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1.c:1014,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:1017,1
    - Dst: EAT_AND_JUMP_OR_RETURN
      Src: /src/haproxy/src/h1.c:1018,1
    - Dst: EXPECT_LF_HERE
      Src: /src/haproxy/src/h1.c:1023,1
    - Dst: likely
      Src: /src/haproxy/src/h1.c:1029,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1.c:1030,1
    - Dst: http_set_hdr
      Src: /src/haproxy/src/h1.c:1034,1
    - Dst: ist2
      Src: /src/haproxy/src/h1.c:1034,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:1034,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/h1.c:1049,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/h1.c:1057,1
    - Dst: istlen
      Src: /src/haproxy/src/h1.c:1061,1
    - Dst: http_parse_scheme
      Src: /src/haproxy/src/h1.c:1075,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:1076,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/h1.c:1085,1
    - Dst: h1_validate_connect_authority
      Src: /src/haproxy/src/h1.c:1086,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/h1.c:1094,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/h1.c:1112,1
    - Dst: isttest
      Src: /src/haproxy/src/h1.c:1114,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1.c:1114,1
    - Dst: h1_validate_mismatch_authority
      Src: /src/haproxy/src/h1.c:1115,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1.c:1144,1
    - Dst: ist
      Src: /src/haproxy/src/h1.c:1144,1
    CyclomaticComplexity: 231
    EdgeCount: 231
    ICount: 667
    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: 1213
      start: 388
    functionDepth: 3
    functionLinenumber: 388
    functionLinenumberEnd: 1213
    functionName: h1_headers_to_hdr_list
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 1
    functionsReached:
    - HTTP_IS_SPHT
    - http_del_hdr
    - is_char4_outside
    - HTTP_IS_VER_TOKEN
    - unlikely
    - EAT_AND_JUMP_OR_RETURN
    - EXPECT_LF_HERE
    - is_char8_below_opt
    - tolower
    - istlen
    - h1_validate_mismatch_authority
    - h1_parse_connection_header
    - http_set_hdr
    - http_authority_has_forbidden_char
    - http_parse_authority
    - find_http_meth
    - http_parse_cont_len_header
    - ist2
    - ALREADY_CHECKED
    - isupper
    - likely
    - HTTP_IS_LWS
    - http_uri_parser_init
    - HTTP_IS_TOKEN
    - isteqi
    - HTTP_IS_CRLF
    - h1_validate_connect_authority
    - ist
    - HTTP_IS_DIGIT
    - h1_parse_xfer_enc_header
    - http_parse_scheme
    - h1_parse_upgrade_header
    - is_char4_below_opt
    - 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
      Src: /src/haproxy/src/h1.c:1222,1
    - Dst: ha_random64
      Src: /src/haproxy/src/h1.c:1222,1
    - Dst: memcpy
      Src: /src/haproxy/src/h1.c:1225,1
    - Dst: memcpy
      Src: /src/haproxy/src/h1.c:1226,1
    - Dst: a2base64
      Src: /src/haproxy/src/h1.c:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key_out
    argTypes:
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1228
    functionName: h1_generate_random_ws_input_key
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 1
    functionsReached:
    - a2base64
    - ha_random64
    - memcpy
    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:1243,1
    - Dst: memcpy
      Src: /src/haproxy/src/h1.c:1244,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/h1.c:1247,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/h1.c:1248,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/h1.c:1249,1
    - Dst: a2base64
      Src: /src/haproxy/src/h1.c:1252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - key
    - result
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1253
    functionName: h1_calculate_ws_output_key
    functionSourceFile: /src/haproxy/src/h1.c
    functionUses: 2
    functionsReached:
    - blk_SHA1_Final
    - blk_SHA1_Init
    - a2base64
    - blk_SHA1_Update
    - memcpy
    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:1260,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: 1265
      start: 1256
    functionDepth: 1
    functionLinenumber: 1256
    functionLinenumberEnd: 1265
    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:73,1
    - Dst: objt_check
      Src: /src/haproxy/src/vars.c:82,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: 93
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 93
    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:104,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/vars.c:108,1
    - Dst: objt_check
      Src: /src/haproxy/src/vars.c:112,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/vars.c:115,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/vars.c:121,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/vars.c:125,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: 127
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 127
    functionName: var_accounting_diff
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_ADD
    - objt_check
    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:149,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:169,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: 171
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 171
    functionName: var_accounting_add
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_accounting_diff
    - objt_check
    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:182,1
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:186,1
    - Dst: cebu64_item_delete
      Src: /src/haproxy/src/vars.c:193,1
    - Dst: pool_free
      Src: /src/haproxy/src/vars.c:195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - vars
    - var
    - force
    argTypes:
    - struct vars*
    - struct var*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 199
    functionName: var_clear
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - pool_free
    - ha_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:211,1
    - Dst: var_clear
      Src: /src/haproxy/src/vars.c:212,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/vars.c:219,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/vars.c:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - vars
    argTypes:
    - struct vars*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 222
    functionName: vars_prune_per_sess
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - cebu64_item_first
    - _HA_ATOMIC_SUB
    - var_clear
    linkageType: ''
    returnType: void
    signature: void vars_prune_per_sess(struct vars *vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/vars.c:227,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/vars.c:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - vars
    - scope
    argTypes:
    - struct vars*
    - enum vars_scope
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 231
    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:244,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:249,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:256,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:262,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:285,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:290,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:295,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:300,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:305,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:311,1
    - Dst: isalnum
      Src: /src/haproxy/src/vars.c:318,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:319,1
    - Dst: XXH3
      Src: /src/haproxy/src/vars.c:324,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 75
    argCount: 4
    argNames:
    - name
    - len
    - desc
    - err
    argTypes:
    - char*
    - int
    - struct var_desc*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 326
    functionName: vars_fill_desc
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - XXH3
    - isalnum
    - strncmp
    - memprintf
    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:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vars
    - name_hash
    argTypes:
    - struct vars*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 337
    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:348,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: 349
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 349
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:359,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:360,1
    - Dst: ha_free
      Src: /src/haproxy/src/vars.c:364,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:365,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: 368
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 368
    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: 30
    BranchProfiles: []
    Callsites:
    - Dst: get_vars
      Src: /src/haproxy/src/vars.c:403,1
    - Dst: vars_wrlock
      Src: /src/haproxy/src/vars.c:407,1
    - Dst: var_get
      Src: /src/haproxy/src/vars.c:410,1
    - Dst: var_accounting_add
      Src: /src/haproxy/src/vars.c:425,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/vars.c:429,1
    - Dst: cebu64_item_insert
      Src: /src/haproxy/src/vars.c:435,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:468,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:477,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:481,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:485,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:495,1
    - Dst: var_accounting_add
      Src: /src/haproxy/src/vars.c:496,1
    - Dst: malloc
      Src: /src/haproxy/src/vars.c:501,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:503,1
    - Dst: memcpy
      Src: /src/haproxy/src/vars.c:509,1
    - Dst: var_clear_buffer
      Src: /src/haproxy/src/vars.c:513,1
    - Dst: var_accounting_add
      Src: /src/haproxy/src/vars.c:518,1
    - Dst: malloc
      Src: /src/haproxy/src/vars.c:523,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:525,1
    - Dst: memcpy
      Src: /src/haproxy/src/vars.c:532,1
    - Dst: vars_wrunlock
      Src: /src/haproxy/src/vars.c:540,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 122
    argCount: 3
    argNames:
    - desc
    - smp
    - flags
    argTypes:
    - struct var_desc*
    - struct sample*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 393
    functionDepth: 3
    functionLinenumber: 393
    functionLinenumberEnd: 542
    functionName: var_set
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_get
    - vars_wrlock
    - pool_alloc
    - cebu64_item_insert
    - var_accounting_add
    - malloc
    - get_vars
    - var_accounting_diff
    - vars_wrunlock
    - var_clear_buffer
    - memcpy
    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:557,1
    - Dst: vars_wrlock
      Src: /src/haproxy/src/vars.c:562,1
    - Dst: var_get
      Src: /src/haproxy/src/vars.c:563,1
    - Dst: var_clear
      Src: /src/haproxy/src/vars.c:565,1
    - Dst: var_accounting_diff
      Src: /src/haproxy/src/vars.c:566,1
    - Dst: vars_wrunlock
      Src: /src/haproxy/src/vars.c:568,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - desc
    - smp
    argTypes:
    - struct var_desc*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 570
    functionName: var_unset
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_get
    - vars_wrlock
    - get_vars
    - var_clear
    - var_accounting_diff
    - vars_wrunlock
    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:585,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:593,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - cond
    - cond_bitmap
    - err
    argTypes:
    - struct buffer*
    - uint*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 596
    functionName: vars_parse_cond_param
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - memprintf
    - chunk_strcmp
    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:605,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 599
    functionDepth: 4
    functionLinenumber: 599
    functionLinenumberEnd: 610
    functionName: smp_conv_store
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_parse_cond_param
    - var_set
    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:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 613
    functionDepth: 3
    functionLinenumber: 613
    functionLinenumberEnd: 616
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:629,1
    - Dst: vars_fill_desc
      Src: /src/haproxy/src/vars.c:634,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:637,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/vars.c:641,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - arg
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 622
    functionDepth: 4
    functionLinenumber: 622
    functionLinenumberEnd: 647
    functionName: vars_check_arg
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - var_set
    - memprintf
    - 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:659,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - len
    - smp
    argTypes:
    - char*
    - size_t
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 654
    functionDepth: 4
    functionLinenumber: 654
    functionLinenumberEnd: 664
    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:675,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - len
    - smp
    argTypes:
    - char*
    - size_t
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 670
    functionDepth: 4
    functionLinenumber: 670
    functionLinenumberEnd: 679
    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:689,1
    - Dst: var_unset
      Src: /src/haproxy/src/vars.c:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - name
    - len
    - smp
    argTypes:
    - char*
    - size_t
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 693
    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:711,1
    - Dst: var_get
      Src: /src/haproxy/src/vars.c:712,1
    - Dst: vars_rdunlock
      Src: /src/haproxy/src/vars.c:715,1
    - Dst: smp_dup
      Src: /src/haproxy/src/vars.c:727,1
    - Dst: vars_rdunlock
      Src: /src/haproxy/src/vars.c:729,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: 731
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 731
    functionName: var_to_smp
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - var_get
    - smp_dup
    - vars_rdunlock
    - vars_rdlock
    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:751,1
    - Dst: get_vars
      Src: /src/haproxy/src/vars.c:755,1
    - Dst: var_to_smp
      Src: /src/haproxy/src/vars.c:759,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: 760
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 760
    functionName: vars_get_by_name
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - get_vars
    - var_to_smp
    - vars_fill_desc
    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:780,1
    - Dst: var_to_smp
      Src: /src/haproxy/src/vars.c:786,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: 787
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 787
    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:808,1
    - Dst: ha_alert
      Src: /src/haproxy/src/vars.c:810,1
    - Dst: memset
      Src: /src/haproxy/src/vars.c:815,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/vars.c:817,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/vars.c:820,1
    - Dst: send_log
      Src: /src/haproxy/src/vars.c:822,1
    - Dst: ha_alert
      Src: /src/haproxy/src/vars.c:824,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/vars.c:829,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/vars.c:834,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:837,1
    - Dst: sample_process
      Src: /src/haproxy/src/vars.c:841,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:847,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/vars.c:848,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    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: 850
      start: 790
    functionDepth: 4
    functionLinenumber: 790
    functionLinenumberEnd: 850
    functionName: action_store
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - memset
    - var_set
    - free_trash_chunk
    - lf_expr_isempty
    - send_log
    - smp_set_owner
    - sess_build_logline
    - sample_process
    - ha_alert
    - alloc_trash_chunk
    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:858,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/vars.c:859,1
    - Dst: var_unset
      Src: /src/haproxy/src/vars.c:862,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: 864
      start: 853
    functionDepth: 3
    functionLinenumber: 853
    functionLinenumberEnd: 864
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/vars.c:868,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 871
    functionName: release_store_rule
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - release_sample_expr
    - lf_expr_deinit
    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:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 881
    functionDepth: 5
    functionLinenumber: 881
    functionLinenumberEnd: 884
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/vars.c:891,1
    - Dst: vars_parse_cond_param
      Src: /src/haproxy/src/vars.c:894,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: 897
      start: 886
    functionDepth: 5
    functionLinenumber: 886
    functionLinenumberEnd: 897
    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: 33
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:923,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:927,1
    - Dst: strncmp
      Src: /src/haproxy/src/vars.c:931,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:937,1
    - Dst: strlen
      Src: /src/haproxy/src/vars.c:942,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:945,1
    - Dst: ist2
      Src: /src/haproxy/src/vars.c:951,1
    - Dst: istsplit
      Src: /src/haproxy/src/vars.c:952,1
    - Dst: istlen
      Src: /src/haproxy/src/vars.c:953,1
    - Dst: istsplit
      Src: /src/haproxy/src/vars.c:955,1
    - Dst: istlen
      Src: /src/haproxy/src/vars.c:957,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:958,1
    - Dst: istlen
      Src: /src/haproxy/src/vars.c:962,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/vars.c:965,1
    - Dst: istptr
      Src: /src/haproxy/src/vars.c:965,1
    - Dst: istlen
      Src: /src/haproxy/src/vars.c:965,1
    - Dst: vars_parse_cond_param
      Src: /src/haproxy/src/vars.c:966,1
    - Dst: istsplit
      Src: /src/haproxy/src/vars.c:969,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/vars.c:972,1
    - Dst: vars_fill_desc
      Src: /src/haproxy/src/vars.c:973,1
    - Dst: var_set
      Src: /src/haproxy/src/vars.c:977,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1041,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/vars.c:1048,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/vars.c:1054,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1060,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/vars.c:1062,1
    - Dst: free
      Src: /src/haproxy/src/vars.c:1063,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 121
    argCount: 5
    argNames:
    - args
    - arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 911
    functionDepth: 4
    functionLinenumber: 911
    functionLinenumberEnd: 1072
    functionName: parse_store
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - istlen
    - lf_expr_init
    - var_set
    - sample_parse_expr
    - strncmp
    - istptr
    - vars_fill_desc
    - istsplit
    - ist2
    - strlen
    - chunk_initlen
    - vars_parse_cond_param
    - parse_logformat_string
    - memprintf
    - sample_src_names
    - free
    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:1106,1
    - Dst: strcmp
      Src: /src/haproxy/src/vars.c:1108,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1112,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1114,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1119,1
    - Dst: parse_store
      Src: /src/haproxy/src/vars.c:1124,1
    - Dst: free
      Src: /src/haproxy/src/vars.c:1125,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1131,1
    - Dst: smp_resolve_args
      Src: /src/haproxy/src/vars.c:1135,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1136,1
    - Dst: indent_msg
      Src: /src/haproxy/src/vars.c:1137,1
    - Dst: session_new
      Src: /src/haproxy/src/vars.c:1141,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1142,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1143,1
    - Dst: action_store
      Src: /src/haproxy/src/vars.c:1147,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1148,1
    - Dst: session_free
      Src: /src/haproxy/src/vars.c:1150,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: 1155
      start: 1083
    functionDepth: 5
    functionLinenumber: 1083
    functionLinenumberEnd: 1155
    functionName: vars_parse_global_set_var
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - session_new
    - strcmp
    - free
    - LIST_INIT
    - release_sample_expr
    - memprintf
    - smp_resolve_args
    - session_free
    - indent_msg
    - parse_store
    - action_store
    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:1165,1
    - Dst: cli_err
      Src: /src/haproxy/src/vars.c:1169,1
    - Dst: get_vars
      Src: /src/haproxy/src/vars.c:1174,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/vars.c:1178,1
    - Dst: strlen
      Src: /src/haproxy/src/vars.c:1178,1
    - Dst: cli_err
      Src: /src/haproxy/src/vars.c:1179,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/vars.c:1184,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/vars.c:1188,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1191,1
    - Dst: isprint
      Src: /src/haproxy/src/vars.c:1193,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1194,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1196,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1198,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1199,1
    - Dst: b_putchr
      Src: /src/haproxy/src/vars.c:1200,1
    - Dst: cli_msg
      Src: /src/haproxy/src/vars.c:1202,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: 1203
      start: 1158
    functionDepth: 4
    functionLinenumber: 1158
    functionLinenumberEnd: 1203
    functionName: vars_parse_cli_get_var
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - vars_get_by_name
    - chunk_printf
    - chunk_appendf
    - cli_err
    - isprint
    - strlen
    - b_putchr
    - get_vars
    - cli_msg
    - cli_has_level
    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:1232,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/vars.c:1234,1
    - Dst: cli_err
      Src: /src/haproxy/src/vars.c:1238,1
    - Dst: cli_err
      Src: /src/haproxy/src/vars.c:1241,1
    - Dst: strcmp
      Src: /src/haproxy/src/vars.c:1245,1
    - Dst: strcmp
      Src: /src/haproxy/src/vars.c:1247,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1248,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1254,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1255,1
    - Dst: parse_store
      Src: /src/haproxy/src/vars.c:1264,1
    - Dst: free
      Src: /src/haproxy/src/vars.c:1265,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1271,1
    - Dst: smp_resolve_args
      Src: /src/haproxy/src/vars.c:1276,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1278,1
    - Dst: indent_msg
      Src: /src/haproxy/src/vars.c:1279,1
    - Dst: session_new
      Src: /src/haproxy/src/vars.c:1283,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1284,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1285,1
    - Dst: action_store
      Src: /src/haproxy/src/vars.c:1289,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/vars.c:1290,1
    - Dst: session_free
      Src: /src/haproxy/src/vars.c:1292,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/vars.c:1297,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: 1298
      start: 1210
    functionDepth: 5
    functionLinenumber: 1210
    functionLinenumberEnd: 1298
    functionName: vars_parse_cli_set_var
    functionSourceFile: /src/haproxy/src/vars.c
    functionUses: 0
    functionsReached:
    - session_new
    - strcmp
    - cli_err
    - cli_dynerr
    - free
    - LIST_INIT
    - release_sample_expr
    - memprintf
    - smp_resolve_args
    - session_free
    - indent_msg
    - parse_store
    - action_store
    - cli_has_level
    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:1306,1
    - Dst: memprintf
      Src: /src/haproxy/src/vars.c:1308,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: 1312
      start: 1300
    functionDepth: 1
    functionLinenumber: 1300
    functionLinenumberEnd: 1312
    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:1318,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: 1319
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1319
    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:1325,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: 1326
      start: 1321
    functionDepth: 2
    functionLinenumber: 1321
    functionLinenumberEnd: 1326
    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:1332,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: 1333
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1333
    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:1339,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: 1340
      start: 1335
    functionDepth: 2
    functionLinenumber: 1335
    functionLinenumberEnd: 1340
    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:1346,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: 1347
      start: 1342
    functionDepth: 2
    functionLinenumber: 1342
    functionLinenumberEnd: 1347
    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:1353,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: 1354
      start: 1349
    functionDepth: 2
    functionLinenumber: 1349
    functionLinenumberEnd: 1354
    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:1359,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/vars.c:1361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1357
    functionDepth: 2
    functionLinenumber: 1357
    functionLinenumberEnd: 1362
    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:
    - istlen
    - istclear
    - istsplit
    - istcat
    - istend
    - ist
    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:
    - __istappend
    - istlen
    - istclear
    - istptr
    - ishex
    - istshift
    - hex2i
    - is_unreserved_character
    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:
    - __istappend
    - istlen
    - istclear
    - istptr
    - ishex
    - toupper
    - istshift
    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:
    - __istappend
    - isteq
    - istlen
    - istclear
    - istsplit
    - istcat
    - istend
    - my_unreachable
    - ist
    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:
    - istmatch
    - istlen
    - istclear
    - istadv
    - istptr
    - ist2
    - ist
    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:
    - __istappend
    - istlen
    - istclear
    - istnext
    - istptr
    - istshift
    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:
    - istptr
    - iststop
    - istdiff
    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:
    - b_orig
    - __istappend
    - istlen
    - get_trash_chunk
    - istclear
    - istsplit
    - istcat
    - istshift
    - b_size
    - my_unreachable
    - qsort
    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: cli_err
      Src: /src/haproxy/src/httpclient_cli.c:162,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 163
    functionName: hc_cli_parse
    functionSourceFile: /src/haproxy/src/httpclient_cli.c
    functionUses: 0
    functionsReached:
    - httpclient_req_gen
    - httpclient_new
    - strcmp
    - find_http_meth
    - cli_err
    - httpclient_start
    - strlen
    - memprintf
    - cli_has_level
    - applet_reserve_svcctx
    - ist
    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:179,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/httpclient_cli.c:184,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/httpclient_cli.c:189,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/httpclient_cli.c:191,1
    - Dst: istlen
      Src: /src/haproxy/src/httpclient_cli.c:191,1
    - Dst: istptr
      Src: /src/haproxy/src/httpclient_cli.c:191,1
    - Dst: istlen
      Src: /src/haproxy/src/httpclient_cli.c:192,1
    - Dst: istptr
      Src: /src/haproxy/src/httpclient_cli.c:192,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/httpclient_cli.c:194,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/httpclient_cli.c:201,1
    - Dst: isttest
      Src: /src/haproxy/src/httpclient_cli.c:203,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/httpclient_cli.c:204,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/httpclient_cli.c:207,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/httpclient_cli.c:209,1
    - Dst: httpclient_res_xfer
      Src: /src/haproxy/src/httpclient_cli.c:217,1
    - Dst: httpclient_data
      Src: /src/haproxy/src/httpclient_cli.c:219,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/httpclient_cli.c:226,1
    - Dst: htx_dump
      Src: /src/haproxy/src/httpclient_cli.c:227,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/httpclient_cli.c:228,1
    - Dst: htx_reset
      Src: /src/haproxy/src/httpclient_cli.c:230,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/httpclient_cli.c:231,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/httpclient_cli.c:243,1
    - Dst: cli_err
      Src: /src/haproxy/src/httpclient_cli.c:249,1
    - Dst: cli_err
      Src: /src/haproxy/src/httpclient_cli.c:251,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 75
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 252
    functionName: hc_cli_io_handler
    functionSourceFile: /src/haproxy/src/httpclient_cli.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - htx_is_empty
    - httpclient_data
    - istlen
    - httpclient_res_xfer
    - chunk_printf
    - htx_dump
    - h1_format_htx_hdr
    - cli_err
    - istptr
    - applet_have_no_more_data
    - applet_putchk
    - htx_reset
    - isttest
    - chunk_memcat
    - htx_to_buf
    - chunk_reset
    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:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 263
    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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - buf
    - len_in
    - b
    argTypes:
    - unsigned char**
    - uint64_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    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:118,1
    - Dst: qpack_debug_hexdump
      Src: /src/haproxy/src/qpack-dec.c:119,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:119,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:122,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:126,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:138,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/qpack-dec.c:147,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 3
    argNames:
    - buf
    - fin
    - ctx
    argTypes:
    - struct buffer*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 154
    functionName: qpack_decode_enc
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 0
    functionsReached:
    - b_data
    - qpack_debug_hexdump
    - qcc_set_error
    - qpack_debug_printf
    - b_head
    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:174,1
    - Dst: b_data
      Src: /src/haproxy/src/qpack-dec.c:178,1
    - Dst: qpack_debug_hexdump
      Src: /src/haproxy/src/qpack-dec.c:179,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:179,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:182,1
    - Dst: b_head
      Src: /src/haproxy/src/qpack-dec.c:186,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/qpack-dec.c:199,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - buf
    - fin
    - ctx
    argTypes:
    - struct buffer*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 210
    functionName: qpack_decode_dec
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 0
    functionsReached:
    - b_data
    - qpack_debug_hexdump
    - qcc_set_error
    - qpack_debug_printf
    - b_head
    linkageType: ''
    returnType: int
    signature: int qpack_decode_dec(struct buffer *buf, int fin, void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:219,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    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: 229
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 229
    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: 33
    BranchProfiles: []
    Callsites:
    - Dst: qpack_debug_hexdump
      Src: /src/haproxy/src/qpack-dec.c:249,1
    - Dst: qpack_decode_fs_pfx
      Src: /src/haproxy/src/qpack-dec.c:252,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:254,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/qpack-dec.c:258,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:259,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:264,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:271,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:281,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:283,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:285,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:290,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:292,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:294,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:299,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:302,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:328,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:329,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:331,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:336,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:354,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:356,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:358,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:381,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:388,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:391,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:393,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:415,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:417,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:419,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:424,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/qpack-dec.c:429,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:431,1
    - Dst: huff_dec
      Src: /src/haproxy/src/qpack-dec.c:435,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:437,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:442,1
    - Dst: b_add
      Src: /src/haproxy/src/qpack-dec.c:444,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:445,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:448,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:465,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:468,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:470,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:475,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:479,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/qpack-dec.c:488,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:490,1
    - Dst: huff_dec
      Src: /src/haproxy/src/qpack-dec.c:494,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:496,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:501,1
    - Dst: b_add
      Src: /src/haproxy/src/qpack-dec.c:503,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:504,1
    - Dst: ist2
      Src: /src/haproxy/src/qpack-dec.c:507,1
    - Dst: qpack_get_varint
      Src: /src/haproxy/src/qpack-dec.c:514,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:516,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:521,1
    - Dst: qpack_debug_printf
      Src: /src/haproxy/src/qpack-dec.c:524,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: 57
    EdgeCount: 57
    ICount: 238
    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: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 588
    functionName: qpack_decode_fs
    functionSourceFile: /src/haproxy/src/qpack-dec.c
    functionUses: 1
    functionsReached:
    - chunk_newstr
    - qpack_decode_fs_pfx
    - qpack_debug_hexdump
    - ist2
    - b_add
    - qpack_debug_printf
    - huff_dec
    - qpack_get_varint
    - chunk_reset
    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_INIT
    - LIST_DELETE
    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:
    - is_idchar
    - strncmp
    - 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:
    - chunk_destroy
    - release_sample_expr
    - pattern_prune
    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:170,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:178,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:180,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:183,1
    - Dst: is_idchar
      Src: /src/haproxy/src/acl.c:188,1
    - Dst: make_arg_list
      Src: /src/haproxy/src/acl.c:195,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:199,1
    - Dst: struct sample_expr*::fetch::val_args
      Src: /src/haproxy/src/acl.c:206,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:210,1
    - Dst: sample_parse_expr_cnv
      Src: /src/haproxy/src/acl.c:219,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:221,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/acl.c:224,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/acl.c:232,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:234,1
    - Dst: smp_expr_output_type
      Src: /src/haproxy/src/acl.c:240,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:242,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:244,1
    - Dst: pattern_init_head
      Src: /src/haproxy/src/acl.c:248,1
    - Dst: ha_warning
      Src: /src/haproxy/src/acl.c:304,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:329,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:331,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:333,1
    - Dst: strtol
      Src: /src/haproxy/src/acl.c:334,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:336,1
    - Dst: pat_ref_lookupid
      Src: /src/haproxy/src/acl.c:341,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:342,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:348,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:350,1
    - Dst: pattern_read_from_file
      Src: /src/haproxy/src/acl.c:354,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:359,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:363,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:367,1
    - Dst: pat_find_match_name
      Src: /src/haproxy/src/acl.c:372,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:374,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:380,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:391,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:395,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:400,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:408,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
    - Dst: free
      Src: /src/haproxy/src/acl.c:596,1
    CyclomaticComplexity: 114
    EdgeCount: 114
    ICount: 307
    argCount: 5
    argNames:
    - args
    - err
    - al
    - file
    - line
    argTypes:
    - char**
    - char**
    - struct arg_list*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 599
    functionName: parse_acl_expr
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - ha_diag_warning
    - sample_parse_expr
    - get_std_op
    - pattern_new_expr
    - find_acl_kw
    - find_sample_fetch
    - pat_ref_lookupid
    - ha_warning
    - strcmp
    - smp_expr_output_type
    - pattern_read_from_file
    - pat_find_match_name
    - snprintf
    - pat_ref_add
    - pattern_init_head
    - pat_ref_newid
    - prune_acl_expr
    - strlen
    - LIST_INIT
    - struct sample_expr*::fetch::val_args
    - LIST_ISEMPTY
    - calloc
    - is_idchar
    - strl2llrc
    - memprintf
    - free
    - strchr
    - make_arg_list
    - sample_parse_expr_cnv
    - strtol
    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:606,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/acl.c:608,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/acl.c:609,1
    - Dst: prune_acl_expr
      Src: /src/haproxy/src/acl.c:610,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - acl
    argTypes:
    - struct acl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 615
    functionName: prune_acl
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - free
    - LIST_DELETE
    - prune_acl_expr
    linkageType: ''
    returnType: struct acl
    signature: struct acl *prune_acl(struct acl *acl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:626,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:633,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:636,1
    - Dst: parse_acl_recurse
      Src: /src/haproxy/src/acl.c:637,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: 644
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 644
    functionName: parse_acl_recurse
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 1
    functionsReached:
    - parse_acl_recurse
    - list_for_each_entry
    - strcmp
    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:665,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:666,1
    - Dst: parse_acl_expr
      Src: /src/haproxy/src/acl.c:670,1
    - Dst: strchr
      Src: /src/haproxy/src/acl.c:680,1
    - Dst: ha_warning
      Src: /src/haproxy/src/acl.c:681,1
    - Dst: find_acl_by_name
      Src: /src/haproxy/src/acl.c:689,1
    - Dst: parse_acl_recurse
      Src: /src/haproxy/src/acl.c:694,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:697,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:699,1
    - Dst: strdup
      Src: /src/haproxy/src/acl.c:703,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:705,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:708,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:710,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:714,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:715,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:725,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:729,1
    - Dst: prune_acl_expr
      Src: /src/haproxy/src/acl.c:731,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:732,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: 735
      start: 656
    functionDepth: 3
    functionLinenumber: 656
    functionLinenumberEnd: 735
    functionName: parse_acl
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - parse_acl_recurse
    - strdup
    - find_acl_by_name
    - ha_warning
    - parse_acl_expr
    - prune_acl_expr
    - invalid_char
    - LIST_APPEND
    - free
    - LIST_INIT
    - memprintf
    - strchr
    - calloc
    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:789,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:794,1
    - Dst: parse_acl_expr
      Src: /src/haproxy/src/acl.c:798,1
    - Dst: strdup
      Src: /src/haproxy/src/acl.c:804,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:806,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:810,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:812,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:819,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:820,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:822,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:827,1
    - Dst: prune_acl_expr
      Src: /src/haproxy/src/acl.c:829,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:830,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: 833
      start: 778
    functionDepth: 3
    functionLinenumber: 778
    functionLinenumberEnd: 833
    functionName: find_acl_default
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - strdup
    - parse_acl_expr
    - strcmp
    - prune_acl_expr
    - LIST_APPEND
    - free
    - LIST_INIT
    - memprintf
    - calloc
    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:857,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:859,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:863,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:864,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acl.c:886,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:886,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:895,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:902,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:906,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:910,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:912,1
    - Dst: memcpy
      Src: /src/haproxy/src/acl.c:917,1
    - Dst: parse_acl
      Src: /src/haproxy/src/acl.c:919,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:920,1
    - Dst: find_acl_by_name
      Src: /src/haproxy/src/acl.c:934,1
    - Dst: find_acl_default
      Src: /src/haproxy/src/acl.c:936,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:944,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:946,1
    - Dst: calloc
      Src: /src/haproxy/src/acl.c:966,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:968,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:971,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:972,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:974,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:982,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/acl.c:984,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: 987
      start: 844
    functionDepth: 4
    functionLinenumber: 844
    functionLinenumberEnd: 987
    functionName: parse_acl_cond
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - find_acl_by_name
    - strcmp
    - find_acl_default
    - strcasecmp
    - LIST_APPEND
    - free
    - LIST_INIT
    - memprintf
    - free_acl_cond
    - parse_acl
    - calloc
    - memcpy
    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:1007,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:1011,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:1016,1
    - Dst: parse_acl_cond
      Src: /src/haproxy/src/acl.c:1020,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: 1030
      start: 998
    functionDepth: 5
    functionLinenumber: 998
    functionLinenumberEnd: 1030
    functionName: build_acl_cond
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - parse_acl_cond
    - strcmp
    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:1064,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1074,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1085,1
    - Dst: memset
      Src: /src/haproxy/src/acl.c:1087,1
    - Dst: sample_process
      Src: /src/haproxy/src/acl.c:1089,1
    - Dst: pat2acl
      Src: /src/haproxy/src/acl.c:1096,1
    - Dst: pattern_exec_match
      Src: /src/haproxy/src/acl.c:1096,1
    - Dst: acl_neg
      Src: /src/haproxy/src/acl.c:1128,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: 1143
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1143
    functionName: acl_exec_cond
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - memset
    - list_for_each_entry
    - acl_neg
    - pat2acl
    - sample_process
    - pattern_exec_match
    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:1156,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - cond
    - where
    argTypes:
    - struct acl_cond*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1164
    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:1178,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1179,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1180,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: 1192
      start: 1172
    functionDepth: 0
    functionLinenumber: 1172
    functionLinenumberEnd: 1192
    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:1208,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1209,1
    - Dst: strcmp
      Src: /src/haproxy/src/acl.c:1210,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1215,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/acl.c:1222,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1223,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1230,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/acl.c:1231,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1232,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1238,1
    - Dst: check_group
      Src: /src/haproxy/src/acl.c:1240,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1241,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1252
    functionName: acl_find_targets
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - check_group
    - list_for_each_entry
    - strcmp
    - ha_alert
    - LIST_ISEMPTY
    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:1265,1
    - Dst: find_sample_fetch
      Src: /src/haproxy/src/acl.c:1271,1
    - Dst: strlen
      Src: /src/haproxy/src/acl.c:1271,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acl.c:1273,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1282
    functionName: init_acl
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - find_sample_fetch
    - strlen
    - list_for_each_entry
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int init_acl()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acl.c:1293,1
    - Dst: strordered
      Src: /src/haproxy/src/acl.c:1295,1
    - Dst: printf
      Src: /src/haproxy/src/acl.c:1309,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1285
    functionDepth: 1
    functionLinenumber: 1285
    functionLinenumberEnd: 1311
    functionName: acl_dump_kwd
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - printf
    - strordered
    - 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:1322,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/acl.c:1323,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/acl.c:1324,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:1325,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/acl.c:1327,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:1328,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:1331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - cond
    argTypes:
    - struct acl_cond*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1332
    functionName: free_acl_cond
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 3
    functionsReached:
    - list_for_each_entry_safe
    - free
    - LIST_DELETE
    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:1340,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: 1346
      start: 1335
    functionDepth: 2
    functionLinenumber: 1335
    functionLinenumberEnd: 1346
    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:1356,1
    - Dst: unlikely
      Src: /src/haproxy/src/acl.c:1357,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:1358,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:1361,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/acl.c:1362,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:1363,1
    - Dst: find_acl_by_name
      Src: /src/haproxy/src/acl.c:1377,1
    - Dst: find_acl_default
      Src: /src/haproxy/src/acl.c:1378,1
    - Dst: memprintf
      Src: /src/haproxy/src/acl.c:1380,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acl.c:1387,1
    - Dst: free
      Src: /src/haproxy/src/acl.c:1393,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - args
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1348
    functionDepth: 4
    functionLinenumber: 1348
    functionLinenumberEnd: 1395
    functionName: smp_fetch_acl_parse
    functionSourceFile: /src/haproxy/src/acl.c
    functionUses: 0
    functionsReached:
    - find_acl_by_name
    - unlikely
    - find_acl_default
    - LIST_APPEND
    - free
    - LIST_INIT
    - memprintf
    - calloc
    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
    - EV_SET
    - _HA_ATOMIC_OR
    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:
    - clock_update_global_date
    - fd_grab_tgid
    - _HA_ATOMIC_INC
    - thread_idle_now
    - done_update_polling
    - compute_poll_timeout
    - clock_entering_poll
    - tick_is_expired
    - tick_isset
    - kevent
    - clock_update_local_date
    - EV_SET
    - fd_drop_tgid
    - thread_harmless_now
    - _HA_ATOMIC_AND
    - fd_update_events
    - fd_tgid
    - fd_leaving_poll
    - _update_fd
    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:
    - free
    - kqueue
    - calloc
    - 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:
    - ha_free
    - hap_register_per_thread_deinit
    - kqueue
    - hap_register_per_thread_init
    - calloc
    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:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    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:137,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:145,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:147,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:153,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:168,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:177,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:179,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:181,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:183,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:184,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:187,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:189,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:201,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:215,1
    - Dst: memset
      Src: /src/haproxy/src/cli.c:232,1
    - Dst: update_word_fingerprint
      Src: /src/haproxy/src/cli.c:234,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:235,1
    - Dst: memset
      Src: /src/haproxy/src/cli.c:238,1
    - Dst: update_word_fingerprint
      Src: /src/haproxy/src/cli.c:240,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:241,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/cli.c:244,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:280,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:307,1
    - Dst: qsort
      Src: /src/haproxy/src/cli.c:316,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:319,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cli.c:322,1
    - Dst: chunk_init
      Src: /src/haproxy/src/cli.c:327,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/cli.c:328,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:331,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 121
    argCount: 2
    argNames:
    - appctx
    - args
    argTypes:
    - struct appctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 333
    functionName: cli_gen_usage_msg
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memset
    - list_for_each_entry
    - get_trash_chunk
    - strcmp
    - chunk_dup
    - chunk_appendf
    - ha_free
    - update_word_fingerprint
    - strlen
    - word_fingerprint_distance
    - chunk_init
    - chunk_strcat
    - cli_msg
    - qsort
    - chunk_reset
    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:343,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:346,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 367
    functionName: cli_find_kw
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - list_for_each_entry
    - strcmp
    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:376,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:379,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:390,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 24
    argCount: 1
    argNames:
    - args
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 400
    functionName: cli_find_kw_exact
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - list_for_each_entry
    - strcmp
    linkageType: ''
    returnType: struct cli_kw
    signature: struct cli_kw * cli_find_kw_exact(char **args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cli.c:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct cli_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 405
    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:415,1
    - Dst: strordered
      Src: /src/haproxy/src/cli.c:420,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:431,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:434,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:436,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:438,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:440,1
    - Dst: printf
      Src: /src/haproxy/src/cli.c:441,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 443
    functionName: cli_list_keywords
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - printf
    - strordered
    - 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:453,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:455,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/cli.c:462,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/cli.c:463,1
    - Dst: proxy_index_id
      Src: /src/haproxy/src/cli.c:470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - name
    - file
    - line
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 472
    functionName: cli_alloc_fe
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - proxy_index_id
    - ha_free
    - copy_file_name
    - MS_TO_TICKS
    - alloc_new_proxy
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *cli_alloc_fe(const char *name, const char *file, int
      line)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:487,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:491,1
    - Dst: cli_alloc_fe
      Src: /src/haproxy/src/cli.c:496,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:497,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/cli.c:502,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cli.c:502,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:504,1
    - Dst: str2listener
      Src: /src/haproxy/src/cli.c:510,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:511,1
    - Dst: bind_find_kw
      Src: /src/haproxy/src/cli.c:522,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:525,1
    - Dst: struct bind_kw*::parse
      Src: /src/haproxy/src/cli.c:530,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cli.c:537,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:538,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:539,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:544,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:546,1
    - Dst: bind_find_best_kw
      Src: /src/haproxy/src/cli.c:555,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:557,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:560,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:569,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:573,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cli.c:575,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:578,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:583,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:588,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:593,1
    - Dst: cli_alloc_fe
      Src: /src/haproxy/src/cli.c:597,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:598,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/cli.c:602,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:604,1
    - Dst: atol
      Src: /src/haproxy/src/cli.c:605,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:608,1
    - Dst: cli_alloc_fe
      Src: /src/haproxy/src/cli.c:613,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:614,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:620,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:621,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:625,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 105
    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: 629
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 629
    functionName: cli_parse_global
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - list_for_each_entry
    - bind_find_kw
    - strcmp
    - bind_find_best_kw
    - struct bind_kw*::parse
    - ha_free
    - parse_time_err
    - cli_alloc_fe
    - xprt_get
    - memprintf
    - atol
    - indent_msg
    - MS_TO_TICKS
    - str2listener
    - bind_conf_alloc
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cli.c:639,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:643,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:646,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:658,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:660,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/cli.c:663,1
    - Dst: port_to_str
      Src: /src/haproxy/src/cli.c:664,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:665,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/cli.c:667,1
    - Dst: port_to_str
      Src: /src/haproxy/src/cli.c:668,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:669,1
    - Dst: setenv
      Src: /src/haproxy/src/cli.c:677,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - frontend
    - varname
    argTypes:
    - struct proxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 682
    functionName: listeners_setenv
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - addr_to_str
    - list_for_each_entry
    - get_trash_chunk
    - setenv
    - chunk_appendf
    - port_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:686,1
    - Dst: listeners_setenv
      Src: /src/haproxy/src/cli.c:688,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 692
    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:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - appctx
    - level
    argTypes:
    - struct appctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 709
    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: 718
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 718
    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:725,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/cli.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 726
    functionName: cli_get_severity_output
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strm_li
    - appctx_strm
    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:744,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:745,1
    - Dst: strspn
      Src: /src/haproxy/src/cli.c:755,1
    - Dst: strcspn
      Src: /src/haproxy/src/cli.c:762,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:794,1
    - Dst: b_tail
      Src: /src/haproxy/src/cli.c:798,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:805,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:805,1
    - Dst: cli_find_kw
      Src: /src/haproxy/src/cli.c:817,1
    - Dst: cli_gen_usage_msg
      Src: /src/haproxy/src/cli.c:823,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:829,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:834,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cli.c:839,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cli.c:841,1
    - Dst: struct cli_kw*::parse
      Src: /src/haproxy/src/cli.c:846,1
    - Dst: b_del
      Src: /src/haproxy/src/cli.c:867,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 93
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 738
    functionDepth: 3
    functionLinenumber: 738
    functionLinenumberEnd: 869
    functionName: cli_process_cmdline
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_gen_usage_msg
    - cli_err
    - b_tail
    - cli_find_kw
    - strlen
    - b_del
    - memprintf
    - b_head
    - strspn
    - strcspn
    - struct cli_kw*::parse
    - mark_tainted
    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:877,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:878,1
    - Dst: likely
      Src: /src/haproxy/src/cli.c:880,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:884,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:885,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:890,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:893,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:896,1
    - Dst: ist
      Src: /src/haproxy/src/cli.c:905,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cli.c:908,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cli.c:909,1
    - Dst: ist
      Src: /src/haproxy/src/cli.c:909,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cli.c:911,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: 912
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 912
    functionName: cli_output_msg
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - get_trash_chunk
    - chunk_printf
    - applet_putchk
    - chunk_istcat
    - likely
    - ist
    - chunk_reset
    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:916,1
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:917,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/cli.c:917,1
    - Dst: applet_reset_svcctx
      Src: /src/haproxy/src/cli.c:920,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/cli.c:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 930
    functionName: cli_init
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - applet_need_more_data
    - __sc_strm
    - strm_li
    - applet_reset_svcctx
    - appctx_sc
    linkageType: ''
    returnType: int
    signature: int cli_init(struct appctx *appctx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:938,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/cli.c:943,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:945,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/cli.c:946,1
    - Dst: b_reset
      Src: /src/haproxy/src/cli.c:947,1
    - Dst: b_tail
      Src: /src/haproxy/src/cli.c:960,1
    - Dst: b_getdelim
      Src: /src/haproxy/src/cli.c:962,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:962,1
    - Dst: b_room
      Src: /src/haproxy/src/cli.c:962,1
    - Dst: b_getline
      Src: /src/haproxy/src/cli.c:964,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:964,1
    - Dst: b_room
      Src: /src/haproxy/src/cli.c:964,1
    - Dst: b_room
      Src: /src/haproxy/src/cli.c:967,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:967,1
    - Dst: b_room
      Src: /src/haproxy/src/cli.c:967,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:968,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/cli.c:969,1
    - Dst: b_reset
      Src: /src/haproxy/src/cli.c:970,1
    - Dst: b_del
      Src: /src/haproxy/src/cli.c:975,1
    - Dst: b_add
      Src: /src/haproxy/src/cli.c:976,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cli.c:977,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:1022,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1022,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1023,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1023,1
    - Dst: strncpy
      Src: /src/haproxy/src/cli.c:1030,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1030,1
    - Dst: b_tail
      Src: /src/haproxy/src/cli.c:1040,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1055,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:1056,1
    - Dst: b_sub
      Src: /src/haproxy/src/cli.c:1058,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1058,1
    - Dst: b_tail
      Src: /src/haproxy/src/cli.c:1059,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 83
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 932
    functionDepth: 1
    functionLinenumber: 932
    functionLinenumberEnd: 1078
    functionName: cli_parse_cmdline
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - applet_fl_clr
    - b_getdelim
    - b_sub
    - b_data
    - strncmp
    - cli_err
    - b_tail
    - b_room
    - strlen
    - b_del
    - b_add
    - strncpy
    - alloc_trash_chunk
    - b_getline
    - b_reset
    - applet_set_error
    linkageType: ''
    returnType: int
    signature: int cli_parse_cmdline(struct appctx *appctx)
  - BBCount: 43
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/cli.c:1092,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cli.c:1092,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cli.c:1097,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/cli.c:1098,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/cli.c:1099,1
    - Dst: cli_init
      Src: /src/haproxy/src/cli.c:1106,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/cli.c:1109,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/cli.c:1113,1
    - Dst: cli_parse_cmdline
      Src: /src/haproxy/src/cli.c:1114,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/cli.c:1120,1
    - Dst: buffer_almost_full
      Src: /src/haproxy/src/cli.c:1131,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/cli.c:1132,1
    - Dst: cli_process_cmdline
      Src: /src/haproxy/src/cli.c:1139,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:1156,1
    - Dst: usermsgs_str
      Src: /src/haproxy/src/cli.c:1175,1
    - Dst: cli_output_msg
      Src: /src/haproxy/src/cli.c:1182,1
    - Dst: cli_get_severity_output
      Src: /src/haproxy/src/cli.c:1182,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:1185,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/cli.c:1189,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cli.c:1194,1
    - Dst: struct appctx*::cli_ctx::io_handler
      Src: /src/haproxy/src/cli.c:1203,1
    - Dst: struct appctx*::cli_ctx::io_release
      Src: /src/haproxy/src/cli.c:1207,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/cli.c:1217,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1232,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/cli.c:1237,1
    - Dst: snprintf
      Src: /src/haproxy/src/cli.c:1238,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/cli.c:1251,1
    - Dst: applet_reset_svcctx
      Src: /src/haproxy/src/cli.c:1252,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/cli.c:1260,1
    - Dst: applet_reset_svcctx
      Src: /src/haproxy/src/cli.c:1269,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/cli.c:1270,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/cli.c:1276,1
    - Dst: applet_expect_data
      Src: /src/haproxy/src/cli.c:1277,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cli.c:1280,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:1286,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/cli.c:1288,1
    - Dst: b_reset
      Src: /src/haproxy/src/cli.c:1304,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cli.c:1305,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 159
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1088
    functionDepth: 4
    functionLinenumber: 1088
    functionLinenumberEnd: 1308
    functionName: cli_io_handler
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - applet_will_consume
    - unlikely
    - cli_parse_cmdline
    - free_trash_chunk
    - applet_set_eoi
    - applet_wont_consume
    - usermsgs_str
    - applet_reset_svcctx
    - applet_putstr
    - usermsgs_clr
    - appctx_get_buf
    - cli_get_severity_output
    - b_data
    - snprintf
    - ha_free
    - applet_fl_clr
    - applet_expect_data
    - se_fl_test
    - struct appctx*::cli_ctx::io_handler
    - applet_fl_set
    - buffer_almost_full
    - applet_set_eos
    - cli_process_cmdline
    - applet_reserve_svcctx
    - struct appctx*::cli_ctx::io_release
    - applet_fl_test
    - applet_set_error
    - ns_to_sec
    - cli_init
    - cli_output_msg
    - b_reset
    linkageType: ''
    returnType: void
    signature: void cli_io_handler(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/cli.c:1316,1
    - Dst: struct appctx*::cli_ctx::io_release
      Src: /src/haproxy/src/cli.c:1319,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:1323,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:1325,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/cli.c:1328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1330
    functionName: cli_release_handler
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - usermsgs_clr
    - free_trash_chunk
    - ha_free
    - applet_reserve_svcctx
    - struct appctx*::cli_ctx::io_release
    linkageType: ''
    returnType: void
    signature: void cli_release_handler(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:1342,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:1348,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cli.c:1350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1337
    functionDepth: 1
    functionLinenumber: 1337
    functionLinenumberEnd: 1361
    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:1376,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/cli.c:1381,1
    - Dst: objt_listener
      Src: /src/haproxy/src/cli.c:1421,1
    - Dst: objt_server
      Src: /src/haproxy/src/cli.c:1422,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/cli.c:1423,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/cli.c:1424,1
    - Dst: atleast2
      Src: /src/haproxy/src/cli.c:1425,1
    - Dst: objt_server
      Src: /src/haproxy/src/cli.c:1434,1
    - Dst: objt_listener
      Src: /src/haproxy/src/cli.c:1444,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:1464,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/cli.c:1490,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1493,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1496,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1499,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1502,1
    - Dst: getsockname
      Src: /src/haproxy/src/cli.c:1509,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1512,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1512,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1514,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1514,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1516,1
    - Dst: getpeername
      Src: /src/haproxy/src/cli.c:1520,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1522,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1522,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1524,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1524,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1529,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1531,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1533,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1536,1
    - Dst: struct mux_ops*::show_fd
      Src: /src/haproxy/src/cli.c:1540,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1543,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1545,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1548,1
    - Dst: struct xprt_ops*::show_fd
      Src: /src/haproxy/src/cli.c:1550,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1557,1
    - Dst: listener_state_str
      Src: /src/haproxy/src/cli.c:1558,1
    - Dst: getsockname
      Src: /src/haproxy/src/cli.c:1562,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1565,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1565,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1567,1
    - Dst: ntohs
      Src: /src/haproxy/src/cli.c:1567,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1569,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1573,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1576,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1580,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cli.c:1582,1
    - Dst: thread_release
      Src: /src/haproxy/src/cli.c:1597,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 131
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1599
    functionName: cli_io_handler_show_fd
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - resolve_sym_name
    - listener_state_str
    - thread_release
    - thread_isolate
    - chunk_printf
    - getsockname
    - chunk_appendf
    - ntohs
    - objt_server
    - getpeername
    - objt_listener
    - applet_putchk
    - conn_is_back
    - objt_proxy
    - struct mux_ops*::show_fd
    - atleast2
    - struct xprt_ops*::show_fd
    - chunk_reset
    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:1608,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cli.c:1614,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/cli.c:1618,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cli.c:1620,1
    - Dst: typeof
      Src: /src/haproxy/src/cli.c:1620,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/cli.c:1623,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cli.c:1627,1
    - Dst: typeof
      Src: /src/haproxy/src/cli.c:1627,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/cli.c:1629,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1641,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1643,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/cli.c:1646,1
    - Dst: port_to_str
      Src: /src/haproxy/src/cli.c:1647,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1648,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/cli.c:1650,1
    - Dst: port_to_str
      Src: /src/haproxy/src/cli.c:1651,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1652,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1654,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1656,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1659,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1661,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1663,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1665,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:1667,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cli.c:1669,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1606
    functionDepth: 1
    functionLinenumber: 1606
    functionLinenumberEnd: 1680
    functionName: cli_io_handler_show_cli_sock
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - addr_to_str
    - list_for_each_entry_from
    - chunk_appendf
    - port_to_str
    - applet_putstr
    - applet_putchk
    - typeof
    - LIST_ELEM
    - applet_reserve_svcctx
    - chunk_reset
    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:1690,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:1694,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:1700,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:1703,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1708,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: 1714
      start: 1688
    functionDepth: 2
    functionLinenumber: 1688
    functionLinenumberEnd: 1714
    functionName: cli_parse_show_env
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strncmp
    - cli_err
    - strlen
    - cli_has_level
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_env(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:1722,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:1726,1
    - Dst: isdigit
      Src: /src/haproxy/src/cli.c:1735,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1749,1
    - Dst: atoi
      Src: /src/haproxy/src/cli.c:1765,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1720
    functionDepth: 2
    functionLinenumber: 1720
    functionLinenumberEnd: 1770
    functionName: cli_parse_show_fd
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_err
    - atoi
    - isdigit
    - cli_has_level
    - applet_reserve_svcctx
    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:1775,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1777,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1782,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cli.c:1784,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1786,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/cli.c:1788,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/cli.c:1789,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1793,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: 1794
      start: 1773
    functionDepth: 1
    functionLinenumber: 1773
    functionLinenumberEnd: 1794
    functionName: cli_parse_set_timeout
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strcmp
    - task_wakeup
    - parse_time_err
    - cli_err
    - MS_TO_TICKS
    - appctx_strm
    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:1801,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1805,1
    - Dst: atoi
      Src: /src/haproxy/src/cli.c:1807,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1809,1
    - Dst: dequeue_all_listeners
      Src: /src/haproxy/src/cli.c:1818,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: 1821
      start: 1797
    functionDepth: 2
    functionLinenumber: 1797
    functionLinenumberEnd: 1821
    functionName: cli_parse_set_maxconn_global
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - dequeue_all_listeners
    - cli_has_level
    - atoi
    - 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:1825,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1829,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1833,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - target
    - argument
    argTypes:
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1838
    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:1844,1
    - Dst: set_severity_output
      Src: /src/haproxy/src/cli.c:1847,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1850,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: 1851
      start: 1841
    functionDepth: 1
    functionLinenumber: 1841
    functionLinenumberEnd: 1851
    functionName: cli_parse_set_severity_output
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - set_severity_output
    - cli_err
    - strcmp
    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:1858,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:1860,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:1862,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:1864,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: 1865
      start: 1855
    functionDepth: 1
    functionLinenumber: 1855
    functionLinenumberEnd: 1865
    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:1871,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1874,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:1875,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1881,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:1882,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: 1890
      start: 1868
    functionDepth: 2
    functionLinenumber: 1868
    functionLinenumberEnd: 1890
    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:1901,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:1904,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1907,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1911,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1915,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:1924,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/cli.c:1926,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1930,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: 1933
      start: 1894
    functionDepth: 2
    functionLinenumber: 1894
    functionLinenumberEnd: 1933
    functionName: cli_parse_expert_experimental_mode
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_dynmsg
    - cli_has_level
    - memprintf
    - strcmp
    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:1940,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:1940,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: 1941
      start: 1936
    functionDepth: 1
    functionLinenumber: 1936
    functionLinenumberEnd: 1941
    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: 1946
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1946
    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:1954,1
    - Dst: atoll
      Src: /src/haproxy/src/cli.c:1957,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1959,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/cli.c:1963,1
    - Dst: ha_random32
      Src: /src/haproxy/src/cli.c:1967,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:1970,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1973,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1980,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: 1986
      start: 1949
    functionDepth: 1
    functionLinenumber: 1949
    functionLinenumberEnd: 1986
    functionName: cli_parse_set_anon
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ha_random32
    - cli_err
    - HA_ATOMIC_LOAD
    - atoll
    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:1993,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1994,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:1996,1
    - Dst: atoll
      Src: /src/haproxy/src/cli.c:1998,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2000,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/cli.c:2002,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: 2004
      start: 1989
    functionDepth: 2
    functionLinenumber: 1989
    functionLinenumberEnd: 2004
    functionName: cli_parse_set_global_key
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - atoll
    - cli_has_level
    - 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:2019,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2019,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/cli.c:2022,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2022,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: 2026
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2026
    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:2035,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2038,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2038,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2040,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2040,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2043,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2043,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2046,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2046,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2051,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: 2059
      start: 2029
    functionDepth: 2
    functionLinenumber: 2029
    functionLinenumberEnd: 2059
    functionName: cli_parse_set_ratelimit
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_err
    - cli_has_level
    - strcmp
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_ratelimit(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cli.c:2082,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cli.c:2086,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2090,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cli.c:2092,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2095,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2098,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2101,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2105,1
    - Dst: ist
      Src: /src/haproxy/src/cli.c:2107,1
    - Dst: istsplit
      Src: /src/haproxy/src/cli.c:2108,1
    - Dst: istlen
      Src: /src/haproxy/src/cli.c:2109,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2110,1
    - Dst: istdup
      Src: /src/haproxy/src/cli.c:2112,1
    - Dst: istdup
      Src: /src/haproxy/src/cli.c:2113,1
    - Dst: isttest
      Src: /src/haproxy/src/cli.c:2114,1
    - Dst: isttest
      Src: /src/haproxy/src/cli.c:2114,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:2115,1
    - Dst: istptr
      Src: /src/haproxy/src/cli.c:2115,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:2116,1
    - Dst: istptr
      Src: /src/haproxy/src/cli.c:2116,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2117,1
    - Dst: ist0
      Src: /src/haproxy/src/cli.c:2120,1
    - Dst: ist0
      Src: /src/haproxy/src/cli.c:2121,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2136,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:2137,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2139,1
    - Dst: tick_add
      Src: /src/haproxy/src/cli.c:2143,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2080
    functionDepth: 2
    functionLinenumber: 2080
    functionLinenumberEnd: 2147
    functionName: cli_parse_wait
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - tick_add
    - istlen
    - strcmp
    - parse_time_err
    - cli_err
    - istptr
    - istsplit
    - free
    - istdup
    - isttest
    - ist0
    - cli_msg
    - cli_has_level
    - applet_reserve_svcctx
    - ist
    linkageType: ''
    returnType: int
    signature: int cli_parse_wait(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/cli.c:2163,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/cli.c:2164,1
    - Dst: srv_check_for_deletion
      Src: /src/haproxy/src/cli.c:2171,1
    - Dst: tick_remain
      Src: /src/haproxy/src/cli.c:2186,1
    - Dst: tick_remain
      Src: /src/haproxy/src/cli.c:2198,1
    - Dst: tick_add
      Src: /src/haproxy/src/cli.c:2206,1
    - Dst: unlikely
      Src: /src/haproxy/src/cli.c:2210,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/cli.c:2210,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:2210,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2216
      start: 2156
    functionDepth: 1
    functionLinenumber: 2156
    functionLinenumberEnd: 2216
    functionName: cli_io_handler_wait
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - tick_add
    - unlikely
    - tick_is_expired
    - se_fl_test
    - b_data
    - tick_remain
    - tick_isset
    - srv_check_for_deletion
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_wait(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2227,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2228,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2229,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2230,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:2234,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/cli.c:2237,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/cli.c:2239,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2220
    functionDepth: 1
    functionLinenumber: 2220
    functionLinenumberEnd: 2240
    functionName: cli_release_wait
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_dynerr
    - ha_free
    - memprintf
    - cli_dynmsg
    linkageType: ''
    returnType: void
    signature: void cli_release_wait(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2246,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2249,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2252,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: 2258
      start: 2243
    functionDepth: 1
    functionLinenumber: 2243
    functionLinenumberEnd: 2258
    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:2264,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2268,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2271,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2274,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2278,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: 2284
      start: 2261
    functionDepth: 1
    functionLinenumber: 2261
    functionLinenumberEnd: 2284
    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:2289,1
    - Dst: set_severity_output
      Src: /src/haproxy/src/cli.c:2293,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2296,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: 2300
      start: 2286
    functionDepth: 1
    functionLinenumber: 2286
    functionLinenumberEnd: 2300
    functionName: bind_parse_severity_output
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - memprintf
    - set_severity_output
    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:2309,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/cli.c:2310,1
    - Dst: sc_conn
      Src: /src/haproxy/src/cli.c:2311,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/cli.c:2311,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2327,1
    - Dst: fcntl
      Src: /src/haproxy/src/cli.c:2334,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2336,1
    - Dst: malloc
      Src: /src/haproxy/src/cli.c:2339,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/cli.c:2339,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2341,1
    - Dst: fcntl
      Src: /src/haproxy/src/cli.c:2344,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2345,1
    - Dst: setsockopt
      Src: /src/haproxy/src/cli.c:2348,1
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:2351,1
    - Dst: memset
      Src: /src/haproxy/src/cli.c:2353,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2363,1
    - Dst: sendmsg
      Src: /src/haproxy/src/cli.c:2372,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2374,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/cli.c:2380,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/cli.c:2381,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/cli.c:2382,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/cli.c:2385,1
    - Dst: malloc
      Src: /src/haproxy/src/cli.c:2397,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2399,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/cli.c:2410,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:2423,1
    - Dst: memcpy
      Src: /src/haproxy/src/cli.c:2440,1
    - Dst: memcpy
      Src: /src/haproxy/src/cli.c:2446,1
    - Dst: memset
      Src: /src/haproxy/src/cli.c:2450,1
    - Dst: sendmsg
      Src: /src/haproxy/src/cli.c:2456,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2457,1
    - Dst: recv
      Src: /src/haproxy/src/cli.c:2463,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2467,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/cli.c:2480,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/cli.c:2481,1
    - Dst: sendmsg
      Src: /src/haproxy/src/cli.c:2482,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2483,1
    - Dst: recv
      Src: /src/haproxy/src/cli.c:2489,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2493,1
    - Dst: fcntl
      Src: /src/haproxy/src/cli.c:2499,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cli.c:2500,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cli.c:2501,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:2503,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:2504,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: 2506
      start: 2303
    functionDepth: 1
    functionLinenumber: 2303
    functionLinenumberEnd: 2506
    functionName: _getsocks
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - applet_set_eoi
    - malloc
    - setsockopt
    - CMSG_SPACE
    - ha_warning
    - sc_opposite
    - CMSG_DATA
    - strlen
    - appctx_sc
    - HA_ATOMIC_OR
    - memset
    - __sc_strm
    - CMSG_LEN
    - strm_li
    - fcntl
    - sendmsg
    - recv
    - CMSG_FIRSTHDR
    - free
    - memcpy
    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:2512,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2530,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2532,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2534,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2536,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2538,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:2539,1
    - Dst: cli_err
      Src: /src/haproxy/src/cli.c:2541,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cli.c:2564,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: 2569
      start: 2508
    functionDepth: 3
    functionLinenumber: 2508
    functionLinenumberEnd: 2569
    functionName: cli_parse_simple
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - cli_gen_usage_msg
    - applet_set_eoi
    - strcmp
    - cli_err
    - cli_msg
    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:2575,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cli.c:2580,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2582,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2585,1
    - Dst: cli_msg
      Src: /src/haproxy/src/cli.c:2587,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: 2590
      start: 2571
    functionDepth: 1
    functionLinenumber: 2571
    functionLinenumberEnd: 2590
    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: BUG_ON
      Src: /src/haproxy/src/cli.c:2599,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2599,1
    - Dst: atoi
      Src: /src/haproxy/src/cli.c:2602,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:2604,1
    - Dst: stop_listener
      Src: /src/haproxy/src/cli.c:2609,1
    - Dst: kill
      Src: /src/haproxy/src/cli.c:2616,1
    - Dst: handle_pidfile
      Src: /src/haproxy/src/cli.c:2627,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:2628,1
    - Dst: exit
      Src: /src/haproxy/src/cli.c:2629,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/cli.c:2637,1
    - Dst: write
      Src: /src/haproxy/src/cli.c:2641,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:2641,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:2642,1
    - Dst: strerror
      Src: /src/haproxy/src/cli.c:2642,1
    - Dst: exit
      Src: /src/haproxy/src/cli.c:2643,1
    - Dst: close
      Src: /src/haproxy/src/cli.c:2645,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cli.c:2650,1
    - Dst: sd_notifyf
      Src: /src/haproxy/src/cli.c:2653,1
    - Dst: getpid
      Src: /src/haproxy/src/cli.c:2653,1
    - Dst: getenv
      Src: /src/haproxy/src/cli.c:2661,1
    - Dst: stdio_quiet
      Src: /src/haproxy/src/cli.c:2662,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2668
      start: 2592
    functionDepth: 1
    functionLinenumber: 2592
    functionLinenumberEnd: 2668
    functionName: _send_status
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - getpid
    - getenv
    - exit
    - atoi
    - close
    - sd_notifyf
    - strerror
    - strcmp
    - strlen
    - stop_listener
    - write
    - BUG_ON
    - ha_alert
    - stdio_quiet
    - tell_old_pids
    - list_for_each_entry
    - handle_pidfile
    - ha_notice
    - kill
    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:2672,1
    - Dst: sc_oc
      Src: /src/haproxy/src/cli.c:2673,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2679,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/cli.c:2684,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2685,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2689,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:2700,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2710,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2715,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2719,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2723,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2726,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2729,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2732,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2734,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cli.c:2737,1
    - Dst: co_inject
      Src: /src/haproxy/src/cli.c:2741,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2670
    functionDepth: 2
    functionLinenumber: 2670
    functionLinenumberEnd: 2742
    functionName: pcli_write_prompt
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - get_trash_chunk
    - chunk_appendf
    - sc_oc
    - co_inject
    - ns_to_sec
    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:2750,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/cli.c:2754,1
    - Dst: likely
      Src: /src/haproxy/src/cli.c:2756,1
    - Dst: co_inject
      Src: /src/haproxy/src/cli.c:2757,1
    - Dst: channel_erase
      Src: /src/haproxy/src/cli.c:2759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2748
    functionDepth: 2
    functionLinenumber: 2748
    functionLinenumberEnd: 2761
    functionName: pcli_error
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - channel_erase
    - co_inject
    - chunk_initstr
    - likely
    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:2766,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/cli.c:2768,1
    - Dst: stream_retnclose
      Src: /src/haproxy/src/cli.c:2769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2770
      start: 2764
    functionDepth: 2
    functionLinenumber: 2764
    functionLinenumberEnd: 2770
    functionName: pcli_reply_and_close
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - stream_retnclose
    - chunk_initstr
    - get_trash_chunk
    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:2780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - proc_pid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2786
      start: 2772
    functionDepth: 0
    functionLinenumber: 2772
    functionLinenumberEnd: 2786
    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:2807,1
    - Dst: strtol
      Src: /src/haproxy/src/cli.c:2814,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:2817,1
    - Dst: strtol
      Src: /src/haproxy/src/cli.c:2828,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:2840,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2852
      start: 2794
    functionDepth: 0
    functionLinenumber: 2794
    functionLinenumberEnd: 2852
    functionName: pcli_prefix_to_pid
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strtol
    - strcmp
    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:2870,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2873,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2883,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2899,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2901,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2903,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2906,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2930,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/cli.c:2931,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/cli.c:2932,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2934,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:2935,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2936,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2943,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:2944,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2945,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2952,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:2953,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2954,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2959,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2963,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:2964,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2965,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2969,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2972,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:2973,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2974,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2978,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2981,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2982,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2983,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2985,1
    - Dst: strcmp
      Src: /src/haproxy/src/cli.c:2987,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:2990,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: 2999
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2999
    functionName: pcli_find_and_exec_kw
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - sc_schedule_abort
    - sc_schedule_shutdown
    - strcmp
    - pcli_prefix_to_pid
    - memprintf
    - pcli_has_level
    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:3020,1
    - Dst: pcli_prefix_to_pid
      Src: /src/haproxy/src/cli.c:3041,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3043,1
    - Dst: b_del
      Src: /src/haproxy/src/cli.c:3053,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3067,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3067,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3070,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3070,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3074,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3074,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3078,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3078,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: 3086
      start: 3010
    functionDepth: 1
    functionLinenumber: 3010
    functionLinenumberEnd: 3086
    functionName: pcli_find_bidir_prefix
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - pcli_prefix_to_pid
    - ci_insert
    - strlen
    - b_del
    - memprintf
    - memchr
    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: 30
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/cli.c:3113,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:3113,1
    - Dst: b_wrap
      Src: /src/haproxy/src/cli.c:3113,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/cli.c:3114,1
    - Dst: co_data
      Src: /src/haproxy/src/cli.c:3114,1
    - Dst: ci_head
      Src: /src/haproxy/src/cli.c:3116,1
    - Dst: ci_stop
      Src: /src/haproxy/src/cli.c:3117,1
    - Dst: pcli_find_bidir_prefix
      Src: /src/haproxy/src/cli.c:3123,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3167,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:3169,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3169,1
    - Dst: strspn
      Src: /src/haproxy/src/cli.c:3182,1
    - Dst: strcspn
      Src: /src/haproxy/src/cli.c:3188,1
    - Dst: strncmp
      Src: /src/haproxy/src/cli.c:3205,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3205,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3206,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3206,1
    - Dst: strncpy
      Src: /src/haproxy/src/cli.c:3215,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3215,1
    - Dst: pcli_find_and_exec_kw
      Src: /src/haproxy/src/cli.c:3223,1
    - Dst: b_del
      Src: /src/haproxy/src/cli.c:3241,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3258,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3258,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3259,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3263,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3263,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3264,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3268,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3268,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3269,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3273,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3273,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3274,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3278,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3278,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3279,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3282,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3284,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3286,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3286,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3287,1
    - Dst: pcli_has_level
      Src: /src/haproxy/src/cli.c:3288,1
    - Dst: ci_insert
      Src: /src/haproxy/src/cli.c:3290,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3290,1
    - Dst: strlen
      Src: /src/haproxy/src/cli.c:3291,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 139
    argCount: 4
    argNames:
    - s
    - req
    - errmsg
    - next_pid
    argTypes:
    - struct stream*
    - struct channel*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3297
      start: 3097
    functionDepth: 2
    functionLinenumber: 3097
    functionLinenumberEnd: 3297
    functionName: pcli_parse_request
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - co_data
    - ci_head
    - pcli_find_and_exec_kw
    - b_data
    - pcli_find_bidir_prefix
    - strncmp
    - ci_insert
    - strlen
    - b_del
    - b_wrap
    - b_head
    - strncpy
    - ci_stop
    - strspn
    - b_slow_realign
    - strcspn
    - pcli_has_level
    linkageType: ''
    returnType: int
    signature: int pcli_parse_request(struct stream *s, struct channel *req, char
      **errmsg, int *next_pid)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:3314,1
    - Dst: strm_li
      Src: /src/haproxy/src/cli.c:3319,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/cli.c:3327,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/cli.c:3330,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3335,1
    - Dst: c_data
      Src: /src/haproxy/src/cli.c:3339,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/cli.c:3340,1
    - Dst: pcli_parse_request
      Src: /src/haproxy/src/cli.c:3342,1
    - Dst: channel_forward
      Src: /src/haproxy/src/cli.c:3349,1
    - Dst: channel_forward_forever
      Src: /src/haproxy/src/cli.c:3351,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/cli.c:3358,1
    - Dst: pcli_write_prompt
      Src: /src/haproxy/src/cli.c:3360,1
    - Dst: pcli_pid_to_server
      Src: /src/haproxy/src/cli.c:3372,1
    - Dst: objt_server
      Src: /src/haproxy/src/cli.c:3373,1
    - Dst: __objt_server
      Src: /src/haproxy/src/cli.c:3374,1
    - Dst: channel_auto_connect
      Src: /src/haproxy/src/cli.c:3380,1
    - Dst: pcli_write_prompt
      Src: /src/haproxy/src/cli.c:3385,1
    - Dst: pcli_error
      Src: /src/haproxy/src/cli.c:3392,1
    - Dst: pcli_write_prompt
      Src: /src/haproxy/src/cli.c:3393,1
    - Dst: b_reset
      Src: /src/haproxy/src/cli.c:3399,1
    - Dst: b_putblk
      Src: /src/haproxy/src/cli.c:3400,1
    - Dst: b_reset
      Src: /src/haproxy/src/cli.c:3406,1
    - Dst: b_putblk
      Src: /src/haproxy/src/cli.c:3407,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/cli.c:3414,1
    - Dst: channel_full
      Src: /src/haproxy/src/cli.c:3418,1
    - Dst: pcli_reply_and_close
      Src: /src/haproxy/src/cli.c:3425,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3427
      start: 3299
    functionDepth: 3
    functionLinenumber: 3299
    functionLinenumberEnd: 3427
    functionName: pcli_wait_for_request
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - channel_dont_connect
    - pcli_pid_to_server
    - channel_auto_connect
    - sc_schedule_shutdown
    - ns_to_ms
    - pcli_error
    - channel_forward
    - pcli_parse_request
    - b_putblk
    - channel_full
    - __objt_server
    - strm_li
    - channel_dont_close
    - ci_data
    - c_data
    - pcli_reply_and_close
    - channel_forward_forever
    - pcli_write_prompt
    - objt_server
    - 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:3431,1
    - Dst: co_data
      Src: /src/haproxy/src/cli.c:3435,1
    - Dst: pcli_reply_and_close
      Src: /src/haproxy/src/cli.c:3436,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/cli.c:3445,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/cli.c:3446,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3455,1
    - Dst: c_adv
      Src: /src/haproxy/src/cli.c:3456,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3456,1
    - Dst: pcli_write_prompt
      Src: /src/haproxy/src/cli.c:3465,1
    - Dst: sc_abort
      Src: /src/haproxy/src/cli.c:3468,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/cli.c:3469,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/cli.c:3480,1
    - Dst: unlikely
      Src: /src/haproxy/src/cli.c:3481,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/cli.c:3482,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/cli.c:3485,1
    - Dst: stream_process_counters
      Src: /src/haproxy/src/cli.c:3486,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3489,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3490,1
    - Dst: pendconn_free
      Src: /src/haproxy/src/cli.c:3493,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/cli.c:3497,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/cli.c:3500,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/cli.c:3506,1
    - Dst: log_orig
      Src: /src/haproxy/src/cli.c:3506,1
    - Dst: stream_stop_content_counters
      Src: /src/haproxy/src/cli.c:3510,1
    - Dst: stream_update_time_stats
      Src: /src/haproxy/src/cli.c:3511,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3525,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3526,1
    - Dst: stream_del_srv_conn
      Src: /src/haproxy/src/cli.c:3528,1
    - Dst: objt_server
      Src: /src/haproxy/src/cli.c:3529,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/cli.c:3532,1
    - Dst: __objt_server
      Src: /src/haproxy/src/cli.c:3532,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/cli.c:3534,1
    - Dst: __objt_server
      Src: /src/haproxy/src/cli.c:3534,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/cli.c:3535,1
    - Dst: __objt_server
      Src: /src/haproxy/src/cli.c:3535,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/cli.c:3542,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/cli.c:3546,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/cli.c:3549,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/cli.c:3551,1
    - Dst: sc_set_state
      Src: /src/haproxy/src/cli.c:3553,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cli.c:3573,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cli.c:3574,1
    - Dst: stream_del_srv_conn
      Src: /src/haproxy/src/cli.c:3576,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/cli.c:3580,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/cli.c:3586,1
    - Dst: unlikely
      Src: /src/haproxy/src/cli.c:3600,1
    - Dst: ci_data
      Src: /src/haproxy/src/cli.c:3600,1
    - Dst: b_set_data
      Src: /src/haproxy/src/cli.c:3601,1
    - Dst: co_data
      Src: /src/haproxy/src/cli.c:3601,1
    - Dst: c_realign_if_empty
      Src: /src/haproxy/src/cli.c:3604,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cli.c:3606,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/cli.c:3616,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/cli.c:3617,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/cli.c:3618,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: 3624
      start: 3429
    functionDepth: 3
    functionLinenumber: 3429
    functionLinenumberEnd: 3624
    functionName: pcli_wait_for_response
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - co_data
    - unlikely
    - stream_process_counters
    - b_set_data
    - strm_fe
    - stream_del_srv_conn
    - process_srv_queue
    - se_fl_clr
    - struct stream*::srv_error
    - ns_to_ms
    - log_orig
    - c_adv
    - stream_stop_content_counters
    - sockaddr_free
    - __objt_server
    - stream_update_time_stats
    - channel_dont_close
    - lf_expr_isempty
    - c_realign_if_empty
    - channel_auto_close
    - sc_set_state
    - ci_data
    - log_orig_proxy
    - _HA_ATOMIC_FETCH_ADD
    - pcli_reply_and_close
    - se_have_more_data
    - channel_auto_read
    - pcli_write_prompt
    - sc_abort
    - struct stream*::do_log
    - objt_server
    - sc_reset_endp
    - may_dequeue_tasks
    - sc_shutdown
    - pendconn_free
    - sess_change_server
    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:3636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3637
      start: 3633
    functionDepth: 1
    functionLinenumber: 3633
    functionLinenumberEnd: 3637
    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:3644,1
    - Dst: strdup
      Src: /src/haproxy/src/cli.c:3654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - errmsg
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3666
      start: 3642
    functionDepth: 1
    functionLinenumber: 3642
    functionLinenumberEnd: 3666
    functionName: mworker_cli_create_master_proxy
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strdup
    - alloc_new_proxy
    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:3679,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:3683,1
    - Dst: new_server
      Src: /src/haproxy/src/cli.c:3693,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3698,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3700,1
    - Dst: strdup
      Src: /src/haproxy/src/cli.c:3702,1
    - Dst: strdup
      Src: /src/haproxy/src/cli.c:3703,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3706,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cli.c:3707,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:3711,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/cli.c:3723,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:3732,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:3733,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:3734,1
    - Dst: srv_free
      Src: /src/haproxy/src/cli.c:3735,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:3737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 1
    argNames:
    - errmsg
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3740
      start: 3674
    functionDepth: 1
    functionLinenumber: 3674
    functionLinenumberEnd: 3740
    functionName: mworker_cli_attach_server
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - ha_free
    - BUG_ON
    - srv_lb_commit_status
    - srv_free
    - free
    - memprintf
    - str2sa_range
    - new_server
    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:3771,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cli.c:3771,1
    - Dst: str2listener
      Src: /src/haproxy/src/cli.c:3779,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:3780,1
    - Dst: bind_find_kw
      Src: /src/haproxy/src/cli.c:3790,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3793,1
    - Dst: struct bind_kw*::parse
      Src: /src/haproxy/src/cli.c:3798,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3800,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3802,1
    - Dst: bind_find_best_kw
      Src: /src/haproxy/src/cli.c:3811,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3813,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3816,1
    - Dst: thread_set_pin_grp1
      Src: /src/haproxy/src/cli.c:3827,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:3829,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:3838,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:3839,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:3840,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 67
    argCount: 1
    argNames:
    - line
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3843
      start: 3745
    functionDepth: 1
    functionLinenumber: 3745
    functionLinenumberEnd: 3843
    functionName: mworker_cli_master_proxy_new_listener
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - bind_find_kw
    - bind_find_best_kw
    - thread_set_pin_grp1
    - struct bind_kw*::parse
    - free
    - xprt_get
    - memprintf
    - ha_alert
    - str2listener
    - bind_conf_alloc
    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:3859,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:3860,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/cli.c:3865,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cli.c:3865,1
    - Dst: memprintf
      Src: /src/haproxy/src/cli.c:3873,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:3874,1
    - Dst: str2listener
      Src: /src/haproxy/src/cli.c:3878,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:3879,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cli.c:3880,1
    - Dst: ha_free
      Src: /src/haproxy/src/cli.c:3883,1
    - Dst: thread_set_pin_grp1
      Src: /src/haproxy/src/cli.c:3890,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cli.c:3892,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/cli.c:3893,1
    - Dst: close
      Src: /src/haproxy/src/cli.c:3902,1
    - Dst: free
      Src: /src/haproxy/src/cli.c:3903,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 1
    argNames:
    - proc
    argTypes:
    - struct mworker_proc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3906
      start: 3850
    functionDepth: 2
    functionLinenumber: 3850
    functionLinenumberEnd: 3906
    functionName: mworker_cli_global_proxy_new_listener
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - list_for_each_entry
    - thread_set_pin_grp1
    - ha_free
    - close
    - cli_alloc_fe
    - free
    - xprt_get
    - memprintf
    - ha_alert
    - str2listener
    - bind_conf_alloc
    linkageType: ''
    returnType: int
    signature: int mworker_cli_global_proxy_new_listener(struct mworker_proc *proc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_xfer
      Src: /src/haproxy/src/cli.c:3914,1
    - Dst: MIN
      Src: /src/haproxy/src/cli.c:3914,1
    - Dst: b_data
      Src: /src/haproxy/src/cli.c:3914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - appctx
    - buf
    - count
    - flags
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3908
    functionDepth: 1
    functionLinenumber: 3908
    functionLinenumberEnd: 3915
    functionName: cli_raw_rcv_buf
    functionSourceFile: /src/haproxy/src/cli.c
    functionUses: 0
    functionsReached:
    - 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:42,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgcond.c:45,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgcond.c:47,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 52
    functionName: cfg_lookup_cond_pred
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    - strcspn
    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:61,1
    - Dst: free_args
      Src: /src/haproxy/src/cfgcond.c:65,1
    - Dst: free
      Src: /src/haproxy/src/cfgcond.c:66,1
    - Dst: free
      Src: /src/haproxy/src/cfgcond.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - term
    argTypes:
    - struct cfg_cond_term*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 68
    functionName: cfg_free_cond_term
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - cfg_free_cond_expr
    - free
    - free_args
    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:101,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:103,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgcond.c:117,1
    - Dst: cfg_parse_cond_expr
      Src: /src/haproxy/src/cfgcond.c:132,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:142,1
    - Dst: cfg_lookup_cond_pred
      Src: /src/haproxy/src/cfgcond.c:153,1
    - Dst: make_arg_list
      Src: /src/haproxy/src/cfgcond.c:156,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgcond.c:156,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:160,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:170,1
    - Dst: cfg_free_cond_term
      Src: /src/haproxy/src/cfgcond.c:175,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: 178
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 178
    functionName: cfg_parse_cond_term
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - cfg_lookup_cond_pred
    - cfg_free_cond_term
    - strlen
    - memprintf
    - cfg_parse_cond_expr
    - make_arg_list
    - calloc
    - strtol
    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:186,1
    - 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
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 205
    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: 23
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/haproxy/src/cfgcond.c:226,1
    - Dst: strstr
      Src: /src/haproxy/src/cfgcond.c:233,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:251,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgcond.c:255,1
    - Dst: strstr
      Src: /src/haproxy/src/cfgcond.c:259,1
    - Dst: compare_current_version
      Src: /src/haproxy/src/cfgcond.c:263,1
    - Dst: compare_current_version
      Src: /src/haproxy/src/cfgcond.c:267,1
    - Dst: openssl_compare_current_version
      Src: /src/haproxy/src/cfgcond.c:271,1
    - Dst: openssl_compare_current_version
      Src: /src/haproxy/src/cfgcond.c:280,1
    - Dst: openssl_compare_current_name
      Src: /src/haproxy/src/cfgcond.c:289,1
    - Dst: cfg_eval_cond_enabled
      Src: /src/haproxy/src/cfgcond.c:293,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:297,1
    - Dst: cfg_eval_cond_expr
      Src: /src/haproxy/src/cfgcond.c:302,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:305,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 2
    argNames:
    - term
    - err
    argTypes:
    - struct cfg_cond_term*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 311
    functionName: cfg_eval_cond_term
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - openssl_compare_current_version
    - cfg_eval_cond_expr
    - getenv
    - strcmp
    - cfg_eval_cond_enabled
    - openssl_compare_current_name
    - compare_current_version
    - memprintf
    - strstr
    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:320,1
    - Dst: free
      Src: /src/haproxy/src/cfgcond.c:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct cfg_cond_and*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 325
    functionName: cfg_free_cond_and
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - free
    - cfg_free_cond_term
    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:333,1
    - Dst: free
      Src: /src/haproxy/src/cfgcond.c:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct cfg_cond_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: cfg_free_cond_expr
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 1
    functionsReached:
    - free
    - cfg_free_cond_and
    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:362,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgcond.c:368,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:370,1
    - Dst: cfg_parse_cond_term
      Src: /src/haproxy/src/cfgcond.c:374,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:380,1
    - Dst: cfg_parse_cond_and
      Src: /src/haproxy/src/cfgcond.c:402,1
    - Dst: cfg_free_cond_and
      Src: /src/haproxy/src/cfgcond.c:407,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: 411
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 411
    functionName: cfg_parse_cond_and
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 1
    functionsReached:
    - cfg_parse_cond_and
    - cfg_free_cond_and
    - cfg_parse_cond_term
    - memprintf
    - calloc
    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:435,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgcond.c:441,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:443,1
    - Dst: cfg_parse_cond_and
      Src: /src/haproxy/src/cfgcond.c:447,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:453,1
    - Dst: cfg_parse_cond_expr
      Src: /src/haproxy/src/cfgcond.c:475,1
    - Dst: cfg_free_cond_expr
      Src: /src/haproxy/src/cfgcond.c:480,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: 484
      start: 424
    functionDepth: 4
    functionLinenumber: 424
    functionLinenumberEnd: 484
    functionName: cfg_parse_cond_expr
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 2
    functionsReached:
    - cfg_free_cond_expr
    - cfg_parse_cond_and
    - memprintf
    - cfg_parse_cond_expr
    - calloc
    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:498,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - expr
    - err
    argTypes:
    - struct cfg_cond_and*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 501
    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:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - expr
    - err
    argTypes:
    - struct cfg_cond_expr*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 508
    functionDepth: 3
    functionLinenumber: 508
    functionLinenumberEnd: 516
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: cfg_parse_cond_expr
      Src: /src/haproxy/src/cfgcond.c:532,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:541,1
    - Dst: cfg_eval_cond_expr
      Src: /src/haproxy/src/cfgcond.c:546,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgcond.c:552,1
    - Dst: cfg_free_cond_expr
      Src: /src/haproxy/src/cfgcond.c:557,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - args
    - err
    - errptr
    argTypes:
    - char**
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 559
    functionName: cfg_eval_condition
    functionSourceFile: /src/haproxy/src/cfgcond.c
    functionUses: 0
    functionsReached:
    - cfg_free_cond_expr
    - cfg_eval_cond_expr
    - memprintf
    - cfg_parse_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: 113
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 113
    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: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    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: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    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:167,1
    - Dst: longjmp
      Src: /src/haproxy/src/hlua.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 167
    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:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    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:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 197
    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:215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 217
    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:222,1
    - Dst: lua_drop_global_lock
      Src: /src/haproxy/src/hlua.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 227
    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:240,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:241,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: _hlua_tostring_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - MAY_LJMP
    - lua_tostring
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP _hlua_tostring_safe(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:251,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:257,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:262,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:263,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:264,1
    - Dst: lua_remove
      Src: /src/haproxy/src/hlua.c:266,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - L
    - index
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 279
    functionName: hlua_tostring_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pcall
    - lua_checkstack
    - lua_pushcfunction
    - lua_pushlightuserdata
    - lua_pushvalue
    - 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:293,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:294,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:295,1
    - Dst: lua_pushvfstring
      Src: /src/haproxy/src/hlua.c:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 299
    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:305,1
    - Dst: va_copy
      Src: /src/haproxy/src/hlua.c:308,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:313,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:314,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:315,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:316,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:321,1
    - Dst: va_end
      Src: /src/haproxy/src/hlua.c:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - L
    - fmt
    - argp
    argTypes:
    - lua_State*
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 331
    functionName: hlua_pushvfstring_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pcall
    - lua_checkstack
    - lua_pushcfunction
    - lua_pushlightuserdata
    - va_end
    - va_copy
    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:338,1
    - Dst: hlua_pushvfstring_safe
      Src: /src/haproxy/src/hlua.c:339,1
    - Dst: va_end
      Src: /src/haproxy/src/hlua.c:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - L
    - fmt
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 343
    functionName: hlua_pushfstring_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_pushvfstring_safe
    - va_end
    - va_start
    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: 359
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 359
    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: 368
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 368
    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: 371
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 371
    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: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    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: 377
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 377
    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: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    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:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 539
    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:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct hlua_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 552
    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: 559
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 559
    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: 566
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 566
    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:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct hlua_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 572
    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:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct hlua_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 578
    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:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - timer
    argTypes:
    - struct hlua_timer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 589
    functionDepth: 3
    functionLinenumber: 589
    functionLinenumberEnd: 598
    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:651,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:656,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 666
    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: 726
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 726
    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:732,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua.c:735,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 739
    functionName: new_hlua_function
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - calloc
    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:746,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/hlua.c:747,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:748,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - fcn
    argTypes:
    - struct hlua_function*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 741
    functionDepth: 1
    functionLinenumber: 741
    functionLinenumberEnd: 749
    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: 757
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 757
    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:765,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:768,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:770,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua.c:773,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 760
    functionDepth: 1
    functionLinenumber: 760
    functionLinenumberEnd: 779
    functionName: new_hlua_reg_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - strdup
    - free
    - calloc
    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:787,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/hlua.c:788,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - reg_flt
    argTypes:
    - struct hlua_reg_filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 790
    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: 798
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 798
    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:807,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:808,1
    - Dst: luaL_typename
      Src: /src/haproxy/src/hlua.c:808,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:809,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:809,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:811,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - L
    - argno
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 813
    functionName: hlua_checkfunction
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushvalue
    - luaL_ref
    - luaL_argerror
    - lua_isfunction
    - lua_pushfstring
    - WILL_LJMP
    - luaL_typename
    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:822,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:823,1
    - Dst: luaL_typename
      Src: /src/haproxy/src/hlua.c:823,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:824,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:824,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:826,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:827,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - L
    - argno
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 828
    functionName: hlua_checktable
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushvalue
    - luaL_ref
    - lua_istable
    - luaL_argerror
    - lua_pushfstring
    - WILL_LJMP
    - luaL_typename
    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:838,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 839
    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:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ref
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 854
    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:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ref
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 868
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:872,1
    - Dst: lua_getinfo
      Src: /src/haproxy/src/hlua.c:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 881
    functionName: _hlua_traceback
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - lua_getinfo
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP _hlua_traceback(lua_State *L)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:889,1
    - Dst: lua_getstack
      Src: /src/haproxy/src/hlua.c:891,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:892,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:895,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:896,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:899,1
    - Dst: b_data
      Src: /src/haproxy/src/hlua.c:911,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:912,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:916,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:918,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:928,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:931,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:934,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:937,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:942,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 34
    argCount: 2
    argNames:
    - L
    - sep
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 947
    functionName: hlua_traceback
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pcall
    - lua_checkstack
    - lua_getstack
    - lua_pushcfunction
    - get_trash_chunk
    - b_data
    - chunk_appendf
    - lua_pushlightuserdata
    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:956,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:958,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - L
    - nb
    - fcn
    argTypes:
    - lua_State*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 959
    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:968,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:969,1
    - Dst: luaL_where
      Src: /src/haproxy/src/hlua.c:971,1
    - Dst: lua_pushvfstring
      Src: /src/haproxy/src/hlua.c:972,1
    - Dst: lua_concat
      Src: /src/haproxy/src/hlua.c:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 976
    functionName: _hlua_pusherror
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - lua_concat
    - luaL_where
    - 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:982,1
    - Dst: va_start
      Src: /src/haproxy/src/hlua.c:985,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:990,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:991,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:992,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:997,1
    - Dst: va_end
      Src: /src/haproxy/src/hlua.c:1004,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - L
    - fmt
    argTypes:
    - lua_State*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 977
    functionDepth: 0
    functionLinenumber: 977
    functionLinenumberEnd: 1007
    functionName: hlua_pusherror
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pcall
    - lua_checkstack
    - lua_pushcfunction
    - lua_pushlightuserdata
    - va_start
    - va_end
    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:1022,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1026,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:1040,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - L
    - arg
    argTypes:
    - lua_State*
    - struct arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1044
    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:1068,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:1073,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:1078,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - L
    - ud
    - arg
    argTypes:
    - lua_State*
    - int
    - struct arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1066
    functionDepth: 0
    functionLinenumber: 1066
    functionLinenumberEnd: 1095
    functionName: hlua_lua2arg
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_tolstring
    - lua_tointeger
    - lua_type
    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:1105,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:1109,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:1111,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1116,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1121,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1122,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1123,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1124,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1125,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1126,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1127,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1128,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1130,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:1133,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1143,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:1145,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:1148,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 2
    argNames:
    - L
    - smp
    argTypes:
    - lua_State*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1152
    functionName: hlua_smp2lua
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - lua_pushinteger
    - lua_pushboolean
    - lua_pushlstring
    - lua_pushstring
    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:1164,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1169,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1170,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1171,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1172,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1173,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1174,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1175,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1176,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1178,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1181,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:1193,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1195,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:1198,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 54
    argCount: 2
    argNames:
    - L
    - smp
    argTypes:
    - lua_State*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1202
    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:1229,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:1233,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua.c:1239,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:1245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 3
    argNames:
    - L
    - ud
    - smp
    argTypes:
    - lua_State*
    - int
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1264
    functionName: hlua_lua2smp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_tolstring
    - lua_tointeger
    - lua_type
    - lua_toboolean
    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:1285,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/hlua.c:1390,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/hlua.c:1403,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/hlua.c:1416,1
    - Dst: strrchr
      Src: /src/haproxy/src/hlua.c:1429,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/hlua.c:1433,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/hlua.c:1443,1
    - Dst: inet_pton
      Src: /src/haproxy/src/hlua.c:1456,1
    - Dst: len2mask4
      Src: /src/haproxy/src/hlua.c:1465,1
    - Dst: str2mask
      Src: /src/haproxy/src/hlua.c:1467,1
    - Dst: inet_pton
      Src: /src/haproxy/src/hlua.c:1484,1
    - Dst: len2mask6
      Src: /src/haproxy/src/hlua.c:1493,1
    - Dst: str2mask6
      Src: /src/haproxy/src/hlua.c:1495,1
    - Dst: regex_comp
      Src: /src/haproxy/src/hlua.c:1512,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:1514,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:1516,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:1529,1
    - Dst: auth_find_userlist
      Src: /src/haproxy/src/hlua.c:1532,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:1535,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/hlua.c:1544,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:1560,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:1574,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:1575,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:1575,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: 1577
      start: 1273
    functionDepth: 2
    functionLinenumber: 1273
    functionLinenumberEnd: 1577
    functionName: hlua_lua2arg_check
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - len2mask6
    - regex_comp
    - str2mask6
    - WILL_LJMP
    - strcmp
    - stktable_find_by_name
    - strrchr
    - server_find_by_name
    - luaL_argerror
    - proxy_be_by_name
    - str2mask
    - proxy_fe_by_name
    - inet_pton
    - auth_find_userlist
    - chunk_dup
    - hlua_pushfstring_safe
    - free
    - free_args
    - len2mask4
    - ARGM
    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:1588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1590
    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:1593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1595
    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:1608,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:1609,1
    - Dst: lua_getstack
      Src: /src/haproxy/src/hlua.c:1612,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:1613,1
    - Dst: lua_getstack
      Src: /src/haproxy/src/hlua.c:1616,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:1617,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 8
    argCount: 1
    argNames:
    - pfx
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1602
    functionDepth: 3
    functionLinenumber: 1602
    functionLinenumberEnd: 1620
    functionName: hlua_show_current_location
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_traceback
    - lua_getstack
    linkageType: ''
    returnType: char
    signature: char *hlua_show_current_location(const char *pfx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: isprint
      Src: /src/haproxy/src/hlua.c:1642,1
    - Dst: send_log
      Src: /src/haproxy/src/hlua.c:1650,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/hlua.c:1663,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/hlua.c:1667,1
    - Dst: get_localtime
      Src: /src/haproxy/src/hlua.c:1674,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:1675,1
    - Dst: getpid
      Src: /src/haproxy/src/hlua.c:1677,1
    - Dst: fflush
      Src: /src/haproxy/src/hlua.c:1678,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 32
    argCount: 3
    argNames:
    - px
    - level
    - msg
    argTypes:
    - struct proxy*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1680
    functionName: hlua_sendlog
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - getpid
    - fflush
    - isprint
    - fprintf
    - send_log
    - get_localtime
    - LIST_ISEMPTY
    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:1692,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:1705,1
    - Dst: lua_yieldk
      Src: /src/haproxy/src/hlua.c:1705,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: 1706
      start: 1686
    functionDepth: 1
    functionLinenumber: 1686
    functionLinenumberEnd: 1706
    functionName: hlua_yieldk
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - MAY_LJMP
    - lua_yieldk
    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:1728,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/hlua.c:1729,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/hlua.c:1730,1
    - Dst: SET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1731,1
    - Dst: lua_newthread
      Src: /src/haproxy/src/hlua.c:1735,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1738,1
    - Dst: hlua_sethlua
      Src: /src/haproxy/src/hlua.c:1741,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:1742,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1744,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: 1746
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1746
    functionName: hlua_ctx_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - RESET_SAFE_LJMP_PARENT
    - hlua_sethlua
    - luaL_ref
    - lua_newthread
    - LIST_INIT
    - hlua_timer_init
    - MT_LIST_INIT
    - SET_SAFE_LJMP_PARENT
    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:1769,1
    - Dst: typeof
      Src: /src/haproxy/src/hlua.c:1769,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/hlua.c:1770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1773
      start: 1752
    functionDepth: 1
    functionLinenumber: 1752
    functionLinenumberEnd: 1773
    functionName: hlua_httpclient_destroy_all
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MT_LIST_POP
    - typeof
    - 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:1789,1
    - Dst: notification_purge
      Src: /src/haproxy/src/hlua.c:1792,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:1794,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:1796,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:1797,1
    - Dst: SET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1799,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:1801,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1802,1
    - Dst: SET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1813,1
    - Dst: lua_gc
      Src: /src/haproxy/src/hlua.c:1815,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1816,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:1822,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - lua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1780
    functionDepth: 2
    functionLinenumber: 1780
    functionLinenumberEnd: 1823
    functionName: hlua_ctx_destroy
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - RESET_SAFE_LJMP_PARENT
    - notification_purge
    - luaL_unref
    - pool_free
    - RESET_SAFE_LJMP
    - SET_SAFE_LJMP
    - lua_gc
    - hlua_httpclient_destroy_all
    - SET_SAFE_LJMP_PARENT
    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:1837,1
    - Dst: lua_newthread
      Src: /src/haproxy/src/hlua.c:1841,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1843,1
    - Dst: lua_xmove
      Src: /src/haproxy/src/hlua.c:1849,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:1852,1
    - Dst: lua_xmove
      Src: /src/haproxy/src/hlua.c:1853,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:1854,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:1857,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:1860,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:1865,1
    - Dst: RESET_SAFE_LJMP_PARENT
      Src: /src/haproxy/src/hlua.c:1867,1
    - Dst: hlua_sethlua
      Src: /src/haproxy/src/hlua.c:1870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - lua
    - keep_msg
    argTypes:
    - struct hlua*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1832
    functionDepth: 1
    functionLinenumber: 1832
    functionLinenumberEnd: 1873
    functionName: hlua_ctx_renew
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - RESET_SAFE_LJMP_PARENT
    - lua_xmove
    - hlua_sethlua
    - luaL_unref
    - luaL_ref
    - lua_newthread
    - SET_SAFE_LJMP_PARENT
    - lua_rawgeti
    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: 1882
      start: 1876
    functionDepth: 0
    functionLinenumber: 1876
    functionLinenumberEnd: 1882
    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:1901,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:1904,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:1905,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:1906,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - state_id
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1891
    functionDepth: 2
    functionLinenumber: 1891
    functionLinenumberEnd: 1912
    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:1920,1
    - Dst: lua_gethookmask
      Src: /src/haproxy/src/hlua.c:1940,1
    - Dst: lua_sethook
      Src: /src/haproxy/src/hlua.c:1941,1
    - Dst: lua_isyieldable
      Src: /src/haproxy/src/hlua.c:1948,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:1955,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:1955,1
    - Dst: hlua_timer_check
      Src: /src/haproxy/src/hlua.c:1972,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:1975,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:1977,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:1978,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:1978,1
    - Dst: lua_sethook
      Src: /src/haproxy/src/hlua.c:1984,1
    - Dst: hlua_get_nb_instruction
      Src: /src/haproxy/src/hlua.c:1984,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - L
    - ar
    argTypes:
    - lua_State*
    - lua_Debug*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1914
    functionDepth: 4
    functionLinenumber: 1914
    functionLinenumberEnd: 1985
    functionName: hlua_hook
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - hlua_yieldk
    - lua_error
    - lua_sethook
    - lua_pushfstring
    - lua_isyieldable
    - WILL_LJMP
    - MAY_LJMP
    - hlua_timer_check
    - hlua_get_nb_instruction
    - lua_gethookmask
    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:1993,1
    - Dst: lua_sethook
      Src: /src/haproxy/src/hlua.c:1998,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1988
    functionDepth: 1
    functionLinenumber: 1988
    functionLinenumberEnd: 1999
    functionName: hlua_yield_asap
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - lua_sethook
    linkageType: ''
    returnType: void
    signature: void hlua_yield_asap(lua_State *L)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:2028,1
    - Dst: hlua_timer_reset
      Src: /src/haproxy/src/hlua.c:2034,1
    - Dst: lua_sethook
      Src: /src/haproxy/src/hlua.c:2041,1
    - Dst: hlua_get_nb_instruction
      Src: /src/haproxy/src/hlua.c:2041,1
    - Dst: HLUA_SET_RUN
      Src: /src/haproxy/src/hlua.c:2044,1
    - Dst: HLUA_CLR_CTRLYIELD
      Src: /src/haproxy/src/hlua.c:2045,1
    - Dst: HLUA_CLR_WAKERESWR
      Src: /src/haproxy/src/hlua.c:2046,1
    - Dst: HLUA_CLR_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:2047,1
    - Dst: HLUA_CLR_NOYIELD
      Src: /src/haproxy/src/hlua.c:2048,1
    - Dst: HLUA_SET_NOYIELD
      Src: /src/haproxy/src/hlua.c:2050,1
    - Dst: hlua_timer_start
      Src: /src/haproxy/src/hlua.c:2056,1
    - Dst: HLUA_SET_BUSY
      Src: /src/haproxy/src/hlua.c:2058,1
    - Dst: lua_resume
      Src: /src/haproxy/src/hlua.c:2062,1
    - Dst: lua_resume
      Src: /src/haproxy/src/hlua.c:2064,1
    - Dst: HLUA_CLR_BUSY
      Src: /src/haproxy/src/hlua.c:2067,1
    - Dst: hlua_timer_stop
      Src: /src/haproxy/src/hlua.c:2070,1
    - Dst: hlua_timer_check
      Src: /src/haproxy/src/hlua.c:2093,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2099,1
    - Dst: HLUA_IS_CTRLYIELDING
      Src: /src/haproxy/src/hlua.c:2109,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:2112,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2115,1
    - Dst: hlua_ctx_renew
      Src: /src/haproxy/src/hlua.c:2130,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:2135,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:2139,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:2140,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:2142,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:2145,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:2149,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2150,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2156,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:2162,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:2166,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:2168,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:2171,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:2175,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2176,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:2182,1
    - Dst: notification_purge
      Src: /src/haproxy/src/hlua.c:2192,1
    - Dst: hlua_ctx_renew
      Src: /src/haproxy/src/hlua.c:2193,1
    - Dst: HLUA_CLR_RUN
      Src: /src/haproxy/src/hlua.c:2194,1
    - Dst: HLUA_CLR_RUN
      Src: /src/haproxy/src/hlua.c:2202,1
    - Dst: notification_purge
      Src: /src/haproxy/src/hlua.c:2203,1
    - Dst: hlua_ctx_renew
      Src: /src/haproxy/src/hlua.c:2204,1
    - Dst: HLUA_CLR_RUN
      Src: /src/haproxy/src/hlua.c:2208,1
    - Dst: notification_purge
      Src: /src/haproxy/src/hlua.c:2209,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:2214,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 117
    argCount: 2
    argNames:
    - lua
    - yield_allowed
    argTypes:
    - struct hlua*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2217
      start: 2016
    functionDepth: 4
    functionLinenumber: 2016
    functionLinenumberEnd: 2217
    functionName: hlua_ctx_resume
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_timer_start
    - lua_checkstack
    - task_wakeup
    - HLUA_CLR_BUSY
    - hlua_get_nb_instruction
    - HLUA_CLR_RUN
    - hlua_timer_reset
    - notification_purge
    - lua_resume
    - lua_settop
    - hlua_ctx_renew
    - hlua_traceback
    - HLUA_IS_CTRLYIELDING
    - HLUA_CLR_NOYIELD
    - HLUA_CLR_CTRLYIELD
    - HLUA_CLR_WAKEREQWR
    - HLUA_CLR_WAKERESWR
    - HLUA_SET_NOYIELD
    - hlua_tostring_safe
    - hlua_timer_stop
    - hlua_timer_check
    - hlua_pushfstring_safe
    - HLUA_SET_RUN
    - lua_sethook
    - lua_insert
    - HLUA_SET_BUSY
    - hlua_unlock
    - hlua_lock
    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:2225,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2230,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:2230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2220
    functionDepth: 1
    functionLinenumber: 2220
    functionLinenumberEnd: 2233
    functionName: hlua_done
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - WILL_LJMP
    - hlua_gethlua
    - lua_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_done(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2244,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2244,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2246,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2246,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2247,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2247,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2249,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2251,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2251,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua.c:2253,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/hlua.c:2254,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua.c:2255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2257
      start: 2238
    functionDepth: 2
    functionLinenumber: 2238
    functionLinenumberEnd: 2257
    functionName: hlua_del_acl
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookup
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - luaL_checkstring
    - luaL_error
    - pat_ref_delete
    - WILL_LJMP
    - check_args
    - MAY_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:2268,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2268,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2270,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2270,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2271,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2271,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2273,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2275,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2275,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua.c:2277,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/hlua.c:2278,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua.c:2279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2281
      start: 2262
    functionDepth: 2
    functionLinenumber: 2262
    functionLinenumberEnd: 2281
    functionName: hlua_del_map
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookup
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - luaL_checkstring
    - luaL_error
    - pat_ref_delete
    - WILL_LJMP
    - check_args
    - MAY_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:2292,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2292,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2294,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2294,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2295,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2295,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2297,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2299,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2299,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua.c:2301,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/hlua.c:2302,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/hlua.c:2303,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua.c:2304,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2286
    functionDepth: 2
    functionLinenumber: 2286
    functionLinenumberEnd: 2306
    functionName: hlua_add_acl
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookup
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_find_elt
    - luaL_checkstring
    - luaL_error
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - pat_ref_add
    linkageType: ''
    returnType: int
    signature: int hlua_add_acl(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2320,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2320,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2322,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2322,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2323,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2323,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2324,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2324,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2326,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2328,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2328,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua.c:2330,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/hlua.c:2331,1
    - Dst: pat_ref_set_elt_duplicate
      Src: /src/haproxy/src/hlua.c:2333,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/hlua.c:2335,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua.c:2336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2312
    functionDepth: 2
    functionLinenumber: 2312
    functionLinenumberEnd: 2338
    functionName: hlua_set_map
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookup
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_find_elt
    - luaL_checkstring
    - luaL_error
    - pat_ref_set_elt_duplicate
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - pat_ref_add
    linkageType: ''
    returnType: int
    signature: int hlua_set_map(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2348,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2348,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2350,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2350,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/hlua.c:2352,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2354,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2354,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2357,1
    - Dst: hlua_fcn_new_patref
      Src: /src/haproxy/src/hlua.c:2357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2360
      start: 2343
    functionDepth: 2
    functionLinenumber: 2343
    functionLinenumberEnd: 2360
    functionName: hlua_get_patref
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookup
    - luaL_checkstring
    - luaL_error
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - hlua_fcn_new_patref
    linkageType: ''
    returnType: int
    signature: int hlua_get_patref(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2371,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2371,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2373,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:2373,1
    - Dst: strncmp
      Src: /src/haproxy/src/hlua.c:2377,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2378,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2378,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:2380,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/hlua.c:2381,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:2382,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2386,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:2386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2365
    functionDepth: 4
    functionLinenumber: 2365
    functionLinenumberEnd: 2387
    functionName: hlua_core_get_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memset
    - vars_get_by_name
    - lua_pushnil
    - strncmp
    - luaL_checklstring
    - luaL_error
    - WILL_LJMP
    - check_args
    - hlua_smp2lua
    - MAY_LJMP
    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:2397,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2397,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2401
      start: 2394
    functionDepth: 1
    functionLinenumber: 2394
    functionLinenumberEnd: 2401
    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:2507,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:2507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2508
    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:2526,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:2526,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2527,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2527,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2529,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:2529,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:2531,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2532,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:2532,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2534,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2534,1
    - Dst: lua_getstack
      Src: /src/haproxy/src/hlua.c:2538,1
    - Dst: lua_getinfo
      Src: /src/haproxy/src/hlua.c:2539,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2564,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2564,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:2569,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:2570,1
    - Dst: sample_load_map
      Src: /src/haproxy/src/hlua.c:2575,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:2579,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:2580,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/hlua.c:2581,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2582,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:2582,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:2586,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:2587,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:2588,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:2591,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:2592,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2515
    functionDepth: 1
    functionLinenumber: 2515
    functionLinenumberEnd: 2596
    functionName: hlua_map_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_gettop
    - WILL_LJMP
    - lua_error
    - lua_getstack
    - lua_rawseti
    - sample_load_map
    - luaL_error
    - chunk_destroy
    - strlen
    - lua_newtable
    - strdup
    - hlua_pusherror
    - lua_getinfo
    - luaL_checkinteger
    - lua_setmetatable
    - lua_rawgeti
    - luaL_checkstring
    - lua_pushlightuserdata
    - free
    - MAY_LJMP
    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:2604,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2604,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2605,1
    - Dst: hlua_checkmap
      Src: /src/haproxy/src/hlua.c:2605,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2608,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:2608,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2613,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:2613,1
    - Dst: pattern_exec_match
      Src: /src/haproxy/src/hlua.c:2617,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:2620,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:2622,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:2627,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - L
    - str
    argTypes:
    - struct lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2598
    functionDepth: 2
    functionLinenumber: 2598
    functionLinenumberEnd: 2629
    functionName: _hlua_map_lookup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_checkmap
    - lua_pushnil
    - luaL_checklstring
    - luaL_checkinteger
    - lua_pushlstring
    - check_args
    - pattern_exec_match
    - MAY_LJMP
    - lua_pushstring
    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:2633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2634
      start: 2631
    functionDepth: 3
    functionLinenumber: 2631
    functionLinenumberEnd: 2634
    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:2638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2639
      start: 2636
    functionDepth: 3
    functionLinenumber: 2636
    functionLinenumberEnd: 2639
    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:2651,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:2651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2649
    functionDepth: 1
    functionLinenumber: 2649
    functionLinenumberEnd: 2652
    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:2662,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/hlua.c:2662,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/hlua.c:2663,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2664,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2665,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/hlua.c:2670,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2671,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2672,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/hlua.c:2677,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2678,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2679,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/hlua.c:2685,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:2686,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:2687,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:2695,1
    - Dst: applet_output_room
      Src: /src/haproxy/src/hlua.c:2695,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2696,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:2699,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/hlua.c:2699,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2700,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:2701,1
    - Dst: notification_registered
      Src: /src/haproxy/src/hlua.c:2707,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:2708,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2658
    functionDepth: 1
    functionLinenumber: 2658
    functionLinenumberEnd: 2709
    functionName: hlua_socket_handler
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - applet_get_inbuf
    - applet_get_outbuf
    - applet_need_more_data
    - unlikely
    - se_fl_test
    - notification_registered
    - applet_wont_consume
    - notification_wake
    - applet_input_data
    - applet_output_room
    - applet_reset_input
    - applet_set_eos
    - applet_have_more_data
    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:2716,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/hlua.c:2719,1
    - Dst: sc_set_state
      Src: /src/haproxy/src/hlua.c:2725,1
    - Dst: se_need_remote_conn
      Src: /src/haproxy/src/hlua.c:2726,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/hlua.c:2730,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2711
    functionDepth: 1
    functionLinenumber: 2711
    functionLinenumberEnd: 2742
    functionName: hlua_socket_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - stream_set_srv_target
    - appctx_finalize_startup
    - sc_set_state
    - se_need_remote_conn
    - appctx_strm
    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:2754,1
    - Dst: xref_disconnect
      Src: /src/haproxy/src/hlua.c:2756,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2759,1
    - Dst: notification_wake
      Src: /src/haproxy/src/hlua.c:2760,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2761
      start: 2748
    functionDepth: 1
    functionLinenumber: 2748
    functionLinenumberEnd: 2761
    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:2775,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2775,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2777,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:2777,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:2778,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:2782,1
    - Dst: xref_disconnect
      Src: /src/haproxy/src/hlua.c:2785,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/hlua.c:2787,1
    - Dst: appctx_free
      Src: /src/haproxy/src/hlua.c:2789,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:2794,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2798
      start: 2769
    functionDepth: 2
    functionLinenumber: 2769
    functionLinenumberEnd: 2798
    functionName: hlua_socket_gc
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - se_fl_test
    - container_of
    - xref_get_peer_and_lock
    - appctx_free
    - check_args
    - xref_disconnect
    - MAY_LJMP
    - hlua_checksocket
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_gc(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:2811,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:2815,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:2815,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2821,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2821,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:2823,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:2828,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:2832,1
    - Dst: xref_disconnect
      Src: /src/haproxy/src/hlua.c:2835,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2837
      start: 2803
    functionDepth: 2
    functionLinenumber: 2803
    functionLinenumberEnd: 2837
    functionName: hlua_socket_close_helper
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - appctx_wakeup
    - container_of
    - luaL_error
    - xref_get_peer_and_lock
    - WILL_LJMP
    - xref_disconnect
    - MAY_LJMP
    - hlua_checksocket
    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:2843,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:2843,1
    - Dst: hlua_socket_close_helper
      Src: /src/haproxy/src/hlua.c:2844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2841
    functionDepth: 3
    functionLinenumber: 2841
    functionLinenumberEnd: 2845
    functionName: hlua_socket_close
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - check_args
    - MAY_LJMP
    - 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:2860,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:2860,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:2861,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:2877,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2881,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2881,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:2888,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:2888,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:2891,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:2895,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:2900,1
    - Dst: applet_getline_nc
      Src: /src/haproxy/src/hlua.c:2906,1
    - Dst: applet_getblk_nc
      Src: /src/haproxy/src/hlua.c:2937,1
    - Dst: applet_getblk_nc
      Src: /src/haproxy/src/hlua.c:2946,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:2962,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:2965,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/hlua.c:2969,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:2973,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:2974,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:2985,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:2986,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:2991,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:2997,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3000,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3001,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua.c:3006,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3007,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3008,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3008,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3010,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:3011,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3012,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3012,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 111
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - struct lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3014
      start: 2858
    functionDepth: 2
    functionLinenumber: 2858
    functionLinenumberEnd: 3014
    functionName: hlua_socket_receive_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - appctx_wakeup
    - applet_will_consume
    - hlua_yieldk
    - xref_get_peer_and_lock
    - luaL_pushresult
    - WILL_LJMP
    - lua_pushstring
    - applet_getblk_nc
    - applet_get_inbuf
    - lua_pushnil
    - container_of
    - luaL_error
    - applet_need_more_data
    - applet_skip_input
    - applet_getline_nc
    - notification_new
    - xref_unlock
    - hlua_checksocket
    - lua_tointeger
    - luaL_addlstring
    - MAY_LJMP
    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:3040,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3040,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3041,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3041,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3043,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3043,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3049,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3049,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3052,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:3053,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:3055,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:3056,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:3058,1
    - Dst: strtoll
      Src: /src/haproxy/src/hlua.c:3061,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3063,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3063,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:3067,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3069,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3069,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3074,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3077,1
    - Dst: lua_replace
      Src: /src/haproxy/src/hlua.c:3078,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3083,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:3086,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:3090,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3091,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3091,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:3092,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:3093,1
    - Dst: __LJMP
      Src: /src/haproxy/src/hlua.c:3096,1
    - Dst: hlua_socket_receive_yield
      Src: /src/haproxy/src/hlua.c:3096,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3097
      start: 3031
    functionDepth: 3
    functionLinenumber: 3031
    functionLinenumberEnd: 3097
    functionName: hlua_socket_receive
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - __LJMP
    - lua_tostring
    - lua_replace
    - strcmp
    - lua_tolstring
    - lua_tointeger
    - lua_gettop
    - lua_pushinteger
    - luaL_error
    - hlua_socket_receive_yield
    - luaL_addlstring
    - lua_type
    - strtoll
    - WILL_LJMP
    - MAY_LJMP
    - luaL_buffinit
    - hlua_checksocket
    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:3117,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3121,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3121,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3125,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3125,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3126,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:3126,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3127,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3127,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3133,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3133,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3136,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3138,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3142,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3144,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3145,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:3150,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3160,1
    - Dst: applet_output_room
      Src: /src/haproxy/src/hlua.c:3165,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/hlua.c:3172,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3180,1
    - Dst: hlua_socket_close_helper
      Src: /src/haproxy/src/hlua.c:3180,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3181,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3182,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3183,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:3188,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3191,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3192,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3196,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua.c:3201,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3202,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3203,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3203,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3205,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:3206,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3207,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3207,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: 3209
      start: 3102
    functionDepth: 3
    functionLinenumber: 3102
    functionLinenumberEnd: 3209
    functionName: hlua_socket_write_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - appctx_wakeup
    - hlua_yieldk
    - lua_pop
    - lua_pushinteger
    - xref_get_peer_and_lock
    - WILL_LJMP
    - container_of
    - luaL_error
    - applet_get_outbuf
    - luaL_checkinteger
    - applet_output_room
    - notification_new
    - xref_unlock
    - applet_have_more_data
    - hlua_checksocket
    - applet_putblk
    - luaL_checklstring
    - hlua_socket_close_helper
    - MAY_LJMP
    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:3232,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3232,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3233,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3233,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3236,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:3236,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3239,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3240,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3240,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3245,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3251,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3252,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3252,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3257,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3263,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3267,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3276,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:3281,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3284,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3286,1
    - Dst: hlua_socket_write_yield
      Src: /src/haproxy/src/hlua.c:3286,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3224
    functionDepth: 4
    functionLinenumber: 3224
    functionLinenumberEnd: 3287
    functionName: hlua_socket_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_socket_write_yield
    - lua_pop
    - lua_pushinteger
    - lua_gettop
    - luaL_checklstring
    - luaL_error
    - luaL_checkinteger
    - lua_pushlstring
    - WILL_LJMP
    - MAY_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:3297,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3299,1
    - Dst: real_family
      Src: /src/haproxy/src/hlua.c:3303,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3306,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:3311,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:3320,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3325,1
    - Dst: port_to_str
      Src: /src/haproxy/src/hlua.c:3329,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3330,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - L
    - addr
    argTypes:
    - struct lua_State*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3336
      start: 3290
    functionDepth: 1
    functionLinenumber: 3290
    functionLinenumberEnd: 3336
    functionName: hlua_socket_info
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - addr_to_str
    - lua_pushnil
    - port_to_str
    - strlen
    - real_family
    - lua_pushstring
    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:3349,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:3349,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3351,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3351,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3357,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3357,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3360,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3362,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3366,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3368,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3369,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:3374,1
    - Dst: sc_dst
      Src: /src/haproxy/src/hlua.c:3375,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/hlua.c:3375,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3377,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3378,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3382,1
    - Dst: hlua_socket_info
      Src: /src/haproxy/src/hlua.c:3382,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3383,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3339
    functionDepth: 2
    functionLinenumber: 3339
    functionLinenumberEnd: 3385
    functionName: hlua_socket_getpeername
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - container_of
    - sc_dst
    - sc_opposite
    - luaL_error
    - appctx_sc
    - xref_get_peer_and_lock
    - WILL_LJMP
    - check_args
    - xref_unlock
    - MAY_LJMP
    - hlua_checksocket
    - hlua_socket_info
    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:3398,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:3398,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3400,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3400,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3406,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3406,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3409,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3411,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3415,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3417,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3418,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/hlua.c:3423,1
    - Dst: sc_conn
      Src: /src/haproxy/src/hlua.c:3425,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/hlua.c:3426,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3427,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3428,1
    - Dst: hlua_socket_info
      Src: /src/haproxy/src/hlua.c:3432,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3433,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3435
      start: 3388
    functionDepth: 2
    functionLinenumber: 3388
    functionLinenumberEnd: 3435
    functionName: hlua_socket_getsockname
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - lua_pushnil
    - container_of
    - luaL_error
    - conn_get_src
    - xref_get_peer_and_lock
    - appctx_strm
    - WILL_LJMP
    - check_args
    - xref_unlock
    - MAY_LJMP
    - hlua_checksocket
    - hlua_socket_info
    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:3451,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3451,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:3458,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3466,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3466,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3469,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3471,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3472,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3476,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3483,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3484,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3484,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/hlua.c:3488,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3489,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3490,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3491,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3497,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3498,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua.c:3502,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3503,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_unlock
      Src: /src/haproxy/src/hlua.c:3506,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3507,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3507,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: 3509
      start: 3449
    functionDepth: 2
    functionLinenumber: 3449
    functionLinenumberEnd: 3509
    functionName: hlua_socket_connect_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - hlua_yieldk
    - lua_pushnil
    - se_fl_test
    - container_of
    - lua_pushinteger
    - luaL_error
    - notification_new
    - xref_get_peer_and_lock
    - WILL_LJMP
    - xref_unlock
    - MAY_LJMP
    - lua_pushstring
    - hlua_checksocket
    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:3526,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3530,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3531,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3531,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3534,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3534,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3540,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3540,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3542,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:3542,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3543,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3545,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3545,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:3551,1
    - Dst: luaL_addstring
      Src: /src/haproxy/src/hlua.c:3552,1
    - Dst: luaL_addchar
      Src: /src/haproxy/src/hlua.c:3553,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:3554,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:3555,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3555,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3560,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3562,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3566,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/hlua.c:3571,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3574,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3575,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3575,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3582,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3583,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3583,1
    - Dst: htons
      Src: /src/haproxy/src/hlua.c:3585,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3588,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3589,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3589,1
    - Dst: htons
      Src: /src/haproxy/src/hlua.c:3591,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:3596,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3597,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3598,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3598,1
    - Dst: appctx_init
      Src: /src/haproxy/src/hlua.c:3601,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3602,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3603,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3603,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:3606,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/hlua.c:3608,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/hlua.c:3608,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3609,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3610,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3610,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:3616,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:3617,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/hlua.c:3618,1
    - Dst: notification_new
      Src: /src/haproxy/src/hlua.c:3620,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3621,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3622,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3622,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3624,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3627,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3627,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 73
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3630
      start: 3512
    functionDepth: 2
    functionLinenumber: 3512
    functionLinenumberEnd: 3630
    functionName: hlua_socket_connect
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - appctx_wakeup
    - sockaddr_alloc
    - hlua_yieldk
    - lua_gettop
    - luaL_pushresult
    - xref_get_peer_and_lock
    - WILL_LJMP
    - luaL_addchar
    - lua_pushnil
    - luaL_addstring
    - container_of
    - sc_opposite
    - luaL_error
    - appctx_sc
    - lua_tolstring
    - luaL_buffinit
    - applet_need_more_data
    - luaL_checkinteger
    - notification_new
    - str2sa_range
    - xref_unlock
    - applet_have_more_data
    - hlua_checksocket
    - htons
    - luaL_checkstring
    - appctx_init
    - MAY_LJMP
    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:3638,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:3638,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3639,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3639,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3642,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3644,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3650,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3651,1
    - Dst: hlua_socket_connect
      Src: /src/haproxy/src/hlua.c:3651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3652
      start: 3633
    functionDepth: 3
    functionLinenumber: 3633
    functionLinenumberEnd: 3652
    functionName: hlua_socket_connect_ssl
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - hlua_socket_connect
    - xref_get_peer_and_lock
    - check_args
    - xref_unlock
    - MAY_LJMP
    - hlua_checksocket
    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: 3658
      start: 3655
    functionDepth: 0
    functionLinenumber: 3655
    functionLinenumberEnd: 3658
    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:3670,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:3670,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3672,1
    - Dst: hlua_checksocket
      Src: /src/haproxy/src/hlua.c:3672,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3675,1
    - Dst: luaL_checknumber
      Src: /src/haproxy/src/hlua.c:3675,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3679,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3679,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3682,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3682,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/hlua.c:3684,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3692,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:3692,1
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/hlua.c:3695,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:3697,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3698,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3698,1
    - Dst: container_of
      Src: /src/haproxy/src/hlua.c:3702,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:3706,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/hlua.c:3709,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:3715,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:3716,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/hlua.c:3716,1
    - Dst: task_queue
      Src: /src/haproxy/src/hlua.c:3717,1
    - Dst: xref_unlock
      Src: /src/haproxy/src/hlua.c:3720,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:3721,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3723
      start: 3660
    functionDepth: 2
    functionLinenumber: 3660
    functionLinenumberEnd: 3723
    functionName: hlua_socket_settimeout
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - xref_get_peer_and_lock
    - WILL_LJMP
    - lua_error
    - tick_is_expired
    - container_of
    - luaL_error
    - appctx_sc
    - tick_add_ifset
    - hlua_pusherror
    - MS_TO_TICKS
    - xref_unlock
    - appctx_strm
    - hlua_checksocket
    - luaL_checknumber
    - task_queue
    - tick_first
    - check_args
    - MAY_LJMP
    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:3733,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:3738,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:3739,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:3744,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3745,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:3745,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:3746,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:3747,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:3752,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:3757,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:3758,1
    - Dst: appctx_new_here
      Src: /src/haproxy/src/hlua.c:3761,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:3763,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/hlua.c:3766,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/hlua.c:3772,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/hlua.c:3773,1
    - Dst: xref_create
      Src: /src/haproxy/src/hlua.c:3778,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3782,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3782,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3784
      start: 3725
    functionDepth: 1
    functionLinenumber: 3725
    functionLinenumberEnd: 3784
    functionName: hlua_socket_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - xref_create
    - lua_checkstack
    - memset
    - lua_rawseti
    - lua_error
    - hlua_pusherror
    - lua_newuserdata
    - lua_newtable
    - MT_LIST_INIT
    - lua_setmetatable
    - WILL_LJMP
    - appctx_new_here
    - MAY_LJMP
    - applet_reserve_svcctx
    - lua_rawgeti
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_socket_new(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3799,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:3799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3800
      start: 3797
    functionDepth: 1
    functionLinenumber: 3797
    functionLinenumberEnd: 3800
    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:3808,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:3811,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:3812,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:3813,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:3816,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:3817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - L
    - channel
    argTypes:
    - lua_State*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3819
      start: 3805
    functionDepth: 0
    functionLinenumber: 3805
    functionLinenumberEnd: 3819
    functionName: hlua_channel_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_rawseti
    - lua_pushlightuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawgeti
    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:3830,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:3833,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:3835,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:3836,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:3837,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:3841,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: 3843
      start: 3826
    functionDepth: 1
    functionLinenumber: 3826
    functionLinenumberEnd: 3843
    functionName: hlua_channel_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - lua_pop
    - lua_touserdata
    - CHN_IDX
    - lua_getfield
    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:3857,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/hlua.c:3857,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/hlua.c:3858,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/hlua.c:3858,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:3861,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:3862,1
    - Dst: b_peek
      Src: /src/haproxy/src/hlua.c:3862,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:3864,1
    - Dst: b_orig
      Src: /src/haproxy/src/hlua.c:3864,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:3865,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: 3867
      start: 3851
    functionDepth: 1
    functionLinenumber: 3851
    functionLinenumberEnd: 3867
    functionName: _hlua_channel_dup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - b_orig
    - b_contig_data
    - luaL_addlstring
    - luaL_pushresult
    - b_peek
    - luaL_buffinit
    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:3878,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:3878,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:3881,1
    - Dst: c_room
      Src: /src/haproxy/src/hlua.c:3881,1
    - Dst: b_insert_blk
      Src: /src/haproxy/src/hlua.c:3885,1
    - Dst: istptr
      Src: /src/haproxy/src/hlua.c:3885,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:3885,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: 3889
      start: 3873
    functionDepth: 1
    functionLinenumber: 3873
    functionLinenumberEnd: 3889
    functionName: _hlua_channel_insert
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - istlen
    - unlikely
    - b_insert_blk
    - istptr
    - c_room
    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:3897,1
    - Dst: b_tail
      Src: /src/haproxy/src/hlua.c:3897,1
    - Dst: b_move
      Src: /src/haproxy/src/hlua.c:3898,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/hlua.c:3898,1
    - Dst: b_data
      Src: /src/haproxy/src/hlua.c:3899,1
    - Dst: b_sub
      Src: /src/haproxy/src/hlua.c:3900,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: 3901
      start: 3893
    functionDepth: 1
    functionLinenumber: 3893
    functionLinenumberEnd: 3901
    functionName: _hlua_channel_delete
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - b_sub
    - b_move
    - b_data
    - b_tail
    - b_peek
    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:3918,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:3918,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:3920,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:3921,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:3923,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:3924,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3925,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3925,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3928,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3929,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3929,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:3931,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:3934,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3935,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3935,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:3942,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3943,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:3943,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:3949,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:3950,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:3950,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:3959,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:3959,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:3959,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:3959,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:3961,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:3961,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:3966,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:3971,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:3980,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3982
      start: 3911
    functionDepth: 2
    functionLinenumber: 3911
    functionLinenumberEnd: 3982
    functionName: hlua_channel_get_data_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - hlua_gethlua
    - co_data
    - hlua_yieldk
    - lua_gettop
    - channel_may_recv
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - lua_error
    - lua_pushstring
    - hlua_channel_filter
    - lua_pushnil
    - _hlua_channel_dup
    - luaL_checkinteger
    - ci_data
    - MAX
    - channel_input_closed
    - HLUA_CANT_YIELD
    - MAY_LJMP
    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:4002,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4002,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4003,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4004,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4006,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4007,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4008,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4008,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4011,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4012,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4012,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:4014,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4017,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4018,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4018,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4025,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4026,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4026,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4032,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4033,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4033,1
    - Dst: b_peek
      Src: /src/haproxy/src/hlua.c:4040,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4049,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:4051,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4051,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4051,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:4051,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4053,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:4053,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4058,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:4063,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:4072,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 63
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4074
      start: 3995
    functionDepth: 2
    functionLinenumber: 3995
    functionLinenumberEnd: 4074
    functionName: hlua_channel_get_line_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - hlua_gethlua
    - co_data
    - hlua_yieldk
    - lua_gettop
    - channel_may_recv
    - lua_pushfstring
    - hlua_checkchannel
    - b_peek
    - WILL_LJMP
    - lua_error
    - lua_pushstring
    - hlua_channel_filter
    - lua_pushnil
    - _hlua_channel_dup
    - luaL_checkinteger
    - ci_data
    - MAX
    - channel_input_closed
    - HLUA_CANT_YIELD
    - MAY_LJMP
    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:4090,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4090,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4091,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4091,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4092,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4092,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4093,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4094,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4094,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4097,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4098,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4100,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4101,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4102,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4102,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4104,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4104,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4105,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:4109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 4084
    functionDepth: 2
    functionLinenumber: 4084
    functionLinenumberEnd: 4111
    functionName: hlua_channel_dup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 3
    functionsReached:
    - hlua_filter_from_payload
    - IS_HTX_STRM
    - co_data
    - hlua_channel_filter
    - channel_input_closed
    - lua_pushnil
    - _hlua_channel_dup
    - ci_data
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_dup(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4129,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4129,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4130,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4130,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4131,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4131,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4132,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4133,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4133,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4136,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4137,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4139,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4140,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4141,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4141,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4143,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4143,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4144,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:4148,1
    - Dst: _hlua_channel_delete
      Src: /src/haproxy/src/hlua.c:4149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4151
      start: 4122
    functionDepth: 2
    functionLinenumber: 4122
    functionLinenumberEnd: 4151
    functionName: hlua_channel_get
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - IS_HTX_STRM
    - co_data
    - hlua_channel_filter
    - channel_input_closed
    - lua_pushnil
    - _hlua_channel_dup
    - _hlua_channel_delete
    - ci_data
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_get(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4168,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4168,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4170,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4171,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4173,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4174,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4175,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4175,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4177,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4177,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4178,1
    - Dst: b_peek
      Src: /src/haproxy/src/hlua.c:4183,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:4189,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4189,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4189,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:4189,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4191,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:4191,1
    - Dst: _hlua_channel_dup
      Src: /src/haproxy/src/hlua.c:4195,1
    - Dst: _hlua_channel_delete
      Src: /src/haproxy/src/hlua.c:4196,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4198
      start: 4161
    functionDepth: 2
    functionLinenumber: 4161
    functionLinenumberEnd: 4198
    functionName: hlua_channel_getline_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - hlua_gethlua
    - co_data
    - hlua_channel_filter
    - channel_input_closed
    - HLUA_CANT_YIELD
    - lua_pushnil
    - hlua_yieldk
    - _hlua_channel_dup
    - channel_may_recv
    - _hlua_channel_delete
    - ci_data
    - hlua_checkchannel
    - b_peek
    - WILL_LJMP
    - MAY_LJMP
    - lua_error
    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:4208,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4208,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4209,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4209,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4210,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4210,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4211,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4212,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4212,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4214,1
    - Dst: hlua_channel_getline_yield
      Src: /src/haproxy/src/hlua.c:4214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4215
      start: 4204
    functionDepth: 3
    functionLinenumber: 4204
    functionLinenumberEnd: 4215
    functionName: hlua_channel_getline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_error
    - hlua_channel_getline_yield
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_getline(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4226,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4226,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4227,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:4227,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4228,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4228,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4229,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4229,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4230,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4231,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4231,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4233,1
    - Dst: hlua_channel_get_data_yield
      Src: /src/haproxy/src/hlua.c:4233,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4234
      start: 4222
    functionDepth: 3
    functionLinenumber: 4222
    functionLinenumberEnd: 4234
    functionName: hlua_channel_get_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_channel_get_data_yield
    - IS_HTX_STRM
    - lua_gettop
    - luaL_error
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - chn_strm
    - MAY_LJMP
    - lua_error
    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:4245,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4245,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4246,1
    - Dst: luaL_error
      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_get_line_yield
      Src: /src/haproxy/src/hlua.c:4252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4253
      start: 4241
    functionDepth: 3
    functionLinenumber: 4241
    functionLinenumberEnd: 4253
    functionName: hlua_channel_get_line
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - lua_gettop
    - luaL_error
    - hlua_channel_get_line_yield
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - chn_strm
    - MAY_LJMP
    - lua_error
    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:4270,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4270,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4271,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4271,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4272,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4272,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4273,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4273,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4274,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4275,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4275,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4278,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4279,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4281,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4282,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4283,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4283,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4285,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4285,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4289,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4290,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4292,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4294
      start: 4262
    functionDepth: 2
    functionLinenumber: 4262
    functionLinenumberEnd: 4294
    functionName: hlua_channel_append
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - IS_HTX_STRM
    - co_data
    - hlua_channel_filter
    - _hlua_channel_insert
    - lua_pushinteger
    - luaL_checklstring
    - ist2
    - ci_data
    - lua_pushfstring
    - flt_update_offsets
    - hlua_checkchannel
    - WILL_LJMP
    - check_args
    - chn_strm
    - CHN_IDX
    - MAY_LJMP
    - lua_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_append(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4311,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4311,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4312,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4312,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4313,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4313,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4314,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4314,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4315,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4316,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4316,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4319,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4320,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4322,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4323,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4324,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4324,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4326,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4326,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4330,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4331,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4336
      start: 4303
    functionDepth: 2
    functionLinenumber: 4303
    functionLinenumberEnd: 4336
    functionName: hlua_channel_prepend
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - IS_HTX_STRM
    - co_data
    - hlua_channel_filter
    - _hlua_channel_insert
    - lua_pushinteger
    - luaL_checklstring
    - ist2
    - ci_data
    - lua_pushfstring
    - flt_update_offsets
    - hlua_checkchannel
    - WILL_LJMP
    - check_args
    - chn_strm
    - CHN_IDX
    - MAY_LJMP
    - lua_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_prepend(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4353,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4353,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4354,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:4354,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4355,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4355,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4356,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4356,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4358,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4359,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4361,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4362,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4363,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4363,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4366,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4367,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4367,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:4369,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4372,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4373,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4373,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4376,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4376,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4377,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4378,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4378,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4381,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4381,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4385,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4386,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4389,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4391
      start: 4345
    functionDepth: 2
    functionLinenumber: 4345
    functionLinenumberEnd: 4391
    functionName: hlua_channel_insert_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - co_data
    - lua_pushinteger
    - lua_gettop
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - lua_error
    - hlua_channel_filter
    - luaL_error
    - ist2
    - _hlua_channel_insert
    - luaL_checkinteger
    - ci_data
    - MAX
    - chn_strm
    - CHN_IDX
    - IS_HTX_STRM
    - luaL_checklstring
    - flt_update_offsets
    - MAY_LJMP
    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:4407,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4407,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4408,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:4408,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4409,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4409,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4410,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4410,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4412,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4412,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4413,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4414,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4414,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4417,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4418,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4420,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4421,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4422,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4422,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4425,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4426,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4426,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:4428,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4431,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4432,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4432,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4437,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4438,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4438,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4444,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4445,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4445,1
    - Dst: c_room
      Src: /src/haproxy/src/hlua.c:4451,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4452,1
    - Dst: _hlua_channel_delete
      Src: /src/haproxy/src/hlua.c:4454,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4455,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4455,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4460,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4461,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4464,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4467
      start: 4399
    functionDepth: 2
    functionLinenumber: 4399
    functionLinenumberEnd: 4467
    functionName: hlua_channel_set_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - co_data
    - lua_pushinteger
    - lua_gettop
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - lua_error
    - hlua_channel_filter
    - luaL_error
    - ist2
    - _hlua_channel_insert
    - luaL_checkinteger
    - ci_data
    - c_room
    - MAX
    - chn_strm
    - CHN_IDX
    - IS_HTX_STRM
    - luaL_checklstring
    - _hlua_channel_delete
    - flt_update_offsets
    - MAY_LJMP
    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:4482,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4482,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4483,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:4483,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4484,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4484,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4486,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4486,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4487,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4488,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4488,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4491,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4492,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4494,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4495,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4496,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4496,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4499,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4500,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4500,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:4502,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4505,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4506,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4506,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4511,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4512,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4512,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4518,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4519,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4519,1
    - Dst: _hlua_channel_delete
      Src: /src/haproxy/src/hlua.c:4523,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4527,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4528,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4532,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4534
      start: 4475
    functionDepth: 2
    functionLinenumber: 4475
    functionLinenumberEnd: 4534
    functionName: hlua_channel_del_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - co_data
    - lua_pushinteger
    - lua_gettop
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - lua_error
    - hlua_channel_filter
    - luaL_error
    - luaL_checkinteger
    - ci_data
    - MAX
    - chn_strm
    - CHN_IDX
    - IS_HTX_STRM
    - _hlua_channel_delete
    - flt_update_offsets
    - MAY_LJMP
    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:4551,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4553,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4557,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4557,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4558,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:4558,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4559,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4559,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4561,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4562,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4564,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4565,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4566,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4566,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:4569,1
    - Dst: channel_output_closed
      Src: /src/haproxy/src/hlua.c:4569,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4570,1
    - Dst: c_room
      Src: /src/haproxy/src/hlua.c:4574,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4577,1
    - Dst: _hlua_channel_insert
      Src: /src/haproxy/src/hlua.c:4583,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:4583,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:4585,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4586,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:4594,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/hlua.c:4595,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4596,1
    - Dst: c_adv
      Src: /src/haproxy/src/hlua.c:4599,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:4602,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4603,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4609,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:4609,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4609,1
    - Dst: HLUA_SET_WAKERESWR
      Src: /src/haproxy/src/hlua.c:4617,1
    - Dst: HLUA_SET_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:4619,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4620,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:4620,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4624
      start: 4541
    functionDepth: 2
    functionLinenumber: 4541
    functionLinenumberEnd: 4624
    functionName: hlua_channel_send_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - hlua_gethlua
    - co_data
    - hlua_yieldk
    - unlikely
    - lua_pop
    - lua_pushinteger
    - hlua_checkchannel
    - WILL_LJMP
    - lua_error
    - hlua_channel_filter
    - lua_pushnil
    - ist2
    - c_adv
    - HLUA_SET_WAKEREQWR
    - channel_output_closed
    - _hlua_channel_insert
    - luaL_checkinteger
    - ci_data
    - c_room
    - CHN_IDX
    - HLUA_CANT_YIELD
    - HLUA_SET_WAKERESWR
    - luaL_checklstring
    - FLT_OFF
    - flt_update_offsets
    - MAY_LJMP
    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:4636,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4636,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4637,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4637,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4638,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4638,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4639,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4640,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4640,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4642,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4643,1
    - Dst: hlua_channel_send_yield
      Src: /src/haproxy/src/hlua.c:4643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4644
      start: 4632
    functionDepth: 3
    functionLinenumber: 4632
    functionLinenumberEnd: 4644
    functionName: hlua_channel_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_channel_send_yield
    - IS_HTX_STRM
    - lua_pushinteger
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_send(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4662,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4664,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4668,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4668,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4669,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4669,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4670,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:4670,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4672,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4673,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4675,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:4676,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4677,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4677,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/hlua.c:4686,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4687,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:4688,1
    - Dst: channel_forward
      Src: /src/haproxy/src/hlua.c:4691,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:4694,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4695,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4702,1
    - Dst: channel_output_closed
      Src: /src/haproxy/src/hlua.c:4702,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:4702,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:4702,1
    - Dst: HLUA_SET_WAKERESWR
      Src: /src/haproxy/src/hlua.c:4710,1
    - Dst: HLUA_SET_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:4712,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4715,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:4715,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4719
      start: 4653
    functionDepth: 2
    functionLinenumber: 4653
    functionLinenumberEnd: 4719
    functionName: hlua_channel_forward_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - hlua_gethlua
    - co_data
    - hlua_yieldk
    - lua_pop
    - lua_pushinteger
    - hlua_checkchannel
    - WILL_LJMP
    - lua_error
    - hlua_channel_filter
    - lua_pushnil
    - channel_forward
    - HLUA_SET_WAKEREQWR
    - channel_output_closed
    - luaL_checkinteger
    - ci_data
    - channel_input_closed
    - CHN_IDX
    - HLUA_CANT_YIELD
    - HLUA_SET_WAKERESWR
    - FLT_OFF
    - MAY_LJMP
    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:4730,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4730,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4731,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4731,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4732,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4732,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4733,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4734,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4734,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4736,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4737,1
    - Dst: hlua_channel_forward_yield
      Src: /src/haproxy/src/hlua.c:4737,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4738
      start: 4726
    functionDepth: 3
    functionLinenumber: 4726
    functionLinenumberEnd: 4738
    functionName: hlua_channel_forward
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - lua_pushinteger
    - hlua_channel_forward_yield
    - lua_pushfstring
    - hlua_checkchannel
    - WILL_LJMP
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_channel_forward(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4749,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4749,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4750,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4750,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4752,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4753,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4754,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:4755,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:4755,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4756,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:4758,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4760,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4763
      start: 4743
    functionDepth: 2
    functionLinenumber: 4743
    functionLinenumberEnd: 4763
    functionName: hlua_channel_get_in_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - co_data
    - hlua_channel_filter
    - IS_HTX_STRM
    - lua_pushinteger
    - ci_data
    - hlua_checkchannel
    - check_args
    - chn_strm
    - MAY_LJMP
    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:4770,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4770,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4771,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4771,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:4775,1
    - Dst: channel_full
      Src: /src/haproxy/src/hlua.c:4775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4777
      start: 4766
    functionDepth: 2
    functionLinenumber: 4766
    functionLinenumberEnd: 4777
    functionName: hlua_channel_is_full
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - channel_full
    - lua_pushboolean
    - hlua_checkchannel
    - check_args
    - MAY_LJMP
    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:4784,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4784,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4785,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4785,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:4786,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:4786,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:4786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4788
      start: 4780
    functionDepth: 2
    functionLinenumber: 4780
    functionLinenumberEnd: 4788
    functionName: hlua_channel_may_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - channel_may_recv
    - lua_pushboolean
    - hlua_checkchannel
    - channel_input_closed
    - check_args
    - MAY_LJMP
    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:4795,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4795,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4796,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4796,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:4798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4800
      start: 4791
    functionDepth: 2
    functionLinenumber: 4791
    functionLinenumberEnd: 4800
    functionName: hlua_channel_is_resp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - check_args
    - MAY_LJMP
    - hlua_checkchannel
    - 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:4810,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:4810,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4811,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:4811,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:4813,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:4814,1
    - Dst: hlua_channel_filter
      Src: /src/haproxy/src/hlua.c:4815,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:4817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4819
      start: 4805
    functionDepth: 2
    functionLinenumber: 4805
    functionLinenumberEnd: 4819
    functionName: hlua_channel_get_out_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - co_data
    - hlua_channel_filter
    - lua_pushinteger
    - ci_data
    - hlua_checkchannel
    - check_args
    - MAY_LJMP
    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:4834,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:4834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4835
      start: 4832
    functionDepth: 1
    functionLinenumber: 4832
    functionLinenumberEnd: 4835
    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:4845,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:4852,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:4853,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:4854,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:4862,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:4863,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: 4866
      start: 4840
    functionDepth: 0
    functionLinenumber: 4840
    functionLinenumberEnd: 4866
    functionName: hlua_fetches_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_rawseti
    - lua_newuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawgeti
    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:4884,1
    - Dst: lua_upvalueindex
      Src: /src/haproxy/src/hlua.c:4884,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4887,1
    - Dst: hlua_checkfetches
      Src: /src/haproxy/src/hlua.c:4887,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:4892,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4894,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4894,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:4898,1
    - Dst: hlua_lua2arg
      Src: /src/haproxy/src/hlua.c:4901,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4907,1
    - Dst: hlua_lua2arg_check
      Src: /src/haproxy/src/hlua.c:4907,1
    - Dst: struct sample_fetch*::val_args
      Src: /src/haproxy/src/hlua.c:4910,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:4911,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:4912,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:4917,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:4920,1
    - Dst: struct sample_fetch*::process
      Src: /src/haproxy/src/hlua.c:4921,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:4923,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:4925,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4931,1
    - Dst: hlua_smp2lua_str
      Src: /src/haproxy/src/hlua.c:4931,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:4933,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:4933,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:4936,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:4940,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:4941,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:4941,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4943
      start: 4874
    functionDepth: 3
    functionLinenumber: 4874
    functionLinenumberEnd: 4943
    functionName: hlua_run_sample_fetch
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_checkfetches
    - lua_touserdata
    - lua_gettop
    - lua_upvalueindex
    - lua_pushfstring
    - WILL_LJMP
    - lua_error
    - lua_pushstring
    - lua_pushnil
    - ha_free
    - struct sample_fetch*::val_args
    - hlua_lua2arg
    - memset
    - hlua_smp2lua
    - struct sample_fetch*::process
    - hlua_pushfstring_safe
    - free_args
    - smp_set_owner
    - MAY_LJMP
    - hlua_smp2lua_str
    - hlua_lua2arg_check
    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:4958,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:4958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4959
      start: 4956
    functionDepth: 1
    functionLinenumber: 4956
    functionLinenumberEnd: 4959
    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:4969,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:4976,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:4977,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:4978,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:4986,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:4987,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: 4990
      start: 4964
    functionDepth: 0
    functionLinenumber: 4964
    functionLinenumberEnd: 4990
    functionName: hlua_converters_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_rawseti
    - lua_newuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawgeti
    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:5008,1
    - Dst: lua_upvalueindex
      Src: /src/haproxy/src/hlua.c:5008,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5011,1
    - Dst: hlua_checkconverters
      Src: /src/haproxy/src/hlua.c:5011,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5014,1
    - Dst: hlua_lua2arg
      Src: /src/haproxy/src/hlua.c:5017,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5023,1
    - Dst: hlua_lua2arg_check
      Src: /src/haproxy/src/hlua.c:5023,1
    - Dst: struct sample_conv*::val_args
      Src: /src/haproxy/src/hlua.c:5026,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:5027,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:5028,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:5033,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:5034,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:5035,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5039,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:5043,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:5049,1
    - Dst: struct sample_conv*::process
      Src: /src/haproxy/src/hlua.c:5054,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5056,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5058,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5064,1
    - Dst: hlua_smp2lua_str
      Src: /src/haproxy/src/hlua.c:5064,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5066,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:5066,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:5068,1
    - Dst: free_args
      Src: /src/haproxy/src/hlua.c:5072,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5073,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:5073,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5075
      start: 4998
    functionDepth: 3
    functionLinenumber: 4998
    functionLinenumberEnd: 5075
    functionName: hlua_run_sample_conv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - lua_gettop
    - smp_set_owner
    - lua_upvalueindex
    - WILL_LJMP
    - lua_error
    - lua_pushstring
    - struct sample_conv*::process
    - lua_pushnil
    - ha_free
    - hlua_checkconverters
    - hlua_lua2arg
    - hlua_lua2smp
    - memset
    - hlua_pusherror
    - hlua_pushfstring_safe
    - free_args
    - struct sample_conv*::val_args
    - hlua_smp2lua
    - MAY_LJMP
    - hlua_smp2lua_str
    - hlua_lua2arg_check
    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:5090,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:5090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5091
      start: 5088
    functionDepth: 1
    functionLinenumber: 5088
    functionLinenumberEnd: 5091
    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:5099,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/hlua.c:5099,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:5105,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:5112,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:5113,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:5114,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5120,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:5121,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5123,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5126,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:5127,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5129,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5132,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:5133,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5135,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5138,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:5139,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5141,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:5144,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:5145,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - L
    - ctx
    argTypes:
    - lua_State*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5148
      start: 5096
    functionDepth: 1
    functionLinenumber: 5096
    functionLinenumberEnd: 5148
    functionName: hlua_applet_tcp_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_rawseti
    - lua_setmetatable
    - lua_newuserdata
    - lua_newtable
    - ASSUME_NONNULL
    - hlua_converters_new
    - lua_settable
    - lua_rawgeti
    - lua_pushstring
    - appctx_strm
    - hlua_fetches_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:5158,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5158,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5159,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:5159,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5164,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5164,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5165,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5165,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:5169,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:5170,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5175,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5177,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua.c:5177,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5178,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:5178,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5180,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/hlua.c:5180,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5183
      start: 5150
    functionDepth: 5
    functionLinenumber: 5150
    functionLinenumberEnd: 5183
    functionName: hlua_applet_tcp_set_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memset
    - vars_set_by_name
    - vars_set_by_name_ifexist
    - lua_gettop
    - luaL_checklstring
    - luaL_error
    - lua_pushboolean
    - WILL_LJMP
    - hlua_checkapplet_tcp
    - smp_set_owner
    - MAY_LJMP
    - lua_toboolean
    - hlua_lua2smp
    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:5193,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5193,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5198,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5198,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5199,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5199,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5203,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5204,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:5204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5206
      start: 5185
    functionDepth: 4
    functionLinenumber: 5185
    functionLinenumberEnd: 5206
    functionName: hlua_applet_tcp_unset_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - vars_unset_by_name_ifexist
    - luaL_checklstring
    - lua_pushboolean
    - check_args
    - hlua_checkapplet_tcp
    - smp_set_owner
    - MAY_LJMP
    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:5216,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5216,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5221,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5221,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5222,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5222,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5225,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/hlua.c:5226,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5227,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5231,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:5231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5232
      start: 5208
    functionDepth: 4
    functionLinenumber: 5208
    functionLinenumberEnd: 5232
    functionName: hlua_applet_tcp_get_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - vars_get_by_name
    - lua_pushnil
    - hlua_smp2lua
    - luaL_checklstring
    - check_args
    - hlua_checkapplet_tcp
    - smp_set_owner
    - MAY_LJMP
    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:5236,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5236,1
    - Dst: hlua_stream_ctx_get
      Src: /src/haproxy/src/hlua.c:5239,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5245,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5245,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:5248,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:5251,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:5252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5255
      start: 5234
    functionDepth: 2
    functionLinenumber: 5234
    functionLinenumberEnd: 5255
    functionName: hlua_applet_tcp_set_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_unref
    - luaL_ref
    - hlua_stream_ctx_get
    - lua_pushvalue
    - check_args
    - hlua_checkapplet_tcp
    - MAY_LJMP
    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:5259,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5259,1
    - Dst: hlua_stream_ctx_get
      Src: /src/haproxy/src/hlua.c:5262,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5266,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:5271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5274
      start: 5257
    functionDepth: 2
    functionLinenumber: 5257
    functionLinenumberEnd: 5274
    functionName: hlua_applet_tcp_get_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - hlua_stream_ctx_get
    - hlua_checkapplet_tcp
    - MAY_LJMP
    - lua_rawgeti
    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:5282,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5282,1
    - Dst: applet_getline_nc
      Src: /src/haproxy/src/hlua.c:5290,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5294,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5295,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:5295,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5301,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5310,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5312,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/hlua.c:5314,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5315,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5317
      start: 5280
    functionDepth: 2
    functionLinenumber: 5280
    functionLinenumberEnd: 5317
    functionName: hlua_applet_tcp_getline_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - applet_need_more_data
    - applet_skip_input
    - applet_getline_nc
    - luaL_addlstring
    - luaL_pushresult
    - hlua_checkapplet_tcp
    - MAY_LJMP
    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:5322,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5322,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:5325,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5327,1
    - Dst: hlua_applet_tcp_getline_yield
      Src: /src/haproxy/src/hlua.c:5327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5328
      start: 5320
    functionDepth: 3
    functionLinenumber: 5320
    functionLinenumberEnd: 5328
    functionName: hlua_applet_tcp_getline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_applet_tcp_getline_yield
    - hlua_checkapplet_tcp
    - MAY_LJMP
    - luaL_buffinit
    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:5335,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5335,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5336,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5336,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5337,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5337,1
    - Dst: applet_getblk_nc
      Src: /src/haproxy/src/hlua.c:5345,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:5349,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5351,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5355,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5361,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5375,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5377,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/hlua.c:5378,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:5380,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5382,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5386,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5394,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5401,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/hlua.c:5405,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:5408,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5409,1
    - Dst: lua_replace
      Src: /src/haproxy/src/hlua.c:5410,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5411,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5416,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:5421,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5422,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:5422,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 51
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5424
      start: 5333
    functionDepth: 2
    functionLinenumber: 5333
    functionLinenumberEnd: 5424
    functionName: hlua_applet_tcp_recv_try
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - applet_need_more_data
    - lua_replace
    - lua_pushnil
    - tick_is_expired
    - lua_error
    - lua_pushinteger
    - hlua_pusherror
    - applet_skip_input
    - luaL_checkinteger
    - luaL_addlstring
    - luaL_pushresult
    - WILL_LJMP
    - hlua_checkapplet_tcp
    - MAY_LJMP
    - 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:5432,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5432,1
    - Dst: hlua_applet_tcp_recv_try
      Src: /src/haproxy/src/hlua.c:5435,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5438,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:5438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5441
      start: 5430
    functionDepth: 3
    functionLinenumber: 5430
    functionLinenumberEnd: 5441
    functionName: hlua_applet_tcp_recv_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checkinteger
    - hlua_yieldk
    - MAY_LJMP
    - hlua_applet_tcp_recv_try
    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:5446,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5446,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5451,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5452,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:5452,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5453,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5454,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5455,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5455,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:5456,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5458,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5458,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:5459,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5463,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:5466,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5467,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:5470,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5472,1
    - Dst: hlua_applet_tcp_recv_yield
      Src: /src/haproxy/src/hlua.c:5472,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5473
      start: 5444
    functionDepth: 4
    functionLinenumber: 5444
    functionLinenumberEnd: 5473
    functionName: hlua_applet_tcp_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - tick_add
    - lua_pop
    - lua_pushinteger
    - lua_gettop
    - luaL_error
    - luaL_checkinteger
    - hlua_applet_tcp_recv_yield
    - WILL_LJMP
    - hlua_checkapplet_tcp
    - MAY_LJMP
    - luaL_buffinit
    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:5478,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5478,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5481,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5482,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:5482,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5485,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5488,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:5491,1
    - Dst: hlua_applet_tcp_recv_try
      Src: /src/haproxy/src/hlua.c:5493,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5501
      start: 5476
    functionDepth: 3
    functionLinenumber: 5476
    functionLinenumberEnd: 5501
    functionName: hlua_applet_tcp_try_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - lua_gettop
    - luaL_error
    - luaL_pushresult
    - hlua_applet_tcp_recv_try
    - WILL_LJMP
    - hlua_checkapplet_tcp
    - MAY_LJMP
    - luaL_buffinit
    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:5511,1
    - Dst: hlua_checkapplet_tcp
      Src: /src/haproxy/src/hlua.c:5511,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5512,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5512,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5513,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5513,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:5516,1
    - Dst: applet_output_room
      Src: /src/haproxy/src/hlua.c:5520,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/hlua.c:5526,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:5530,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5531,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:5538,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5539,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:5539,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5543
      start: 5508
    functionDepth: 2
    functionLinenumber: 5508
    functionLinenumberEnd: 5543
    functionName: hlua_applet_tcp_send_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - applet_get_outbuf
    - applet_putblk
    - lua_pop
    - lua_pushinteger
    - luaL_checklstring
    - luaL_checkinteger
    - applet_output_room
    - hlua_checkapplet_tcp
    - MAY_LJMP
    - applet_have_more_data
    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:5551,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5551,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5552,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5554,1
    - Dst: hlua_applet_tcp_send_yield
      Src: /src/haproxy/src/hlua.c:5554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5555
      start: 5549
    functionDepth: 3
    functionLinenumber: 5549
    functionLinenumberEnd: 5555
    functionName: hlua_applet_tcp_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - check_args
    - lua_pushinteger
    - MAY_LJMP
    - 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:5570,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:5570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5571
      start: 5568
    functionDepth: 1
    functionLinenumber: 5568
    functionLinenumberEnd: 5571
    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:5582,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:5586,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:5593,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:5594,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:5595,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5603,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:5604,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5606,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5609,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:5610,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5612,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5615,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:5616,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5618,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:5621,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:5622,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:5624,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:5627,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:5628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - L
    - ctx
    argTypes:
    - lua_State*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5631
      start: 5578
    functionDepth: 1
    functionLinenumber: 5578
    functionLinenumberEnd: 5631
    functionName: hlua_applet_http_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_rawseti
    - lua_setmetatable
    - lua_newuserdata
    - lua_newtable
    - hlua_converters_new
    - lua_settable
    - lua_rawgeti
    - lua_pushstring
    - appctx_strm
    - hlua_fetches_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:5641,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5641,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5642,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:5642,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5647,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5647,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5648,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5648,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:5652,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:5653,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5658,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5660,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua.c:5660,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5661,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:5661,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5663,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/hlua.c:5663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5666
      start: 5633
    functionDepth: 5
    functionLinenumber: 5633
    functionLinenumberEnd: 5666
    functionName: hlua_applet_http_set_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memset
    - hlua_checkapplet_http
    - vars_set_by_name
    - vars_set_by_name_ifexist
    - lua_gettop
    - luaL_checklstring
    - luaL_error
    - lua_pushboolean
    - WILL_LJMP
    - smp_set_owner
    - MAY_LJMP
    - lua_toboolean
    - hlua_lua2smp
    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:5676,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5676,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5681,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5681,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5682,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5682,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5686,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:5687,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:5687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5689
      start: 5668
    functionDepth: 4
    functionLinenumber: 5668
    functionLinenumberEnd: 5689
    functionName: hlua_applet_http_unset_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - vars_unset_by_name_ifexist
    - hlua_checkapplet_http
    - luaL_checklstring
    - lua_pushboolean
    - check_args
    - smp_set_owner
    - MAY_LJMP
    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:5699,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5699,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5704,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5704,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5705,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5705,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:5708,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/hlua.c:5709,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5710,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5714,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:5714,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5715
      start: 5691
    functionDepth: 4
    functionLinenumber: 5691
    functionLinenumberEnd: 5715
    functionName: hlua_applet_http_get_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_checkapplet_http
    - vars_get_by_name
    - lua_pushnil
    - hlua_smp2lua
    - luaL_checklstring
    - check_args
    - smp_set_owner
    - MAY_LJMP
    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:5719,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5719,1
    - Dst: hlua_stream_ctx_get
      Src: /src/haproxy/src/hlua.c:5722,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5728,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:5728,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:5731,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:5734,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:5735,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5738
      start: 5717
    functionDepth: 2
    functionLinenumber: 5717
    functionLinenumberEnd: 5738
    functionName: hlua_applet_http_set_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_unref
    - hlua_checkapplet_http
    - luaL_ref
    - hlua_stream_ctx_get
    - lua_pushvalue
    - check_args
    - MAY_LJMP
    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:5742,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5742,1
    - Dst: hlua_stream_ctx_get
      Src: /src/haproxy/src/hlua.c:5745,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:5749,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:5754,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5757
      start: 5740
    functionDepth: 2
    functionLinenumber: 5740
    functionLinenumberEnd: 5757
    functionName: hlua_applet_http_get_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_checkapplet_http
    - lua_pushnil
    - hlua_stream_ctx_get
    - MAY_LJMP
    - lua_rawgeti
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_get_priv(lua_State *L)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5765,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5765,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:5766,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:5774,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/hlua.c:5775,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:5777,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/hlua.c:5778,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:5789,1
    - Dst: istchr
      Src: /src/haproxy/src/hlua.c:5791,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5796,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/hlua.c:5809,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/hlua.c:5811,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/hlua.c:5819,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:5822,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5825,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5826,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:5826,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5830,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 45
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5832
      start: 5763
    functionDepth: 2
    functionLinenumber: 5763
    functionLinenumberEnd: 5832
    functionName: hlua_applet_http_getline_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - applet_get_inbuf
    - hlua_yieldk
    - htx_get_blksz
    - applet_need_more_data
    - hlua_checkapplet_http
    - htx_get_blk_value
    - htx_cut_data_blk
    - htx_get_blk_type
    - istchr
    - htx_remove_blk
    - luaL_addlstring
    - luaL_pushresult
    - htx_from_buf
    - htx_get_first_blk
    - MAY_LJMP
    - htx_to_buf
    - htx_is_empty
    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:5838,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5838,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:5841,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5843,1
    - Dst: hlua_applet_http_getline_yield
      Src: /src/haproxy/src/hlua.c:5843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5844
      start: 5836
    functionDepth: 3
    functionLinenumber: 5836
    functionLinenumberEnd: 5844
    functionName: hlua_applet_http_getline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_applet_http_getline_yield
    - luaL_buffinit
    - MAY_LJMP
    - hlua_checkapplet_http
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_getline(lua_State *L)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5852,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5852,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:5853,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:5861,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5862,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5862,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/hlua.c:5863,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:5865,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/hlua.c:5866,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:5876,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:5880,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/hlua.c:5895,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/hlua.c:5897,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/hlua.c:5905,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:5908,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/hlua.c:5909,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5914,1
    - Dst: lua_replace
      Src: /src/haproxy/src/hlua.c:5915,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:5918,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5919,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:5919,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/hlua.c:5923,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:5926,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 51
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5928
      start: 5850
    functionDepth: 2
    functionLinenumber: 5850
    functionLinenumberEnd: 5928
    functionName: hlua_applet_http_recv_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - htx_get_blk_value
    - lua_pushinteger
    - applet_wont_consume
    - luaL_pushresult
    - htx_from_buf
    - applet_get_inbuf
    - htx_get_head_blk
    - htx_cut_data_blk
    - htx_get_blk_type
    - applet_fl_clr
    - applet_need_more_data
    - hlua_checkapplet_http
    - luaL_checkinteger
    - htx_remove_blk
    - htx_is_empty
    - htx_get_blksz
    - lua_replace
    - luaL_addlstring
    - MAY_LJMP
    - htx_to_buf
    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:5933,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5933,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5937,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:5938,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:5938,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:5939,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5940,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5940,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:5941,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5944,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:5947,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:5950,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5951,1
    - Dst: hlua_applet_http_recv_yield
      Src: /src/haproxy/src/hlua.c:5951,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5952
      start: 5931
    functionDepth: 3
    functionLinenumber: 5931
    functionLinenumberEnd: 5952
    functionName: hlua_applet_http_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - applet_will_consume
    - hlua_checkapplet_http
    - lua_pop
    - lua_pushinteger
    - lua_gettop
    - luaL_error
    - luaL_checkinteger
    - WILL_LJMP
    - hlua_applet_http_recv_yield
    - MAY_LJMP
    - luaL_buffinit
    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:5961,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:5961,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5966,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:5966,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:5969,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/src/hlua.c:5974,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:5978,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:5979,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:5979,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/hlua.c:5986,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:5986,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:5990,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:5991,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/hlua.c:5997,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:5999,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6000,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:6000,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:6004,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6006
      start: 5959
    functionDepth: 2
    functionLinenumber: 5959
    functionLinenumberEnd: 6006
    functionName: hlua_applet_http_send_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - applet_get_outbuf
    - hlua_checkapplet_http
    - lua_pop
    - lua_pushinteger
    - luaL_checklstring
    - htx_add_data
    - luaL_checkinteger
    - ist2
    - htx_from_buf
    - applet_fl_set
    - htx_to_buf
    - MAY_LJMP
    - applet_have_more_data
    - applet_htx_output_room
    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:6014,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6014,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6019,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6020,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6020,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:6024,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6026,1
    - Dst: hlua_applet_http_send_yield
      Src: /src/haproxy/src/hlua.c:6026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6027
      start: 6012
    functionDepth: 3
    functionLinenumber: 6012
    functionLinenumberEnd: 6027
    functionName: hlua_applet_http_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_checkapplet_http
    - lua_pushinteger
    - hlua_pusherror
    - hlua_applet_http_send_yield
    - WILL_LJMP
    - MAY_LJMP
    - 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:6034,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6034,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6035,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:6035,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6036,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:6036,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:6039,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6041,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6042,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6043,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6043,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:6049,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6053,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6058,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:6059,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:6060,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6061,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6066,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6067,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6068,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6068,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:6074,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:6075,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6076,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6077,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6079
      start: 6029
    functionDepth: 2
    functionLinenumber: 6029
    functionLinenumberEnd: 6079
    functionName: hlua_applet_http_addheader
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushvalue
    - hlua_checkapplet_http
    - lua_typename
    - lua_rawseti
    - lua_pop
    - luaL_checkstring
    - hlua_pusherror
    - lua_pushboolean
    - lua_newtable
    - lua_settable
    - WILL_LJMP
    - MAY_LJMP
    - lua_error
    - lua_rawlen
    - lua_getfield
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_applet_http_addheader(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6083,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6083,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6084,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:6084,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6085,1
    - Dst: luaL_optlstring
      Src: /src/haproxy/src/hlua.c:6085,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6089,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6097
      start: 6081
    functionDepth: 2
    functionLinenumber: 6081
    functionLinenumberEnd: 6097
    functionName: hlua_applet_http_status
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_checkapplet_http
    - lua_pushboolean
    - luaL_optlstring
    - luaL_checkinteger
    - MAY_LJMP
    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:6102,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6102,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/hlua.c:6114,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:6114,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:6117,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/hlua.c:6118,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/hlua.c:6121,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:6124,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hlua.c:6127,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6127,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6127,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6127,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hlua.c:6131,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6131,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6131,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6131,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6134,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6136,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6136,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:6141,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6142,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6144,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6144,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:6148,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:6149,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6151,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6152,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6154,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6154,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6155,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6155,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:6157,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6160,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6161,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6164,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6164,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6165,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6165,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:6169,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:6170,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6174,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6175,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6178,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6178,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6179,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6179,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:6181,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6184,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6185,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:6188,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6188,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6189,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6189,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:6191,1
    - Dst: isteqi
      Src: /src/haproxy/src/hlua.c:6194,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6194,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6194,1
    - Dst: h1_parse_xfer_enc_header
      Src: /src/haproxy/src/hlua.c:6197,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6197,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6199,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6202,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6202,1
    - Dst: isteqi
      Src: /src/haproxy/src/hlua.c:6207,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6207,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6207,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6209,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/hlua.c:6212,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6214,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6217,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6217,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/hlua.c:6226,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6226,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6226,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6227,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6230,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6230,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6234,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6238,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/hlua.c:6270,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6270,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:6270,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6271,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6273,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6273,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/hlua.c:6278,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6279,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6281,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6281,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/hlua.c:6284,1
    - Dst: b_size
      Src: /src/haproxy/src/hlua.c:6284,1
    - Dst: b_reset
      Src: /src/haproxy/src/hlua.c:6285,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6286,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6287,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6287,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:6290,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 114
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6295
      start: 6100
    functionDepth: 2
    functionLinenumber: 6100
    functionLinenumberEnd: 6295
    functionName: hlua_applet_http_send_response
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - htx_add_stline
    - http_get_reason
    - htx_from_buf
    - WILL_LJMP
    - lua_error
    - htx_add_endof
    - lua_getfield
    - lua_pushnil
    - h1m_init_res
    - http_parse_cont_len_header
    - ist2
    - DISGUISE
    - ultoa_r
    - htx_to_buf
    - lua_tolstring
    - lua_next
    - applet_get_outbuf
    - hlua_checkapplet_http
    - lua_typename
    - htx_add_header
    - hlua_pusherror
    - isteqi
    - b_size
    - ist
    - h1_parse_xfer_enc_header
    - lua_tointeger
    - lua_type
    - htx_used_space
    - MAY_LJMP
    - b_reset
    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:6303,1
    - Dst: hlua_checkapplet_http
      Src: /src/haproxy/src/hlua.c:6303,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:6305,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:6306,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6307,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:6307,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6309,1
    - Dst: hlua_applet_http_send_response
      Src: /src/haproxy/src/hlua.c:6309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6310
      start: 6301
    functionDepth: 3
    functionLinenumber: 6301
    functionLinenumberEnd: 6310
    functionName: hlua_applet_http_start_response_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - applet_get_outbuf
    - hlua_checkapplet_http
    - hlua_applet_http_send_response
    - MAY_LJMP
    - applet_have_more_data
    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:6315,1
    - Dst: hlua_applet_http_start_response_yield
      Src: /src/haproxy/src/hlua.c:6315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6316
      start: 6313
    functionDepth: 4
    functionLinenumber: 6313
    functionLinenumberEnd: 6316
    functionName: hlua_applet_http_start_response
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_applet_http_start_response_yield
    - MAY_LJMP
    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:6331,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:6331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6332
      start: 6329
    functionDepth: 1
    functionLinenumber: 6329
    functionLinenumberEnd: 6332
    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:6342,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6349,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:6350,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6351,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:6359,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:6360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - L
    - txn
    argTypes:
    - lua_State*
    - struct hlua_txn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6363
      start: 6337
    functionDepth: 0
    functionLinenumber: 6337
    functionLinenumberEnd: 6363
    functionName: hlua_http_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_rawseti
    - lua_newuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawgeti
    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:6371,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6374,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6375,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/hlua.c:6375,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/hlua.c:6375,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6376,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6377,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6378,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/hlua.c:6378,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/hlua.c:6378,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6379,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6380,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6381,1
    - Dst: HTX_SL_RES_RPTR
      Src: /src/haproxy/src/hlua.c:6381,1
    - Dst: HTX_SL_RES_RLEN
      Src: /src/haproxy/src/hlua.c:6381,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6382,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6385,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6386,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/hlua.c:6386,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/hlua.c:6386,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6387,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6388,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6389,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/hlua.c:6389,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/hlua.c:6389,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6390,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6391,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6392,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/hlua.c:6392,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/hlua.c:6392,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:6393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - L
    - sl
    argTypes:
    - lua_State*
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6396
      start: 6368
    functionDepth: 1
    functionLinenumber: 6368
    functionLinenumberEnd: 6396
    functionName: hlua_http_get_stline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_MLEN
    - HTX_SL_RES_VPTR
    - HTX_SL_REQ_VLEN
    - HTX_SL_REQ_ULEN
    - HTX_SL_REQ_VPTR
    - HTX_SL_RES_RLEN
    - lua_newtable
    - HTX_SL_RES_CPTR
    - lua_pushlstring
    - lua_settable
    - HTX_SL_RES_CLEN
    - HTX_SL_REQ_UPTR
    - HTX_SL_RES_RPTR
    - lua_pushstring
    - HTX_SL_RES_VLEN
    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:6408,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6411,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/hlua.c:6412,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/hlua.c:6412,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/hlua.c:6413,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:6414,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/hlua.c:6419,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:6420,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6432,1
    - Dst: lua_gettable
      Src: /src/haproxy/src/hlua.c:6433,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:6435,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6438,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6439,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6440,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6441,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6442,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:6443,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:6448,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:6449,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6450,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6451,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:6456,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6457,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - L
    - buf
    argTypes:
    - lua_State*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6461
      start: 6402
    functionDepth: 1
    functionLinenumber: 6402
    functionLinenumberEnd: 6461
    functionName: hlua_http_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - lua_gettable
    - WILL_LJMP
    - lua_rawseti
    - htx_get_blk_value
    - lua_pop
    - htx_get_first
    - htx_get_blk_type
    - hlua_pusherror
    - htx_get_blk_name
    - lua_newtable
    - lua_type
    - htx_get_next
    - lua_rawset
    - htx_get_blk
    - lua_pushlstring
    - lua_error
    - lua_rawlen
    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:6467,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6467,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6468,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6468,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6470,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6471,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6471,1
    - Dst: hlua_http_get_headers
      Src: /src/haproxy/src/hlua.c:6473,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6474
      start: 6463
    functionDepth: 2
    functionLinenumber: 6463
    functionLinenumberEnd: 6474
    functionName: hlua_http_req_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - hlua_checkhttp
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    - hlua_http_get_headers
    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:6480,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6480,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6481,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6481,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6483,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6484,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6484,1
    - Dst: hlua_http_get_headers
      Src: /src/haproxy/src/hlua.c:6486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6487
      start: 6476
    functionDepth: 2
    functionLinenumber: 6476
    functionLinenumberEnd: 6487
    functionName: hlua_http_res_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - hlua_checkhttp
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    - hlua_http_get_headers
    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:6496,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6496,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6497,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:6497,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6498,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:6498,1
    - Dst: regex_comp
      Src: /src/haproxy/src/hlua.c:6502,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6503,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:6503,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6505,1
    - Dst: http_replace_hdrs
      Src: /src/haproxy/src/hlua.c:6506,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:6506,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6506,1
    - Dst: regex_free
      Src: /src/haproxy/src/hlua.c:6507,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: 6509
      start: 6493
    functionDepth: 2
    functionLinenumber: 6493
    functionLinenumberEnd: 6509
    functionName: hlua_http_rep_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - http_replace_hdrs
    - htxbuf
    - regex_comp
    - luaL_checkstring
    - luaL_argerror
    - luaL_checklstring
    - ist2
    - WILL_LJMP
    - chn_strm
    - MAY_LJMP
    - regex_free
    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:6515,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6515,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6516,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6516,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6518,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6519,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6519,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6521,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6522
      start: 6511
    functionDepth: 3
    functionLinenumber: 6511
    functionLinenumberEnd: 6522
    functionName: hlua_http_req_rep_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_http_rep_hdr
    - IS_HTX_STRM
    - hlua_checkhttp
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    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:6528,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6528,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6529,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6529,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6531,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6532,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6532,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6534,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6534,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6535
      start: 6524
    functionDepth: 3
    functionLinenumber: 6524
    functionLinenumberEnd: 6535
    functionName: hlua_http_res_rep_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_http_rep_hdr
    - IS_HTX_STRM
    - hlua_checkhttp
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    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:6541,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6541,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6542,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6542,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6544,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6545,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6545,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6547,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6548
      start: 6537
    functionDepth: 3
    functionLinenumber: 6537
    functionLinenumberEnd: 6548
    functionName: hlua_http_req_rep_val
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_http_rep_hdr
    - IS_HTX_STRM
    - hlua_checkhttp
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    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:6554,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6554,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6555,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6555,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6557,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6558,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6558,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6560,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6560,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6561
      start: 6550
    functionDepth: 3
    functionLinenumber: 6550
    functionLinenumberEnd: 6561
    functionName: hlua_http_res_rep_val
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_http_rep_hdr
    - IS_HTX_STRM
    - hlua_checkhttp
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    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:6569,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6569,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6570,1
    - Dst: http_find_header
      Src: /src/haproxy/src/hlua.c:6574,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6574,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/hlua.c:6575,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - L
    - msg
    argTypes:
    - lua_State*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6577
      start: 6566
    functionDepth: 1
    functionLinenumber: 6566
    functionLinenumberEnd: 6577
    functionName: hlua_http_del_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_find_header
    - luaL_checklstring
    - ist2
    - http_remove_header
    - MAY_LJMP
    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:6583,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6583,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6584,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6584,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6586,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6587,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6587,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6590
      start: 6579
    functionDepth: 2
    functionLinenumber: 6579
    functionLinenumberEnd: 6590
    functionName: hlua_http_req_del_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - hlua_checkhttp
    - WILL_LJMP
    - check_args
    - hlua_http_del_hdr
    - MAY_LJMP
    - lua_error
    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:6596,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6596,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6597,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6597,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6599,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6600,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6600,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6603
      start: 6592
    functionDepth: 2
    functionLinenumber: 6592
    functionLinenumberEnd: 6603
    functionName: hlua_http_res_del_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - hlua_checkhttp
    - WILL_LJMP
    - check_args
    - hlua_http_del_hdr
    - MAY_LJMP
    - lua_error
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_http_res_del_hdr(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6611,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6611,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6613,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6613,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6614,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6616,1
    - Dst: http_add_header
      Src: /src/haproxy/src/hlua.c:6616,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6616,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - L
    - msg
    argTypes:
    - lua_State*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6619
      start: 6608
    functionDepth: 1
    functionLinenumber: 6608
    functionLinenumberEnd: 6619
    functionName: hlua_http_add_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_add_header
    - lua_pushboolean
    - luaL_checklstring
    - ist2
    - MAY_LJMP
    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: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: hlua_http_add_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: 2
    functionLinenumber: 6621
    functionLinenumberEnd: 6632
    functionName: hlua_http_req_add_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - hlua_checkhttp
    - hlua_http_add_hdr
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    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: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: hlua_http_add_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: 2
    functionLinenumber: 6634
    functionLinenumberEnd: 6645
    functionName: hlua_http_res_add_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - hlua_checkhttp
    - hlua_http_add_hdr
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    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: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: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6657,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:6658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6659
      start: 6647
    functionDepth: 2
    functionLinenumber: 6647
    functionLinenumberEnd: 6659
    functionName: hlua_http_req_set_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - hlua_checkhttp
    - hlua_http_add_hdr
    - WILL_LJMP
    - check_args
    - hlua_http_del_hdr
    - MAY_LJMP
    - lua_error
    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:6665,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6665,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6666,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6666,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6668,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6669,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6669,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6671,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:6672,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6673
      start: 6661
    functionDepth: 2
    functionLinenumber: 6661
    functionLinenumberEnd: 6673
    functionName: hlua_http_res_set_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - hlua_checkhttp
    - hlua_http_add_hdr
    - WILL_LJMP
    - check_args
    - hlua_http_del_hdr
    - MAY_LJMP
    - lua_error
    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:6678,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6678,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6680,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6680,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6682,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6683,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6683,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6685,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6685,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    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_set_meth
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - luaL_checklstring
    - lua_pushboolean
    - hlua_checkhttp
    - WILL_LJMP
    - MAY_LJMP
    - lua_error
    - http_req_replace_stline
    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:6692,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6692,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6694,1
    - Dst: luaL_checklstring
      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: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6699,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6701
      start: 6690
    functionDepth: 2
    functionLinenumber: 6690
    functionLinenumberEnd: 6701
    functionName: hlua_http_req_set_path
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - luaL_checklstring
    - lua_pushboolean
    - hlua_checkhttp
    - WILL_LJMP
    - MAY_LJMP
    - lua_error
    - http_req_replace_stline
    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:6706,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6706,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6708,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6708,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6710,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6711,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6711,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6715,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/hlua.c:6720,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:6722,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6725,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6728
      start: 6704
    functionDepth: 2
    functionLinenumber: 6704
    functionLinenumberEnd: 6728
    functionName: hlua_http_req_set_query
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - http_req_replace_stline
    - luaL_checklstring
    - lua_pushboolean
    - hlua_checkhttp
    - WILL_LJMP
    - MAY_LJMP
    - lua_error
    - memcpy
    - chunk_reset
    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:6733,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6733,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6735,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6735,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:6737,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6738,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6738,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6740,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6740,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6742
      start: 6731
    functionDepth: 2
    functionLinenumber: 6731
    functionLinenumberEnd: 6742
    functionName: hlua_http_req_set_uri
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - luaL_checklstring
    - lua_pushboolean
    - hlua_checkhttp
    - WILL_LJMP
    - MAY_LJMP
    - lua_error
    - http_req_replace_stline
    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:6747,1
    - Dst: hlua_checkhttp
      Src: /src/haproxy/src/hlua.c:6747,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6748,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:6748,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6749,1
    - Dst: luaL_optlstring
      Src: /src/haproxy/src/hlua.c:6749,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:6750,1
    - Dst: strlen
      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: http_res_set_status
      Src: /src/haproxy/src/hlua.c:6755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6757
      start: 6745
    functionDepth: 2
    functionLinenumber: 6745
    functionLinenumberEnd: 6757
    functionName: hlua_http_res_set_status
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - http_res_set_status
    - luaL_optlstring
    - luaL_checkinteger
    - ist2
    - strlen
    - hlua_checkhttp
    - WILL_LJMP
    - MAY_LJMP
    - lua_error
    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:6772,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:6772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6773
      start: 6770
    functionDepth: 1
    functionLinenumber: 6770
    functionLinenumberEnd: 6773
    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:6780,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:6783,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:6784,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:6785,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:6788,1
    - Dst: hlua_channel_new
      Src: /src/haproxy/src/hlua.c:6789,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:6791,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:6794,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:6795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - L
    - msg
    argTypes:
    - lua_State*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6798
      start: 6777
    functionDepth: 1
    functionLinenumber: 6777
    functionLinenumberEnd: 6798
    functionName: hlua_http_msg_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_rawseti
    - hlua_channel_new
    - lua_pushlightuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawset
    - lua_pushstring
    - lua_rawgeti
    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:6808,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:6811,1
    - Dst: co_data
      Src: /src/haproxy/src/hlua.c:6812,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:6814,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:6815,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:6819,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:6820,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:6824,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: 6826
      start: 6805
    functionDepth: 1
    functionLinenumber: 6805
    functionLinenumberEnd: 6826
    functionName: hlua_http_msg_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - co_data
    - lua_pop
    - lua_touserdata
    - CHN_IDX
    - lua_getfield
    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:6835,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6835,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6836,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6836,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6840
      start: 6831
    functionDepth: 2
    functionLinenumber: 6831
    functionLinenumberEnd: 6840
    functionName: hlua_http_msg_is_resp
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushboolean
    - check_args
    - MAY_LJMP
    - 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:6851,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6851,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6852,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6852,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6855,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6855,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:6857,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/hlua.c:6858,1
    - Dst: hlua_http_get_stline
      Src: /src/haproxy/src/hlua.c:6861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6862
      start: 6845
    functionDepth: 2
    functionLinenumber: 6845
    functionLinenumberEnd: 6862
    functionName: hlua_http_msg_get_stline
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - hlua_http_get_stline
    - http_get_stline
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:6871,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6871,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6872,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6872,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6875,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6875,1
    - Dst: hlua_http_get_headers
      Src: /src/haproxy/src/hlua.c:6877,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6878
      start: 6867
    functionDepth: 2
    functionLinenumber: 6867
    functionLinenumberEnd: 6878
    functionName: hlua_http_msg_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_http_get_headers
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:6887,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6887,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6888,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6888,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6891,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6891,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6894
      start: 6883
    functionDepth: 2
    functionLinenumber: 6883
    functionLinenumberEnd: 6894
    functionName: hlua_http_msg_del_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - WILL_LJMP
    - check_args
    - hlua_http_del_hdr
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:6904,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6904,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6905,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6905,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6908,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6908,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6911
      start: 6900
    functionDepth: 3
    functionLinenumber: 6900
    functionLinenumberEnd: 6911
    functionName: hlua_http_msg_rep_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_http_rep_hdr
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:6921,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6921,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6922,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6922,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6925,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6925,1
    - Dst: hlua_http_rep_hdr
      Src: /src/haproxy/src/hlua.c:6927,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6928
      start: 6917
    functionDepth: 3
    functionLinenumber: 6917
    functionLinenumberEnd: 6928
    functionName: hlua_http_msg_rep_val
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_http_rep_hdr
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:6935,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6935,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6936,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6936,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6939,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6939,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:6941,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6942
      start: 6931
    functionDepth: 2
    functionLinenumber: 6931
    functionLinenumberEnd: 6942
    functionName: hlua_http_msg_add_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_http_add_hdr
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:6951,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6951,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6952,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6952,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6955,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6955,1
    - Dst: hlua_http_del_hdr
      Src: /src/haproxy/src/hlua.c:6957,1
    - Dst: hlua_http_add_hdr
      Src: /src/haproxy/src/hlua.c:6958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6959
      start: 6947
    functionDepth: 2
    functionLinenumber: 6947
    functionLinenumberEnd: 6959
    functionName: hlua_http_msg_set_hdr
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_http_add_hdr
    - WILL_LJMP
    - check_args
    - hlua_http_del_hdr
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:6969,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6969,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6970,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6970,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6971,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6971,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6974,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6974,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:6976,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6977,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6977,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6979
      start: 6962
    functionDepth: 2
    functionLinenumber: 6962
    functionLinenumberEnd: 6979
    functionName: hlua_http_msg_set_meth
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checklstring
    - lua_pushboolean
    - WILL_LJMP
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - http_req_replace_stline
    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:6989,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:6989,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6990,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:6990,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:6991,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:6991,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:6994,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:6994,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:6996,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:6997,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:6997,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6999
      start: 6982
    functionDepth: 2
    functionLinenumber: 6982
    functionLinenumberEnd: 6999
    functionName: hlua_http_msg_set_path
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checklstring
    - lua_pushboolean
    - WILL_LJMP
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - http_req_replace_stline
    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:7009,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7009,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7010,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7010,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7011,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7011,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7014,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7014,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7018,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/hlua.c:7023,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:7025,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:7028,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7029,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:7029,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7031
      start: 7002
    functionDepth: 2
    functionLinenumber: 7002
    functionLinenumberEnd: 7031
    functionName: hlua_http_msg_set_query
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - http_req_replace_stline
    - luaL_checklstring
    - lua_pushboolean
    - memcpy
    - WILL_LJMP
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - chunk_reset
    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:7041,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7041,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7042,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7042,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7043,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7043,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7046,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7046,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:7048,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7049,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/hlua.c:7049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7051
      start: 7034
    functionDepth: 2
    functionLinenumber: 7034
    functionLinenumberEnd: 7051
    functionName: hlua_http_msg_set_uri
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checklstring
    - lua_pushboolean
    - WILL_LJMP
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    - http_req_replace_stline
    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:7061,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7061,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7062,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7062,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7063,1
    - Dst: luaL_optlstring
      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: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7068,1
    - Dst: http_res_set_status
      Src: /src/haproxy/src/hlua.c:7068,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7068,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:7068,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7070
      start: 7054
    functionDepth: 2
    functionLinenumber: 7054
    functionLinenumberEnd: 7070
    functionName: hlua_http_msg_set_status
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - http_res_set_status
    - lua_pushboolean
    - luaL_optlstring
    - luaL_checkinteger
    - ist2
    - WILL_LJMP
    - chn_strm
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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: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: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7083,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7083,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7084,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/hlua.c:7085,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/hlua.c:7085,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:7086,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:7088,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:7091,1
    - Dst: http_add_header
      Src: /src/haproxy/src/hlua.c:7099,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7099,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7099,1
    - Dst: http_find_header
      Src: /src/haproxy/src/hlua.c:7107,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7107,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/hlua.c:7108,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:7118,1
    - Dst: ultoa
      Src: /src/haproxy/src/hlua.c:7121,1
    - Dst: http_find_header
      Src: /src/haproxy/src/hlua.c:7126,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7126,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/hlua.c:7127,1
    - Dst: http_add_header
      Src: /src/haproxy/src/hlua.c:7131,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7131,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7131,1
    - Dst: http_find_header
      Src: /src/haproxy/src/hlua.c:7139,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:7139,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/hlua.c:7140,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7147,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7147,1
    - Dst: chn_prod
      Src: /src/haproxy/src/hlua.c:7151,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7152,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7156,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 65
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7158
      start: 7073
    functionDepth: 2
    functionLinenumber: 7073
    functionLinenumberEnd: 7158
    functionName: hlua_http_msg_set_body_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_tostring
    - http_get_stline
    - ASSUME_NONNULL
    - WILL_LJMP
    - hlua_checkhttpmsg
    - strcmp
    - lua_pushboolean
    - luaL_error
    - http_remove_header
    - ultoa
    - htxbuf
    - http_find_header
    - ist
    - http_add_header
    - lua_tointeger
    - chn_prod
    - lua_type
    - check_args
    - MAY_LJMP
    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:7165,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7165,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7166,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7166,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7167,1
    - Dst: channel_full
      Src: /src/haproxy/src/hlua.c:7167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7169
      start: 7161
    functionDepth: 2
    functionLinenumber: 7161
    functionLinenumberEnd: 7169
    functionName: hlua_http_msg_is_full
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - channel_full
    - lua_pushboolean
    - check_args
    - MAY_LJMP
    - hlua_checkhttpmsg
    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:7177,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7177,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7178,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7178,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7179,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7180,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/hlua.c:7180,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:7180,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/hlua.c:7180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7182
      start: 7172
    functionDepth: 2
    functionLinenumber: 7172
    functionLinenumberEnd: 7182
    functionName: hlua_http_msg_may_recv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - htx_expect_more
    - channel_may_recv
    - lua_pushboolean
    - channel_input_closed
    - check_args
    - MAY_LJMP
    - hlua_checkhttpmsg
    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:7190,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7190,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7191,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7191,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7192,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:7193,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/hlua.c:7193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7195
      start: 7185
    functionDepth: 2
    functionLinenumber: 7185
    functionLinenumberEnd: 7195
    functionName: hlua_http_msg_is_eom
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - htx_expect_more
    - lua_pushboolean
    - check_args
    - MAY_LJMP
    - hlua_checkhttpmsg
    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:7205,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7205,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7206,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7206,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7207,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7210
      start: 7200
    functionDepth: 2
    functionLinenumber: 7200
    functionLinenumberEnd: 7210
    functionName: hlua_http_msg_get_in_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - check_args
    - hlua_checkhttpmsg
    - MAY_LJMP
    - hlua_http_msg_filter
    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:7220,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7220,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7221,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7221,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7222,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7225
      start: 7215
    functionDepth: 2
    functionLinenumber: 7215
    functionLinenumberEnd: 7225
    functionName: hlua_http_msg_get_out_len
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - check_args
    - hlua_checkhttpmsg
    - MAY_LJMP
    - hlua_http_msg_filter
    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:7235,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:7241,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/hlua.c:7242,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/hlua.c:7243,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:7244,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:7252,1
    - Dst: istadv
      Src: /src/haproxy/src/hlua.c:7253,1
    - Dst: isttrim
      Src: /src/haproxy/src/hlua.c:7254,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:7256,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:7271,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:7276,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:7277,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: 7279
      start: 7233
    functionDepth: 1
    functionLinenumber: 7233
    functionLinenumberEnd: 7279
    functionName: _hlua_http_msg_dup
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - isttrim
    - htxbuf
    - lua_pushnil
    - htx_get_blk_value
    - lua_pop
    - istadv
    - htx_get_blk_type
    - htx_get_next_blk
    - luaL_addlstring
    - luaL_pushresult
    - htx_find_offset
    - luaL_buffinit
    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:7288,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:7293,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:7293,1
    - Dst: istlen
      Src: /src/haproxy/src/hlua.c:7296,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/hlua.c:7296,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/hlua.c:7301,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:7302,1
    - Dst: htx_add_last_data
      Src: /src/haproxy/src/hlua.c:7303,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:7307,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/hlua.c:7310,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:7316,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7317,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:7321,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: 7323
      start: 7286
    functionDepth: 1
    functionLinenumber: 7286
    functionLinenumberEnd: 7323
    functionName: _hlua_http_msg_insert
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htx_free_data_space
    - CHN_IDX
    - istlen
    - unlikely
    - htx_get_blk_value
    - htx_get_blk_type
    - htx_replace_blk_value
    - flt_update_offsets
    - htx_find_offset
    - htx_from_buf
    - htx_add_last_data
    - htx_to_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:7334,1
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/hlua.c:7340,1
    - Dst: htx_truncate
      Src: /src/haproxy/src/hlua.c:7346,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/hlua.c:7351,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:7357,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/hlua.c:7360,1
    - Dst: istadv
      Src: /src/haproxy/src/hlua.c:7361,1
    - Dst: isttrim
      Src: /src/haproxy/src/hlua.c:7363,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/hlua.c:7367,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/hlua.c:7373,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:7382,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/hlua.c:7383,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/hlua.c:7394,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/hlua.c:7408,1
    - Dst: flt_update_offsets
      Src: /src/haproxy/src/hlua.c:7412,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7413,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: 7417
      start: 7331
    functionDepth: 1
    functionLinenumber: 7331
    functionLinenumberEnd: 7417
    functionName: _hlua_http_msg_delete
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - isttrim
    - htx_truncate
    - htx_get_blksz
    - htx_get_blk_value
    - htx_cut_data_blk
    - istadv
    - htx_get_blk_type
    - htx_get_tail_type
    - htx_replace_blk_value
    - htx_remove_blk
    - htx_get_next_blk
    - flt_update_offsets
    - htx_find_offset
    - htx_from_buf
    - CHN_IDX
    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:7432,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7432,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7433,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7433,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7434,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7434,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7437,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7437,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7439,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7440,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7441,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7441,1
    - Dst: ci_data
      Src: /src/haproxy/src/hlua.c:7443,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/hlua.c:7443,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:7444,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7449,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7450,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7450,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:7452,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7455,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7456,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7456,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7460,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7461,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7461,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7467,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7468,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7468,1
    - Dst: _hlua_http_msg_dup
      Src: /src/haproxy/src/hlua.c:7473,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7475
      start: 7425
    functionDepth: 2
    functionLinenumber: 7425
    functionLinenumberEnd: 7475
    functionName: hlua_http_msg_get_body
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - channel_input_closed
    - lua_pushnil
    - lua_gettop
    - luaL_error
    - luaL_checkinteger
    - ci_data
    - lua_pushfstring
    - MAX
    - _hlua_http_msg_dup
    - WILL_LJMP
    - hlua_http_msg_filter
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:7491,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7491,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7492,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7492,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7495,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7495,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7497,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7497,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7498,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7499,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7500,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7500,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7502,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7502,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7505
      start: 7483
    functionDepth: 2
    functionLinenumber: 7483
    functionLinenumberEnd: 7505
    functionName: hlua_http_msg_append
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - lua_pushinteger
    - hlua_http_msg_filter
    - luaL_checklstring
    - ist2
    - _hlua_http_msg_insert
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:7521,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7521,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7522,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7522,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7525,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7525,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7527,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7527,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7528,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7529,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7530,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7530,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7532,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7532,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7533,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7535
      start: 7513
    functionDepth: 2
    functionLinenumber: 7513
    functionLinenumberEnd: 7535
    functionName: hlua_http_msg_prepend
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - lua_pushinteger
    - hlua_http_msg_filter
    - luaL_checklstring
    - ist2
    - _hlua_http_msg_insert
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:7553,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7553,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7554,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7554,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7555,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7555,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7558,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7558,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7560,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7560,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7561,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7562,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7563,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7563,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7566,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7567,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7567,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:7569,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7572,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7573,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7573,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7577,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7577,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7578,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7580
      start: 7544
    functionDepth: 2
    functionLinenumber: 7544
    functionLinenumberEnd: 7580
    functionName: hlua_http_msg_insert_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - lua_pushinteger
    - lua_gettop
    - luaL_checklstring
    - luaL_error
    - luaL_checkinteger
    - ist2
    - lua_pushfstring
    - _hlua_http_msg_insert
    - MAX
    - WILL_LJMP
    - hlua_http_msg_filter
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:7595,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7595,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7596,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7596,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7597,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7597,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7600,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7600,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7602,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7603,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7604,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7604,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7607,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7608,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7608,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:7610,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7613,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7614,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7614,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7619,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7620,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7620,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7626,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7627,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7627,1
    - Dst: _hlua_http_msg_delete
      Src: /src/haproxy/src/hlua.c:7631,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7634,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7636
      start: 7588
    functionDepth: 2
    functionLinenumber: 7588
    functionLinenumberEnd: 7636
    functionName: hlua_http_msg_del_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - _hlua_http_msg_delete
    - lua_pushinteger
    - lua_gettop
    - luaL_error
    - luaL_checkinteger
    - lua_pushfstring
    - MAX
    - WILL_LJMP
    - hlua_http_msg_filter
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:7655,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7655,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7656,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:7656,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7657,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7657,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7660,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7660,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7662,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7662,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7663,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7664,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7665,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7665,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7668,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7669,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7669,1
    - Dst: MAX
      Src: /src/haproxy/src/hlua.c:7671,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7674,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7675,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7675,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:7680,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7681,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7681,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:7687,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7688,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7688,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:7694,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/hlua.c:7695,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7696,1
    - Dst: _hlua_http_msg_delete
      Src: /src/haproxy/src/hlua.c:7698,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7699,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7699,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7700,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7703
      start: 7645
    functionDepth: 2
    functionLinenumber: 7645
    functionLinenumberEnd: 7703
    functionName: hlua_http_msg_set_data
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - htx_free_data_space
    - _hlua_http_msg_delete
    - lua_pushinteger
    - lua_gettop
    - luaL_checklstring
    - luaL_error
    - luaL_checkinteger
    - ist2
    - lua_pushfstring
    - _hlua_http_msg_insert
    - MAX
    - htx_from_buf
    - WILL_LJMP
    - hlua_http_msg_filter
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:7720,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7720,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7721,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7721,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7724,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7724,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7726,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:7726,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7727,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7728,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7729,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7729,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:7732,1
    - Dst: channel_output_closed
      Src: /src/haproxy/src/hlua.c:7732,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7733,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:7737,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/hlua.c:7738,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7739,1
    - Dst: _hlua_http_msg_insert
      Src: /src/haproxy/src/hlua.c:7743,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:7743,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/hlua.c:7747,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7748,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7749,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7752,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7754
      start: 7711
    functionDepth: 2
    functionLinenumber: 7711
    functionLinenumberEnd: 7754
    functionName: hlua_http_msg_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - htx_free_data_space
    - unlikely
    - channel_output_closed
    - lua_pushinteger
    - hlua_http_msg_filter
    - luaL_checklstring
    - ist2
    - FLT_OFF
    - _hlua_http_msg_insert
    - htx_from_buf
    - WILL_LJMP
    - check_args
    - CHN_IDX
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:7770,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7770,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7771,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7771,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7774,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7774,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7776,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:7776,1
    - Dst: hlua_http_msg_filter
      Src: /src/haproxy/src/hlua.c:7777,1
    - Dst: hlua_filter_from_payload
      Src: /src/haproxy/src/hlua.c:7778,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7779,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7779,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:7786,1
    - Dst: channel_output_closed
      Src: /src/haproxy/src/hlua.c:7786,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/hlua.c:7798,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7799,1
    - Dst: CHN_IDX
      Src: /src/haproxy/src/hlua.c:7800,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:7804,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7806
      start: 7763
    functionDepth: 2
    functionLinenumber: 7763
    functionLinenumberEnd: 7806
    functionName: hlua_http_msg_forward
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_filter_from_payload
    - unlikely
    - channel_output_closed
    - lua_pushinteger
    - hlua_http_msg_filter
    - luaL_checkinteger
    - FLT_OFF
    - WILL_LJMP
    - check_args
    - CHN_IDX
    - MAY_LJMP
    - lua_error
    - hlua_checkhttpmsg
    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:7818,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7818,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7819,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7819,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7823
      start: 7813
    functionDepth: 2
    functionLinenumber: 7813
    functionLinenumberEnd: 7823
    functionName: hlua_http_msg_set_eom
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - check_args
    - MAY_LJMP
    - 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:7835,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7835,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7836,1
    - Dst: hlua_checkhttpmsg
      Src: /src/haproxy/src/hlua.c:7836,1
    - Dst: htxbuf
      Src: /src/haproxy/src/hlua.c:7837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7840
      start: 7830
    functionDepth: 2
    functionLinenumber: 7830
    functionLinenumberEnd: 7840
    functionName: hlua_http_msg_unset_eom
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - check_args
    - MAY_LJMP
    - 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:7851,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:7851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7852
      start: 7849
    functionDepth: 1
    functionLinenumber: 7849
    functionLinenumberEnd: 7852
    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:7860,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:7860,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7862,1
    - Dst: hlua_checkhttpclient
      Src: /src/haproxy/src/hlua.c:7862,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/hlua.c:7864,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/hlua.c:7866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7871
      start: 7856
    functionDepth: 2
    functionLinenumber: 7856
    functionLinenumberEnd: 7871
    functionName: hlua_httpclient_gc
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - httpclient_stop_and_destroy
    - hlua_checkhttpclient
    - check_args
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_gc(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:7880,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:7885,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:7886,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:7890,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:7891,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:7891,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:7892,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:7893,1
    - Dst: httpclient_new
      Src: /src/haproxy/src/hlua.c:7895,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/hlua.c:7899,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:7902,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:7903,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7908,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7910
      start: 7874
    functionDepth: 1
    functionLinenumber: 7874
    functionLinenumberEnd: 7910
    functionName: hlua_httpclient_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - lua_checkstack
    - memset
    - lua_rawseti
    - httpclient_new
    - MT_LIST_APPEND
    - hlua_pusherror
    - lua_newuserdata
    - lua_newtable
    - lua_setmetatable
    - WILL_LJMP
    - MAY_LJMP
    - lua_error
    - lua_rawgeti
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_new(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:7926,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7927
      start: 7919
    functionDepth: 1
    functionLinenumber: 7919
    functionLinenumberEnd: 7927
    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:7937,1
    - Dst: isttest
      Src: /src/haproxy/src/hlua.c:7939,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:7952,1
    - Dst: lua_gettable
      Src: /src/haproxy/src/hlua.c:7953,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:7955,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:7958,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:7959,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:7960,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:7961,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:7962,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:7963,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:7968,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:7969,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:7970,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:7971,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:7976,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:7977,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:7977,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - L
    - hlua_hc
    argTypes:
    - lua_State*
    - struct hlua_httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7981
      start: 7933
    functionDepth: 1
    functionLinenumber: 7933
    functionLinenumberEnd: 7981
    functionName: hlua_httpclient_get_headers
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - WILL_LJMP
    - lua_gettable
    - lua_rawseti
    - lua_pop
    - hlua_pusherror
    - lua_type
    - lua_newtable
    - lua_rawset
    - isttest
    - lua_pushlstring
    - lua_error
    - lua_rawlen
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_httpclient_get_headers(lua_State *L, struct hlua_httpclient
      *hlua_hc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:7994,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:7995,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:8000,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:8000,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8005,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8006,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8009,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:8010,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:8011,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8016,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8017,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8018,1
    - Dst: istdup
      Src: /src/haproxy/src/hlua.c:8020,1
    - Dst: istdup
      Src: /src/haproxy/src/hlua.c:8021,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8026,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8030,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:8036,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:8039,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8048
      start: 7988
    functionDepth: 1
    functionLinenumber: 7988
    functionLinenumberEnd: 8048
    functionName: hlua_httpclient_table_to_hdrs
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_next
    - lua_pushnil
    - lua_pop
    - lua_istable
    - lua_isstring
    - ist2
    - istdup
    - lua_tolstring
    - calloc
    - memcpy
    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:8060,1
    - Dst: hlua_checkhttpclient
      Src: /src/haproxy/src/hlua.c:8061,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:8064,1
    - Dst: httpclient_res_xfer
      Src: /src/haproxy/src/hlua.c:8066,1
    - Dst: luaL_addlstring
      Src: /src/haproxy/src/hlua.c:8067,1
    - Dst: b_orig
      Src: /src/haproxy/src/hlua.c:8067,1
    - Dst: httpclient_data
      Src: /src/haproxy/src/hlua.c:8069,1
    - Dst: httpclient_ended
      Src: /src/haproxy/src/hlua.c:8069,1
    - Dst: luaL_pushresult
      Src: /src/haproxy/src/hlua.c:8071,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:8072,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8074,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:8075,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:8076,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8079,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:8080,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:8081,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8083,1
    - Dst: hlua_httpclient_get_headers
      Src: /src/haproxy/src/hlua.c:8084,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:8085,1
    - Dst: httpclient_data
      Src: /src/haproxy/src/hlua.c:8090,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:8091,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8093,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:8093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8096
      start: 8056
    functionDepth: 2
    functionLinenumber: 8056
    functionLinenumberEnd: 8096
    functionName: hlua_httpclient_rcv_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - b_orig
    - hlua_gethlua
    - hlua_yieldk
    - httpclient_data
    - get_trash_chunk
    - httpclient_res_xfer
    - httpclient_ended
    - hlua_httpclient_get_headers
    - lua_pushinteger
    - task_wakeup
    - luaL_addlstring
    - luaL_pushresult
    - MAY_LJMP
    - lua_pushlstring
    - hlua_checkhttpclient
    - lua_settable
    - lua_pushstring
    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:8104,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:8111,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8114,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8114,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8117,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8121,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8122,1
    - Dst: httpclient_req_xfer
      Src: /src/haproxy/src/hlua.c:8130,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8130,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8134,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:8134,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:8144,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8146,1
    - Dst: luaL_buffinit
      Src: /src/haproxy/src/hlua.c:8147,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:8149,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8150,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:8150,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8153
      start: 8101
    functionDepth: 2
    functionLinenumber: 8101
    functionLinenumberEnd: 8153
    functionName: hlua_httpclient_snd_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - hlua_yieldk
    - lua_pop
    - task_wakeup
    - luaL_error
    - ist2
    - MAY_LJMP
    - httpclient_req_xfer
    - lua_newtable
    - hlua_checkhttpclient
    - WILL_LJMP
    - luaL_buffinit
    - lua_tolstring
    - lua_pushstring
    - lua_getfield
    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:8170,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8173,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8173,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8176,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8176,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8177,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8177,1
    - Dst: hlua_checkhttpclient
      Src: /src/haproxy/src/hlua.c:8179,1
    - Dst: httpclient_started
      Src: /src/haproxy/src/hlua.c:8184,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8185,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8185,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8187,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:8188,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8189,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8189,1
    - Dst: httpclient_set_dst
      Src: /src/haproxy/src/hlua.c:8190,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8190,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8191,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8191,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8193,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8193,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8194,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8195,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8195,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8196,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8198,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8198,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8199,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8200,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8200,1
    - Dst: httpclient_set_timeout
      Src: /src/haproxy/src/hlua.c:8201,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:8201,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8203,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8203,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8204,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8205,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8205,1
    - Dst: hlua_httpclient_table_to_hdrs
      Src: /src/haproxy/src/hlua.c:8206,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:8208,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8208,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:8209,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8210,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8210,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8211,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8214,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8214,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8214,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8217,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8221,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8221,1
    - Dst: istfree
      Src: /src/haproxy/src/hlua.c:8227,1
    - Dst: istdup
      Src: /src/haproxy/src/hlua.c:8228,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8228,1
    - Dst: httpclient_req_gen
      Src: /src/haproxy/src/hlua.c:8242,1
    - Dst: isttest
      Src: /src/haproxy/src/hlua.c:8246,1
    - Dst: istfree
      Src: /src/haproxy/src/hlua.c:8247,1
    - Dst: istfree
      Src: /src/haproxy/src/hlua.c:8248,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:8251,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8255,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8255,1
    - Dst: httpclient_start
      Src: /src/haproxy/src/hlua.c:8259,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8260,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8260,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8262,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:8262,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 70
    argCount: 2
    argNames:
    - L
    - meth
    argTypes:
    - lua_State*
    - enum http_meth_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8265
      start: 8159
    functionDepth: 2
    functionLinenumber: 8159
    functionLinenumberEnd: 8265
    functionName: hlua_httpclient_send
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - httpclient_req_gen
    - hlua_yieldk
    - lua_tostring
    - lua_pop
    - lua_gettop
    - httpclient_start
    - WILL_LJMP
    - httpclient_started
    - lua_pushnil
    - strcmp
    - istfree
    - httpclient_set_dst
    - ha_free
    - hlua_httpclient_table_to_hdrs
    - luaL_error
    - lua_tolstring
    - lua_next
    - hlua_checkhttpclient
    - istdup
    - ist
    - lua_tointeger
    - httpclient_set_timeout
    - lua_type
    - isttest
    - MAY_LJMP
    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:8274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8275
      start: 8272
    functionDepth: 3
    functionLinenumber: 8272
    functionLinenumberEnd: 8275
    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:8284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8286
      start: 8282
    functionDepth: 3
    functionLinenumber: 8282
    functionLinenumberEnd: 8286
    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:8295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8296
      start: 8293
    functionDepth: 3
    functionLinenumber: 8293
    functionLinenumberEnd: 8296
    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:8305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8306
      start: 8303
    functionDepth: 3
    functionLinenumber: 8303
    functionLinenumberEnd: 8306
    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:8316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8317
      start: 8314
    functionDepth: 3
    functionLinenumber: 8314
    functionLinenumberEnd: 8317
    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:8332,1
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua.c:8332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8333
      start: 8330
    functionDepth: 1
    functionLinenumber: 8330
    functionLinenumberEnd: 8333
    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:8342,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8342,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8343,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:8343,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8348,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8348,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8349,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:8349,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:8352,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:8353,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:8358,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8360,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua.c:8360,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:8361,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:8361,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:8363,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/hlua.c:8363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8366
      start: 8335
    functionDepth: 5
    functionLinenumber: 8335
    functionLinenumberEnd: 8366
    functionName: hlua_set_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memset
    - vars_set_by_name
    - vars_set_by_name_ifexist
    - lua_gettop
    - luaL_checklstring
    - luaL_error
    - lua_pushboolean
    - hlua_checktxn
    - WILL_LJMP
    - smp_set_owner
    - MAY_LJMP
    - lua_toboolean
    - hlua_lua2smp
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_set_var(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8375,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8375,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8380,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8380,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8381,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:8381,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:8384,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:8385,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/src/hlua.c:8385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8387
      start: 8368
    functionDepth: 4
    functionLinenumber: 8368
    functionLinenumberEnd: 8387
    functionName: hlua_unset_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - vars_unset_by_name_ifexist
    - luaL_checklstring
    - lua_pushboolean
    - hlua_checktxn
    - check_args
    - smp_set_owner
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_unset_var(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8396,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8396,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8401,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8401,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8402,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua.c:8402,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/hlua.c:8404,1
    - Dst: vars_get_by_name
      Src: /src/haproxy/src/hlua.c:8405,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8406,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8410,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:8410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8411
      start: 8389
    functionDepth: 4
    functionLinenumber: 8389
    functionLinenumberEnd: 8411
    functionName: hlua_get_var
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - vars_get_by_name
    - lua_pushnil
    - hlua_smp2lua
    - luaL_checklstring
    - hlua_checktxn
    - check_args
    - smp_set_owner
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_get_var(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8417,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8417,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8422,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8422,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:8425,1
    - Dst: luaL_unref
      Src: /src/haproxy/src/hlua.c:8430,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:8433,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:8434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8437
      start: 8413
    functionDepth: 2
    functionLinenumber: 8413
    functionLinenumberEnd: 8437
    functionName: hlua_set_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - luaL_unref
    - luaL_ref
    - hlua_checktxn
    - lua_pushvalue
    - check_args
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_set_priv(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8443,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8443,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8448,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8448,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:8451,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8453,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:8458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8461
      start: 8439
    functionDepth: 2
    functionLinenumber: 8439
    functionLinenumberEnd: 8461
    functionName: hlua_get_priv
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - lua_pushnil
    - hlua_checktxn
    - check_args
    - MAY_LJMP
    - lua_rawgeti
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_get_priv(lua_State *L)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:8472,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:8480,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:8481,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:8482,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8490,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:8491,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8493,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8496,1
    - Dst: hlua_fetches_new
      Src: /src/haproxy/src/hlua.c:8497,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8499,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8502,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:8503,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8505,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8508,1
    - Dst: hlua_converters_new
      Src: /src/haproxy/src/hlua.c:8509,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8511,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8514,1
    - Dst: hlua_channel_new
      Src: /src/haproxy/src/hlua.c:8515,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8517,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8520,1
    - Dst: hlua_channel_new
      Src: /src/haproxy/src/hlua.c:8521,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8523,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8526,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:8527,1
    - Dst: hlua_http_new
      Src: /src/haproxy/src/hlua.c:8528,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8532,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8533,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8541,1
    - Dst: hlua_http_msg_new
      Src: /src/haproxy/src/hlua.c:8543,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8547,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8548,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8551,1
    - Dst: hlua_http_msg_new
      Src: /src/haproxy/src/hlua.c:8553,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8557,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:8558,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:8562,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:8563,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: 8566
      start: 8467
    functionDepth: 2
    functionLinenumber: 8467
    functionLinenumberEnd: 8566
    functionName: hlua_txn_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - lua_checkstack
    - lua_rawseti
    - lua_pushnil
    - hlua_channel_new
    - lua_setmetatable
    - hlua_http_new
    - lua_newuserdata
    - lua_newtable
    - hlua_converters_new
    - lua_rawgeti
    - lua_rawset
    - hlua_http_msg_new
    - lua_pushstring
    - hlua_fetches_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:8573,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8573,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8574,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8574,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8575,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8575,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8579
      start: 8568
    functionDepth: 2
    functionLinenumber: 8568
    functionLinenumberEnd: 8579
    functionName: hlua_txn_deflog
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - hlua_checktxn
    - check_args
    - hlua_sendlog
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_deflog(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8587,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8587,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8588,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8588,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8589,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8589,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8590,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8590,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8593,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:8593,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8595,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8597
      start: 8581
    functionDepth: 2
    functionLinenumber: 8581
    functionLinenumberEnd: 8597
    functionName: hlua_txn_log
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - luaL_argerror
    - luaL_checkinteger
    - hlua_checktxn
    - WILL_LJMP
    - check_args
    - hlua_sendlog
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_log(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8604,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8604,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8605,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8605,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8606,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8606,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8609
      start: 8599
    functionDepth: 2
    functionLinenumber: 8599
    functionLinenumberEnd: 8609
    functionName: hlua_txn_log_debug
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - hlua_checktxn
    - check_args
    - hlua_sendlog
    - MAY_LJMP
    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:8616,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8616,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8617,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8617,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8618,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8618,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8621
      start: 8611
    functionDepth: 2
    functionLinenumber: 8611
    functionLinenumberEnd: 8621
    functionName: hlua_txn_log_info
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - hlua_checktxn
    - check_args
    - hlua_sendlog
    - MAY_LJMP
    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:8628,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8628,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8629,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8629,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8630,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8630,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8633
      start: 8623
    functionDepth: 2
    functionLinenumber: 8623
    functionLinenumberEnd: 8633
    functionName: hlua_txn_log_warning
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - hlua_checktxn
    - check_args
    - hlua_sendlog
    - MAY_LJMP
    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:8640,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8640,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8641,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8641,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8642,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:8642,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:8643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8645
      start: 8635
    functionDepth: 2
    functionLinenumber: 8635
    functionLinenumberEnd: 8645
    functionName: hlua_txn_log_alert
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - hlua_checktxn
    - check_args
    - hlua_sendlog
    - MAY_LJMP
    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:8652,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8652,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8653,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8653,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8654,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8654,1
    - Dst: conn_set_mark
      Src: /src/haproxy/src/hlua.c:8656,1
    - Dst: objt_conn
      Src: /src/haproxy/src/hlua.c:8656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8658
      start: 8647
    functionDepth: 2
    functionLinenumber: 8647
    functionLinenumberEnd: 8658
    functionName: hlua_txn_set_fc_mark
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - luaL_checkinteger
    - conn_set_mark
    - hlua_checktxn
    - check_args
    - MAY_LJMP
    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:8665,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8665,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8666,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8666,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8667,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8667,1
    - Dst: conn_set_tos
      Src: /src/haproxy/src/hlua.c:8669,1
    - Dst: objt_conn
      Src: /src/haproxy/src/hlua.c:8669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8671
      start: 8660
    functionDepth: 2
    functionLinenumber: 8660
    functionLinenumberEnd: 8671
    functionName: hlua_txn_set_fc_tos
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - conn_set_tos
    - luaL_checkinteger
    - hlua_checktxn
    - check_args
    - MAY_LJMP
    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:8678,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8678,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8679,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8679,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8680,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8680,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8683,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:8683,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8689
      start: 8673
    functionDepth: 2
    functionLinenumber: 8673
    functionLinenumberEnd: 8689
    functionName: hlua_txn_set_loglevel
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_argerror
    - luaL_checkinteger
    - hlua_checktxn
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    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:8695,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8695,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8696,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8696,1
    - Dst: queue_limit_class
      Src: /src/haproxy/src/hlua.c:8697,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8697,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8699
      start: 8691
    functionDepth: 2
    functionLinenumber: 8691
    functionLinenumberEnd: 8699
    functionName: hlua_txn_set_priority_class
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - queue_limit_class
    - luaL_checkinteger
    - hlua_checktxn
    - check_args
    - MAY_LJMP
    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:8705,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:8705,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8706,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8706,1
    - Dst: queue_limit_offset
      Src: /src/haproxy/src/hlua.c:8707,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8707,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:8707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8709
      start: 8701
    functionDepth: 2
    functionLinenumber: 8701
    functionLinenumberEnd: 8709
    functionName: hlua_txn_set_priority_offset
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - queue_limit_offset
    - luaL_checkinteger
    - hlua_checktxn
    - check_args
    - MAY_LJMP
    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:8728,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:8730,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8731,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8733,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:8735,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:8736,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8737,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8739,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8740,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8744,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8746,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8747,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/hlua.c:8750,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:8751,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/hlua.c:8752,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hlua.c:8755,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8755,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8756,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8756,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/hlua.c:8760,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8760,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8761,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8761,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8768,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8772,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:8773,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:8778,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:8778,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8783,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8784,1
    - Dst: isteqi
      Src: /src/haproxy/src/hlua.c:8785,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8785,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:8793,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:8794,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:8795,1
    - Dst: lua_tolstring
      Src: /src/haproxy/src/hlua.c:8800,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8801,1
    - Dst: isteqi
      Src: /src/haproxy/src/hlua.c:8803,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8803,1
    - Dst: h1_parse_xfer_enc_header
      Src: /src/haproxy/src/hlua.c:8804,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/hlua.c:8805,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8805,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8805,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8809,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8813,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8816,1
    - Dst: ultoa
      Src: /src/haproxy/src/hlua.c:8820,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/hlua.c:8823,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8823,1
    - Dst: ist
      Src: /src/haproxy/src/hlua.c:8823,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/hlua.c:8844,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/hlua.c:8845,1
    - Dst: ist2
      Src: /src/haproxy/src/hlua.c:8845,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:8852,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/hlua.c:8853,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/hlua.c:8859,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 110
    argCount: 2
    argNames:
    - L
    - s
    argTypes:
    - lua_State*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8861
      start: 8716
    functionDepth: 2
    functionLinenumber: 8716
    functionLinenumberEnd: 8861
    functionName: hlua_txn_forward_reply
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - htx_add_data_atonce
    - lua_pop
    - htx_add_stline
    - http_get_reason
    - lua_isstring
    - htx_from_buf
    - htx_add_endof
    - http_forward_proxy_resp
    - lua_getfield
    - lua_pushnil
    - h1m_init_res
    - channel_htx_truncate
    - ist2
    - strlen
    - ultoa
    - lua_tolstring
    - lua_next
    - htx_add_header
    - isteqi
    - ist
    - h1_parse_xfer_enc_header
    - lua_istable
    - lua_tointeger
    - htx_to_buf
    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:8877,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8877,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8882,1
    - Dst: hlua_done
      Src: /src/haproxy/src/hlua.c:8882,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:8885,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/hlua.c:8889,1
    - Dst: channel_abort
      Src: /src/haproxy/src/hlua.c:8890,1
    - Dst: channel_erase
      Src: /src/haproxy/src/hlua.c:8891,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/hlua.c:8893,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/hlua.c:8894,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/hlua.c:8895,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8901,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:8901,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/hlua.c:8904,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8908,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8909,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:8909,1
    - Dst: hlua_txn_forward_reply
      Src: /src/haproxy/src/hlua.c:8911,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:8914,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8915,1
    - Dst: hlua_done
      Src: /src/haproxy/src/hlua.c:8915,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/hlua.c:8926,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:8936,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:8938,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8939,1
    - Dst: hlua_done
      Src: /src/haproxy/src/hlua.c:8939,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8941
      start: 8871
    functionDepth: 3
    functionLinenumber: 8871
    functionLinenumberEnd: 8941
    functionName: hlua_txn_done
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - sc_schedule_abort
    - IS_HTX_STRM
    - channel_auto_read
    - hlua_txn_forward_reply
    - lua_pop
    - channel_abort
    - channel_erase
    - lua_istable
    - lua_gettop
    - lua_pushinteger
    - channel_auto_close
    - http_reply_and_close
    - hlua_checktxn
    - hlua_done
    - _HA_ATOMIC_INC
    - WILL_LJMP
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_txn_done(lua_State *L)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:8960,1
    - Dst: hlua_checktxn
      Src: /src/haproxy/src/hlua.c:8960,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/hlua.c:8961,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:8962,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:8963,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:8963,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:8968,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:8970,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8972,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:8979,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8982,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8983,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8985,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8988,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:8989,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:8991,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:8992,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:8996,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:8999,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9000,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9001,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:9004,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9005,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9006,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9007,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9010,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9012,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9014,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9015,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9018,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9019,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:9022,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9024,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9027,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:9028,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:9030,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:9030,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9032,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:9038,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:9039,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9042,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:9043,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:9046,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:9048,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9051,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:9052,1
    - Dst: lua_isstring
      Src: /src/haproxy/src/hlua.c:9054,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9056,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:9060,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:9060,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9063,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9070,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9074,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9077,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua.c:9081,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:9082,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 82
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9084
      start: 8954
    functionDepth: 2
    functionLinenumber: 8954
    functionLinenumberEnd: 9084
    functionName: hlua_txn_reply_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_tostring
    - lua_pop
    - lua_pushinteger
    - http_get_reason
    - lua_isstring
    - WILL_LJMP
    - lua_error
    - lua_pushstring
    - lua_getfield
    - lua_rawseti
    - lua_pushnil
    - lua_newtable
    - lua_rawlen
    - lua_next
    - hlua_pusherror
    - lua_setmetatable
    - lua_rawgeti
    - IS_HTX_STRM
    - lua_istable
    - lua_tointeger
    - lua_insert
    - hlua_checktxn
    - lua_settable
    - lua_pushvalue
    - MAY_LJMP
    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:9091,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9091,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9092,1
    - Dst: luaL_optlstring
      Src: /src/haproxy/src/hlua.c:9092,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9095,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:9095,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9098,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/hlua.c:9102,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9104,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:9105,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9107,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:9108,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9112
      start: 9089
    functionDepth: 1
    functionLinenumber: 9089
    functionLinenumberEnd: 9112
    functionName: hlua_txn_reply_set_status
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_setfield
    - lua_pushinteger
    - http_get_reason
    - lua_pushboolean
    - luaL_optlstring
    - luaL_checkinteger
    - luaL_checktype
    - MAY_LJMP
    - lua_pushstring
    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:9120,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9120,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9121,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9121,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9125,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:9125,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9128,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:9130,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:9130,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9131,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:9131,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9135,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:9138,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9143,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9144,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:9145,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9146,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:9149,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:9149,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9150,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:9150,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9156,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:9157,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:9158,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9162
      start: 9118
    functionDepth: 1
    functionLinenumber: 9118
    functionLinenumberEnd: 9162
    functionName: hlua_txn_reply_add_header
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushvalue
    - lua_typename
    - lua_rawseti
    - lua_pop
    - luaL_checkstring
    - hlua_pusherror
    - lua_pushboolean
    - luaL_checktype
    - lua_newtable
    - lua_settable
    - WILL_LJMP
    - lua_pushstring
    - MAY_LJMP
    - lua_error
    - lua_rawlen
    - lua_getfield
    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:9167,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9167,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9171,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:9171,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:9174,1
    - Dst: hlua_pusherror
      Src: /src/haproxy/src/hlua.c:9176,1
    - Dst: lua_typename
      Src: /src/haproxy/src/hlua.c:9176,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9177,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:9177,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9180,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9181,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9182,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9186
      start: 9165
    functionDepth: 1
    functionLinenumber: 9165
    functionLinenumberEnd: 9186
    functionName: hlua_txn_reply_del_header
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_typename
    - lua_pushnil
    - luaL_checkstring
    - hlua_pusherror
    - lua_pushboolean
    - luaL_checktype
    - lua_settable
    - WILL_LJMP
    - lua_pushstring
    - MAY_LJMP
    - lua_error
    - lua_getfield
    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:9191,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9191,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9194,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:9194,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9196,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:9197,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9201
      start: 9189
    functionDepth: 1
    functionLinenumber: 9189
    functionLinenumberEnd: 9201
    functionName: hlua_txn_reply_set_body
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_setfield
    - luaL_checkstring
    - lua_pushboolean
    - luaL_checktype
    - MAY_LJMP
    - lua_pushstring
    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:9208,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9208,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9209,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9209,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9210,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9210,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9213,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:9213,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9215,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9217
      start: 9203
    functionDepth: 2
    functionLinenumber: 9203
    functionLinenumberEnd: 9217
    functionName: hlua_log
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checkstring
    - luaL_argerror
    - luaL_checkinteger
    - WILL_LJMP
    - check_args
    - hlua_sendlog
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9223,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9223,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9224,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9224,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9227
      start: 9219
    functionDepth: 2
    functionLinenumber: 9219
    functionLinenumberEnd: 9227
    functionName: hlua_log_debug
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - check_args
    - luaL_checkstring
    - hlua_sendlog
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log_debug(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9233,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9233,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9234,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9234,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9237
      start: 9229
    functionDepth: 2
    functionLinenumber: 9229
    functionLinenumberEnd: 9237
    functionName: hlua_log_info
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - check_args
    - luaL_checkstring
    - hlua_sendlog
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log_info(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9243,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9243,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9244,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9244,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9247
      start: 9239
    functionDepth: 2
    functionLinenumber: 9239
    functionLinenumberEnd: 9247
    functionName: hlua_log_warning
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - check_args
    - luaL_checkstring
    - hlua_sendlog
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log_warning(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9253,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9253,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9254,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:9254,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:9255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9257
      start: 9249
    functionDepth: 2
    functionLinenumber: 9249
    functionLinenumberEnd: 9257
    functionName: hlua_log_alert
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - check_args
    - luaL_checkstring
    - hlua_sendlog
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_log_alert(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:9261,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:9262,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9263,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9265
      start: 9259
    functionDepth: 2
    functionLinenumber: 9259
    functionLinenumberEnd: 9265
    functionName: hlua_sleep_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - lua_tointeger
    - MAY_LJMP
    - 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:9272,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9272,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9274,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9274,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:9275,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9276,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9278,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9280
      start: 9267
    functionDepth: 2
    functionLinenumber: 9267
    functionLinenumberEnd: 9280
    functionName: hlua_sleep
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - tick_add
    - lua_pushinteger
    - luaL_checkinteger
    - check_args
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_sleep(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9287,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9287,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9289,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9289,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:9290,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9291,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9293,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9295
      start: 9282
    functionDepth: 2
    functionLinenumber: 9282
    functionLinenumberEnd: 9295
    functionName: hlua_msleep
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - tick_add
    - lua_pushinteger
    - luaL_checkinteger
    - check_args
    - MAY_LJMP
    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: 9304
      start: 9301
    functionDepth: 0
    functionLinenumber: 9301
    functionLinenumberEnd: 9304
    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:9308,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9310
      start: 9306
    functionDepth: 2
    functionLinenumber: 9306
    functionLinenumberEnd: 9310
    functionName: hlua_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_yield(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:9326,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9328,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9328,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:9329,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9332,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:9332,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9334
      start: 9320
    functionDepth: 2
    functionLinenumber: 9320
    functionLinenumberEnd: 9334
    functionName: hlua_wait
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - tick_add
    - lua_gettop
    - luaL_checkinteger
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_wait(lua_State *L)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9345,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9345,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9346,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:9346,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:9349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9362
      start: 9340
    functionDepth: 2
    functionLinenumber: 9340
    functionLinenumberEnd: 9362
    functionName: hlua_set_nice
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - luaL_checkinteger
    - check_args
    - hlua_gethlua
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_set_nice(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:9374,1
    - Dst: lua_newthread::lua_newthread
      Src: /src/haproxy/src/hlua.c:9376,1
    - Dst: lua_getextraspace
      Src: /src/haproxy/src/hlua.c:9380,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:9392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9397
      start: 9370
    functionDepth: 1
    functionLinenumber: 9370
    functionLinenumberEnd: 9397
    functionName: hlua_coroutine_create
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushvalue
    - hlua_gethlua
    - lua_newthread::lua_newthread
    - lua_getextraspace
    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:9418,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:9419,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:9422,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:9427,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:9428,1
    - Dst: notification_gc
      Src: /src/haproxy/src/hlua.c:9433,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9439,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9442,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:9445,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9446,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:9446,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:9447,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9451,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:9453,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:9454,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9459
      start: 9407
    functionDepth: 5
    functionLinenumber: 9407
    functionLinenumberEnd: 9459
    functionName: hlua_process_task
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_ctx_destroy
    - HLUA_IS_RUNNING
    - hlua_ctx_resume
    - notification_gc
    - task_destroy
    - hlua_timer_init
    - hlua_tostring_safe
    - hlua_unlock
    - SEND_ERR
    - hlua_lock
    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:9472,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:9472,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:9474,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9476,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9476,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9479,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:9479,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:9481,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9483,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9484,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9484,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua.c:9488,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9490
      start: 9467
    functionDepth: 2
    functionLinenumber: 9467
    functionLinenumberEnd: 9490
    functionName: hlua_register_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - hlua_unref
    - luaL_error
    - hlua_checkfunction
    - LIST_APPEND
    - WILL_LJMP
    - check_args
    - MAY_LJMP
    - calloc
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_init(lua_State *L)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:9513,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9515,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9515,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9517,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9517,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:9520,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:9520,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:9525,1
    - Dst: hlua_ref
      Src: /src/haproxy/src/hlua.c:9526,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:9534,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:9542,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:9545,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/hlua.c:9551,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:9553,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:9560,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:9566,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:9570,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9572,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:9579,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9581,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:9585,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:9590,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9591,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9593,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:9595,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9596,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9596,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 56
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9598
      start: 9503
    functionDepth: 2
    functionLinenumber: 9503
    functionLinenumberEnd: 9598
    functionName: hlua_register_task
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - lua_checkstack
    - task_wakeup
    - lua_gettop
    - pool_alloc
    - task_destroy
    - hlua_ctx_init
    - WILL_LJMP
    - hlua_unref
    - luaL_error
    - HLUA_INIT
    - hlua_ref
    - hlua_ctx_destroy
    - hlua_checkfunction
    - task_new_anywhere
    - task_new_here
    - hlua_pushref
    - lua_pushvalue
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_task(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:9605,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:9607,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:9608,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:9610,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:9613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hlua_sub
    argTypes:
    - struct hlua_event_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9614
      start: 9601
    functionDepth: 3
    functionLinenumber: 9601
    functionLinenumberEnd: 9614
    functionName: hlua_event_subscription_destroy
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_ctx_destroy
    - hlua_unref
    - pool_free
    - hlua_unlock
    - hlua_lock
    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:9647,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:9648,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:9659,1
    - Dst: notification_gc
      Src: /src/haproxy/src/hlua.c:9667,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9673,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9677,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:9681,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9682,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:9682,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:9683,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:9688,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - hlua
    argTypes:
    - struct hlua*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9691
      start: 9640
    functionDepth: 5
    functionLinenumber: 9640
    functionLinenumberEnd: 9691
    functionName: hlua_event_handler
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - HLUA_IS_RUNNING
    - hlua_ctx_resume
    - notification_gc
    - hlua_timer_init
    - hlua_tostring_safe
    - hlua_unlock
    - SEND_ERR
    - 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:9696,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9697,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9698,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9699,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9702,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9705,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9708,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9711,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9714,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9716,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9717,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9718,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9720,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9721,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9723,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9724,1
    - Dst: get_check_status_info
      Src: /src/haproxy/src/hlua.c:9724,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9725,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9726,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9727,1
    - Dst: get_check_status_description
      Src: /src/haproxy/src/hlua.c:9727,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9728,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9731,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9732,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9733,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9736,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9738,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9739,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9741,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9742,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9743,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9744,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9745,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9746,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9747,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9748,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9749,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9751,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: 9752
      start: 9693
    functionDepth: 1
    functionLinenumber: 9693
    functionLinenumberEnd: 9752
    functionName: hlua_event_hdl_cb_push_event_checkres
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - get_check_status_description
    - lua_pushinteger
    - lua_pushboolean
    - lua_newtable
    - lua_settable
    - get_check_status_info
    - lua_pushstring
    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:9766,1
    - Dst: event_hdl_sub_type_to_string
      Src: /src/haproxy/src/hlua.c:9766,1
    - Dst: event_hdl_sub_family_equal
      Src: /src/haproxy/src/hlua.c:9769,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9775,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9777,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9778,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9779,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9781,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9782,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9783,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9785,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9786,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9787,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9789,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9790,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9791,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9793,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9794,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9795,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:9798,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:9802,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9803,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9803,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9806,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9807,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9809,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9810,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9811,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9818,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9819,1
    - Dst: hlua_event_hdl_cb_push_event_checkres
      Src: /src/haproxy/src/hlua.c:9820,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9821,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9824,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9826,1
    - Dst: srv_adm_st_chg_cause
      Src: /src/haproxy/src/hlua.c:9826,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9828,1
    - Dst: srv_op_st_chg_cause
      Src: /src/haproxy/src/hlua.c:9828,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9829,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9835,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9838,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9841,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9844,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9847,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:9850,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9853,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_settable
      Src: /src/haproxy/src/hlua.c:9861,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:9863,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:9867,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9868,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9868,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9871,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9872,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9874,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9875,1
    - Dst: srv_adm_st_chg_cause
      Src: /src/haproxy/src/hlua.c:9875,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9876,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9882,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9885,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9887,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9888,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9889,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9890,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9891,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9892,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9893,1
    - Dst: lua_pushboolean
      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:9896,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9897,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9898,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9899,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9900,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9901,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9903,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9904,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9905,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9906,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9907,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9908,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9909,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua.c:9910,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9911,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9913,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9916,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9917,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9918,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9920,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:9922,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:9925,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:9926,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:9926,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9929,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:9930,1
    - Dst: hlua_event_hdl_cb_push_event_checkres
      Src: /src/haproxy/src/hlua.c:9933,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9935,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/hlua.c:9941,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua.c:9942,1
    - Dst: server_find_by_id_unique
      Src: /src/haproxy/src/hlua.c:9943,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:9945,1
    - Dst: hlua_fcn_new_server
      Src: /src/haproxy/src/hlua.c:9946,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:9947,1
    - Dst: hlua_fcn_new_event_sub
      Src: /src/haproxy/src/hlua.c:9952,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:9956,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: 9957
      start: 9757
    functionDepth: 2
    functionLinenumber: 9757
    functionLinenumberEnd: 9957
    functionName: hlua_event_hdl_cb_push_args
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_pushinteger
    - srv_op_st_chg_cause
    - WILL_LJMP
    - lua_pushstring
    - lua_pushnil
    - lua_pushboolean
    - event_hdl_sub_family_equal
    - luaL_error
    - hlua_fcn_new_event_sub
    - lua_newtable
    - event_hdl_sub_type_equal
    - BUG_ON
    - srv_adm_st_chg_cause
    - hlua_fcn_new_server
    - server_find_by_id_unique
    - event_hdl_sub_type_to_string
    - proxy_find_by_id
    - hlua_event_hdl_cb_push_event_checkres
    - 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:9974,1
    - Dst: event_hdl_pause
      Src: /src/haproxy/src/hlua.c:9988,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:9991,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:9993,1
    - Dst: event_hdl_async_equeue_size
      Src: /src/haproxy/src/hlua.c:9995,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:9998,1
    - Dst: hlua_event_handler
      Src: /src/haproxy/src/hlua.c:10000,1
    - Dst: event_hdl_async_equeue_pop
      Src: /src/haproxy/src/hlua.c:10001,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:10002,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/hlua.c:10004,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:10005,1
    - Dst: hlua_event_subscription_destroy
      Src: /src/haproxy/src/hlua.c:10006,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10012,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10013,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10014,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10015,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10018,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10019,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10024,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10025,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10026,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:10031,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10035,1
    - Dst: hlua_event_hdl_cb_push_args
      Src: /src/haproxy/src/hlua.c:10035,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10038,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/hlua.c:10043,1
    - Dst: hlua_event_handler
      Src: /src/haproxy/src/hlua.c:10046,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/hlua.c:10049,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:10053,1
    - Dst: event_hdl_async_equeue_isempty
      Src: /src/haproxy/src/hlua.c:10057,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:10061,1
    - Dst: event_hdl_resume
      Src: /src/haproxy/src/hlua.c:10065,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10071
      start: 9968
    functionDepth: 6
    functionLinenumber: 9968
    functionLinenumberEnd: 10071
    functionName: hlua_event_runner
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - hlua_event_hdl_cb_push_args
    - event_hdl_resume
    - task_wakeup
    - task_destroy
    - event_hdl_async_equeue_size
    - ha_warning
    - event_hdl_async_equeue_pop
    - hlua_event_handler
    - event_hdl_async_equeue_isempty
    - SET_SAFE_LJMP
    - hlua_traceback
    - event_hdl_sub_type_equal
    - RESET_SAFE_LJMP
    - hlua_tostring_safe
    - event_hdl_pause
    - SEND_ERR
    - HLUA_IS_RUNNING
    - event_hdl_async_free_event
    - hlua_pushref
    - hlua_event_subscription_destroy
    - lua_type
    - hlua_unlock
    - hlua_lock
    - MAY_LJMP
    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:10087,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:10093,1
    - Dst: event_hdl_async_equeue_init
      Src: /src/haproxy/src/hlua.c:10097,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:10101,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:10104,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:10105,1
    - Dst: event_hdl_subscribe_ptr
      Src: /src/haproxy/src/hlua.c:10108,1
    - Dst: EVENT_HDL_ASYNC_TASK
      Src: /src/haproxy/src/hlua.c:10109,1
    - Dst: task_destroy
      Src: /src/haproxy/src/hlua.c:10120,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:10122,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:10123,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: 10127
      start: 10081
    functionDepth: 2
    functionLinenumber: 10081
    functionLinenumberEnd: 10127
    functionName: hlua_event_subscribe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - EVENT_HDL_ASYNC_TASK
    - hlua_ctx_destroy
    - event_hdl_subscribe_ptr
    - pool_free
    - event_hdl_async_equeue_init
    - HLUA_INIT
    - pool_alloc
    - task_destroy
    - hlua_ctx_init
    - task_new_here
    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:10137,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:10138,1
    - Dst: luaL_typename
      Src: /src/haproxy/src/hlua.c:10138,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:10139,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:10145,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:10146,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10147,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:10148,1
    - Dst: luaL_typename
      Src: /src/haproxy/src/hlua.c:10148,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:10149,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:10152,1
    - Dst: event_hdl_string_to_sub_type
      Src: /src/haproxy/src/hlua.c:10152,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:10152,1
    - Dst: lua_pushfstring
      Src: /src/haproxy/src/hlua.c:10153,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:10153,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:10154,1
    - Dst: event_hdl_sub_type_add
      Src: /src/haproxy/src/hlua.c:10158,1
    - Dst: event_hdl_string_to_sub_type
      Src: /src/haproxy/src/hlua.c:10158,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:10158,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - L
    - index
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10165
      start: 10132
    functionDepth: 1
    functionLinenumber: 10132
    functionLinenumberEnd: 10165
    functionName: hlua_check_event_sub_types
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_next
    - lua_tostring
    - lua_pushnil
    - lua_pop
    - luaL_argerror
    - event_hdl_sub_type_equal
    - event_hdl_string_to_sub_type
    - lua_pushfstring
    - lua_type
    - event_hdl_sub_type_add
    - luaL_typename
    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:10175,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10178,1
    - Dst: hlua_fcn_new_event_sub
      Src: /src/haproxy/src/hlua.c:10178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10179
      start: 10173
    functionDepth: 1
    functionLinenumber: 10173
    functionLinenumberEnd: 10179
    functionName: _hlua_new_event_sub_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_new_event_sub
    - lua_touserdata
    - 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:10182,1
    - Dst: lua_pushcfunction
      Src: /src/haproxy/src/hlua.c:10184,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:10185,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:10186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - L
    - sub
    argTypes:
    - lua_State*
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10193
      start: 10180
    functionDepth: 0
    functionLinenumber: 10180
    functionLinenumberEnd: 10193
    functionName: hlua_new_event_sub_safe
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pcall
    - lua_checkstack
    - lua_pushcfunction
    - lua_pushlightuserdata
    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:10212,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:10212,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:10215,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10237,1
    - Dst: hlua_check_event_sub_types
      Src: /src/haproxy/src/hlua.c:10237,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/hlua.c:10239,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10240,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10240,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10245,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:10245,1
    - Dst: hlua_event_subscribe
      Src: /src/haproxy/src/hlua.c:10248,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10250,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10251,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10251,1
    - Dst: hlua_new_event_sub_safe
      Src: /src/haproxy/src/hlua.c:10260,1
    - Dst: event_hdl_unsubscribe
      Src: /src/haproxy/src/hlua.c:10266,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10267,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10267,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:10267,1
    - Dst: event_hdl_drop
      Src: /src/haproxy/src/hlua.c:10270,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: 10273
      start: 10204
    functionDepth: 3
    functionLinenumber: 10204
    functionLinenumberEnd: 10273
    functionName: hlua_event_sub
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - hlua_check_event_sub_types
    - event_hdl_unsubscribe
    - lua_tostring
    - hlua_unref
    - hlua_new_event_sub_safe
    - event_hdl_sub_type_equal
    - luaL_error
    - hlua_checkfunction
    - hlua_event_subscribe
    - WILL_LJMP
    - check_args
    - event_hdl_drop
    - MAY_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:10282,1
    - Dst: hlua_event_sub
      Src: /src/haproxy/src/hlua.c:10282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10283
      start: 10279
    functionDepth: 4
    functionLinenumber: 10279
    functionLinenumberEnd: 10283
    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:10299,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:10299,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10300,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:10305,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10308,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10309,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10310,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10311,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10314,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10315,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10320,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10321,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10322,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:10327,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10330,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10331,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10332,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10335,1
    - Dst: hlua_smp2lua
      Src: /src/haproxy/src/hlua.c:10335,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10341,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10342,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10343,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10346,1
    - Dst: hlua_arg2lua
      Src: /src/haproxy/src/hlua.c:10346,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:10352,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10355,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:10359,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10362,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:10364,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10365,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:10370,1
    - Dst: smp_dup
      Src: /src/haproxy/src/hlua.c:10374,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10375,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10376,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10381,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10387,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10388,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10389,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10390,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10391,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10395,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10399,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10403,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10407,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10412,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: 10418
      start: 10289
    functionDepth: 5
    functionLinenumber: 10289
    functionLinenumberEnd: 10418
    functionName: hlua_sample_conv_wrapper
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_pop
    - hlua_ctx_resume
    - lua_gettop
    - smp_dup
    - hlua_arg2lua
    - SET_SAFE_LJMP
    - hlua_lua2smp
    - fcn_ref_to_stack_id
    - RESET_SAFE_LJMP
    - hlua_tostring_safe
    - hlua_stream_ctx_prepare
    - SEND_ERR
    - HLUA_IS_RUNNING
    - hlua_lock
    - hlua_pushref
    - lua_type
    - hlua_timer_init
    - hlua_unlock
    - hlua_smp2lua
    - MAY_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:10437,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:10437,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10438,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:10443,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10446,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10447,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10448,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10449,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10452,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10453,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: hlua_pushref
      Src: /src/haproxy/src/hlua.c:10465,1
    - Dst: hlua_txn_new
      Src: /src/haproxy/src/hlua.c:10468,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10469,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10470,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10478,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10479,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10480,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10483,1
    - Dst: hlua_arg2lua
      Src: /src/haproxy/src/hlua.c:10483,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:10488,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10491,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:10495,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10498,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:10500,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10501,1
    - Dst: hlua_lua2smp
      Src: /src/haproxy/src/hlua.c:10506,1
    - Dst: smp_dup
      Src: /src/haproxy/src/hlua.c:10510,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10511,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10512,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10520,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10526,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10527,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10528,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10529,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10530,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10534,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10538,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10542,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10546,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10551,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: 10557
      start: 10425
    functionDepth: 5
    functionLinenumber: 10425
    functionLinenumberEnd: 10557
    functionName: hlua_sample_fetch_wrapper
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_pop
    - hlua_ctx_resume
    - lua_gettop
    - smp_dup
    - hlua_arg2lua
    - SET_SAFE_LJMP
    - hlua_lua2smp
    - fcn_ref_to_stack_id
    - RESET_SAFE_LJMP
    - hlua_tostring_safe
    - hlua_stream_ctx_prepare
    - SEND_ERR
    - HLUA_IS_RUNNING
    - hlua_txn_new
    - hlua_pushref
    - lua_type
    - hlua_timer_init
    - hlua_unlock
    - hlua_lock
    - MAY_LJMP
    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:10573,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:10573,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:10575,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10577,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10577,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10581,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:10581,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10584,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:10584,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:10587,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:10588,1
    - Dst: find_sample_conv
      Src: /src/haproxy/src/hlua.c:10589,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:10593,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10595,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:10602,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:10605,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:10610,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:10619,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:10619,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:10620,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:10624,1
    - Dst: ARG12
      Src: /src/haproxy/src/hlua.c:10626,1
    - Dst: sample_register_convs
      Src: /src/haproxy/src/hlua.c:10633,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:10638,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10639,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:10640,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10641,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10641,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10643
      start: 10563
    functionDepth: 2
    functionLinenumber: 10563
    functionLinenumberEnd: 10643
    functionName: hlua_register_converters
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - sample_register_convs
    - hlua_gethlua
    - ARG12
    - get_trash_chunk
    - WILL_LJMP
    - ha_warning
    - find_sample_conv
    - chunk_printf
    - hlua_unref
    - snprintf
    - ha_free
    - luaL_error
    - strlen
    - new_hlua_function
    - calloc
    - strdup
    - hlua_checkfunction
    - release_hlua_function
    - luaL_checkstring
    - check_args
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_converters(lua_State *L)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10659,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:10659,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:10661,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10663,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10663,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10667,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:10667,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10670,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:10670,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:10673,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:10674,1
    - Dst: find_sample_fetch
      Src: /src/haproxy/src/hlua.c:10675,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:10679,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10681,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:10688,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:10691,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:10696,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:10705,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:10705,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:10706,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:10710,1
    - Dst: ARG12
      Src: /src/haproxy/src/hlua.c:10712,1
    - Dst: sample_register_fetches
      Src: /src/haproxy/src/hlua.c:10720,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:10725,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:10726,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:10727,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:10728,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:10728,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10730
      start: 10649
    functionDepth: 2
    functionLinenumber: 10649
    functionLinenumberEnd: 10730
    functionName: hlua_register_fetches
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - ARG12
    - get_trash_chunk
    - sample_register_fetches
    - find_sample_fetch
    - WILL_LJMP
    - ha_warning
    - chunk_printf
    - hlua_unref
    - snprintf
    - ha_free
    - luaL_error
    - strlen
    - new_hlua_function
    - calloc
    - strdup
    - hlua_checkfunction
    - release_hlua_function
    - luaL_checkstring
    - check_args
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_fetches(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:10741,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10746,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:10746,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:10748,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:10748,1
    - Dst: tick_add
      Src: /src/haproxy/src/hlua.c:10749,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10752
      start: 10734
    functionDepth: 2
    functionLinenumber: 10734
    functionLinenumberEnd: 10752
    functionName: hlua_set_wake_time
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - tick_add
    - luaL_checkinteger
    - check_args
    - MAY_LJMP
    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:10775,1
    - Dst: hlua_stream_ctx_prepare
      Src: /src/haproxy/src/hlua.c:10779,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:10779,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10780,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:10786,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10789,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10790,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:10791,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10792,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10795,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10797,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10802,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10803,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10805,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:10810,1
    - Dst: hlua_txn_new
      Src: /src/haproxy/src/hlua.c:10813,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10814,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10816,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:10823,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10824,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10826,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:10829,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:10834,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:10837,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:10841,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10845,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:10846,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:10847,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10848,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:10856,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:10856,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:10859,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:10859,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:10868,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:10868,1
    - Dst: tick_first
      Src: /src/haproxy/src/hlua.c:10871,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/hlua.c:10871,1
    - Dst: HLUA_IS_WAKERESWR
      Src: /src/haproxy/src/hlua.c:10878,1
    - Dst: HLUA_IS_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:10880,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:10888,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10889,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:10890,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:10891,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:10892,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10896,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10900,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10904,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:10917,1
    - Dst: hlua_sendlog
      Src: /src/haproxy/src/hlua.c:10920,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:10921,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10925,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10932,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: 10943
      start: 10760
    functionDepth: 5
    functionLinenumber: 10760
    functionLinenumberEnd: 10943
    functionName: hlua_action
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_pop
    - hlua_ctx_resume
    - lua_gettop
    - HLUA_IS_WAKEREQWR
    - lua_pushstring
    - tick_is_expired
    - ha_free
    - SET_SAFE_LJMP
    - fcn_ref_to_stack_id
    - HLUA_IS_WAKERESWR
    - RESET_SAFE_LJMP
    - hlua_tostring_safe
    - memprintf
    - hlua_stream_ctx_prepare
    - SEND_ERR
    - hlua_sendlog
    - HLUA_IS_RUNNING
    - hlua_txn_new
    - lua_tointeger
    - hlua_pushref
    - lua_type
    - hlua_timer_init
    - tick_first
    - hlua_unlock
    - hlua_lock
    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:10949,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10952
      start: 10945
    functionDepth: 1
    functionLinenumber: 10945
    functionLinenumberEnd: 10952
    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:10956,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:10957,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/hlua.c:10958,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:10965,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10967,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:10971,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:10976,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10978,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:10992,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:10992,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:10993,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:10999,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11002,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11003,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11004,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11005,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11008,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11010,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11015,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11016,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11018,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:11023,1
    - Dst: hlua_applet_tcp_new
      Src: /src/haproxy/src/hlua.c:11026,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11027,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11029,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11036,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11037,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11039,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11042,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11046,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:11049,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:11050,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11053
      start: 10954
    functionDepth: 3
    functionLinenumber: 10954
    functionLinenumberEnd: 11053
    functionName: hlua_applet_tcp_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - pool_alloc
    - hlua_ctx_init
    - lua_pushstring
    - SET_SAFE_LJMP
    - appctx_sc
    - HLUA_INIT
    - fcn_ref_to_stack_id
    - applet_need_more_data
    - __sc_strm
    - hlua_applet_tcp_new
    - RESET_SAFE_LJMP
    - hlua_tostring_safe
    - task_new_here
    - SEND_ERR
    - applet_reserve_svcctx
    - applet_have_more_data
    - hlua_pushref
    - hlua_timer_init
    - lua_type
    - hlua_unlock
    - hlua_lock
    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:11058,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/hlua.c:11059,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:11064,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/hlua.c:11064,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:11072,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/hlua.c:11076,1
    - Dst: task_schedule
      Src: /src/haproxy/src/hlua.c:11083,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11089,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11090,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11091,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:11092,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11093,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11097,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11102,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11107,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11112,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11118,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/hlua.c:11133,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/hlua.c:11137,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11140
      start: 11055
    functionDepth: 5
    functionLinenumber: 11055
    functionLinenumberEnd: 11140
    functionName: hlua_applet_tcp_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - __sc_strm
    - unlikely
    - applet_reset_input
    - lua_pop
    - hlua_ctx_resume
    - appctx_sc
    - SEND_ERR
    - hlua_tostring_safe
    - hlua_unlock
    - applet_set_eos
    - task_schedule
    - hlua_lock
    - applet_set_error
    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:11146,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:11148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11150
      start: 11142
    functionDepth: 1
    functionLinenumber: 11142
    functionLinenumberEnd: 11150
    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:11157,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/hlua.c:11158,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/hlua.c:11159,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:11168,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11170,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:11174,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:11183,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11185,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:11199,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:11199,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11200,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:11206,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11209,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11210,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11211,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11212,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11215,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11217,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11222,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11223,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11225,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:11230,1
    - Dst: hlua_applet_http_new
      Src: /src/haproxy/src/hlua.c:11233,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11234,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11236,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11243,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11244,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11246,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11249,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11253,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:11256,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 60
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11259
      start: 11155
    functionDepth: 3
    functionLinenumber: 11155
    functionLinenumberEnd: 11259
    functionName: hlua_applet_http_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - pool_alloc
    - hlua_ctx_init
    - lua_pushstring
    - SET_SAFE_LJMP
    - appctx_sc
    - hlua_applet_http_new
    - HLUA_INIT
    - fcn_ref_to_stack_id
    - applet_need_more_data
    - __sc_strm
    - RESET_SAFE_LJMP
    - hlua_tostring_safe
    - task_new_here
    - SEND_ERR
    - applet_reserve_svcctx
    - hlua_pushref
    - hlua_timer_init
    - lua_type
    - hlua_unlock
    - hlua_lock
    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:11264,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/hlua.c:11265,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:11274,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/hlua.c:11274,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/hlua.c:11281,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:11283,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:11289,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/hlua.c:11299,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/hlua.c:11301,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11306,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11307,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11308,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11309,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11312,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11313,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:11317,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/hlua.c:11319,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua.c:11320,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/hlua.c:11320,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/hlua.c:11321,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11324,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:11325,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/hlua.c:11325,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/hlua.c:11325,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11326,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11329,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:11330,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/hlua.c:11330,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/hlua.c:11330,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11331,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11336,1
    - Dst: hlua_http_get_headers
      Src: /src/haproxy/src/hlua.c:11337,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11339,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/hlua.c:11341,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/hlua.c:11341,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/hlua.c:11342,1
    - Dst: isttest
      Src: /src/haproxy/src/hlua.c:11343,1
    - Dst: istend
      Src: /src/haproxy/src/hlua.c:11347,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11353,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:11354,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11355,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11358,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua.c:11361,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11362,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11367,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua.c:11368,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11369,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11372,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:11373,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:11374,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11377,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:11381,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:11387,1
    - Dst: task_schedule
      Src: /src/haproxy/src/hlua.c:11394,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11400,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11401,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11402,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:11403,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11404,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11408,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11413,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11418,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11423,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11429,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:11449,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/hlua.c:11450,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/hlua.c:11451,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:11452,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/hlua.c:11458,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/hlua.c:11459,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/hlua.c:11470,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:11483,1
    - Dst: htx_reset
      Src: /src/haproxy/src/hlua.c:11484,1
    - Dst: b_data
      Src: /src/haproxy/src/hlua.c:11485,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:11486,1
    - Dst: b_head
      Src: /src/haproxy/src/hlua.c:11486,1
    - Dst: b_data
      Src: /src/haproxy/src/hlua.c:11486,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/hlua.c:11487,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/hlua.c:11488,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/hlua.c:11489,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/hlua.c:11492,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 159
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11498
      start: 11261
    functionDepth: 5
    functionLinenumber: 11261
    functionLinenumberEnd: 11498
    functionName: hlua_applet_http_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - applet_will_consume
    - unlikely
    - applet_set_eoi
    - lua_pop
    - HTX_SL_REQ_VLEN
    - lua_pushinteger
    - hlua_ctx_resume
    - htx_get_blk_ptr
    - memcpy
    - htx_from_buf
    - htx_get_first_blk
    - istend
    - htx_add_endof
    - b_head
    - lua_pushstring
    - applet_get_inbuf
    - HTX_SL_REQ_MPTR
    - b_data
    - htx_get_blk_type
    - SET_SAFE_LJMP
    - appctx_sc
    - lua_newtable
    - lua_pushlstring
    - applet_get_outbuf
    - applet_need_more_data
    - __sc_strm
    - HTX_SL_REQ_MLEN
    - http_parse_path
    - BUG_ON
    - http_uri_parser_init
    - RESET_SAFE_LJMP
    - htx_reset
    - hlua_tostring_safe
    - applet_reset_input
    - SEND_ERR
    - task_schedule
    - applet_set_eos
    - applet_have_more_data
    - htx_is_empty
    - applet_fl_test
    - applet_set_error
    - HLUA_IS_RUNNING
    - HTX_SL_REQ_VPTR
    - lua_type
    - htx_sl_req_uri
    - lua_settable
    - hlua_unlock
    - isttest
    - htx_to_buf
    - hlua_lock
    - hlua_http_get_headers
    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:11504,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:11506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11508
      start: 11500
    functionDepth: 1
    functionLinenumber: 11500
    functionLinenumberEnd: 11508
    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:11524,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11526,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11531,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11534,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11544,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:11547,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11549,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11564,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11565,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11567,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: 11570
      start: 11517
    functionDepth: 1
    functionLinenumber: 11517
    functionLinenumberEnd: 11570
    functionName: action_register_lua
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    - ha_free
    - calloc
    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:11584,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11589,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11591,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: 11613
      start: 11572
    functionDepth: 1
    functionLinenumber: 11572
    functionLinenumberEnd: 11613
    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:11633,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:11633,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11634,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11634,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:11636,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11638,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11638,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11642,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:11642,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11645,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11646,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11646,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11649,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:11649,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:11652,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11653,1
    - Dst: luaL_checkinteger
      Src: /src/haproxy/src/hlua.c:11653,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:11656,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:11657,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11658,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11659,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11660,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11660,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:11664,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:11665,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11666,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11666,1
    - Dst: tcp_req_cont_action
      Src: /src/haproxy/src/hlua.c:11667,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11668,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11668,1
    - Dst: tcp_res_cont_action
      Src: /src/haproxy/src/hlua.c:11669,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11670,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11670,1
    - Dst: action_http_req_custom
      Src: /src/haproxy/src/hlua.c:11671,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11672,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11672,1
    - Dst: action_http_res_custom
      Src: /src/haproxy/src/hlua.c:11673,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11674,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11674,1
    - Dst: action_http_after_res_custom
      Src: /src/haproxy/src/hlua.c:11675,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:11682,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11684,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:11689,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11695,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:11698,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:11703,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11715,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11715,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11716,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:11720,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11727,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11727,1
    - Dst: tcp_req_cont_keywords_register
      Src: /src/haproxy/src/hlua.c:11728,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11729,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11729,1
    - Dst: tcp_res_cont_keywords_register
      Src: /src/haproxy/src/hlua.c:11730,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11731,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11731,1
    - Dst: http_req_keywords_register
      Src: /src/haproxy/src/hlua.c:11732,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11733,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11733,1
    - Dst: http_res_keywords_register
      Src: /src/haproxy/src/hlua.c:11734,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11735,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11735,1
    - Dst: http_after_res_keywords_register
      Src: /src/haproxy/src/hlua.c:11736,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:11738,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11739,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11741,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11742,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11743,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11743,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:11746,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:11750,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:11759,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11760,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11761,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11762,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11762,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 102
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11764
      start: 11619
    functionDepth: 2
    functionLinenumber: 11619
    functionLinenumberEnd: 11764
    functionName: hlua_register_action
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - lua_tostring
    - get_trash_chunk
    - lua_pop
    - lua_gettop
    - WILL_LJMP
    - http_res_keywords_register
    - action_http_req_custom
    - tcp_req_cont_keywords_register
    - action_http_after_res_custom
    - ha_warning
    - lua_pushnil
    - strcmp
    - hlua_unref
    - chunk_printf
    - snprintf
    - ha_free
    - luaL_error
    - strlen
    - new_hlua_function
    - calloc
    - strdup
    - lua_next
    - tcp_res_cont_action
    - tcp_req_cont_action
    - hlua_checkfunction
    - luaL_checkinteger
    - release_hlua_function
    - http_after_res_keywords_register
    - http_req_keywords_register
    - action_http_res_custom
    - luaL_checkstring
    - tcp_res_cont_keywords_register
    - lua_type
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_register_action(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11772,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11777,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:11779,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: 11801
      start: 11766
    functionDepth: 1
    functionLinenumber: 11766
    functionLinenumberEnd: 11801
    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:11818,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:11818,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:11820,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11822,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11822,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11826,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:11826,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11829,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:11829,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:11832,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:11832,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:11835,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:11836,1
    - Dst: service_find
      Src: /src/haproxy/src/hlua.c:11837,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:11841,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11843,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11850,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:11853,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11858,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11858,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11859,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:11862,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11869,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:11869,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:11870,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:11874,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11877,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:11879,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:11882,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11883,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11885,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11886,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11887,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11887,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:11895,1
    - Dst: service_keywords_register
      Src: /src/haproxy/src/hlua.c:11898,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:11903,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:11904,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:11905,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:11906,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:11906,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 65
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11908
      start: 11807
    functionDepth: 2
    functionLinenumber: 11807
    functionLinenumberEnd: 11908
    functionName: hlua_register_service
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - get_trash_chunk
    - service_find
    - WILL_LJMP
    - ha_warning
    - strcmp
    - chunk_printf
    - hlua_unref
    - snprintf
    - ha_free
    - luaL_error
    - strlen
    - new_hlua_function
    - calloc
    - memset
    - hlua_checkfunction
    - release_hlua_function
    - luaL_checkstring
    - service_keywords_register
    - check_args
    - MAY_LJMP
    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:11915,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:11924,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11926,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:11929,1
    - Dst: task_new_here
      Src: /src/haproxy/src/hlua.c:11936,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11938,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:11946,1
    - Dst: fcn_ref_to_stack_id
      Src: /src/haproxy/src/hlua.c:11946,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11947,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11952,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:11953,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:11954,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:11955,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11958,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:11959,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11964,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11965,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:11970,1
    - Dst: hlua_applet_tcp_new
      Src: /src/haproxy/src/hlua.c:11975,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11976,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:11984,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:11985,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:11988,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:11993,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:11996,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12003,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12004,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: 12007
      start: 11913
    functionDepth: 3
    functionLinenumber: 11913
    functionLinenumberEnd: 12007
    functionName: hlua_cli_parse_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - pool_alloc
    - hlua_ctx_init
    - lua_pushstring
    - SET_SAFE_LJMP
    - HLUA_INIT
    - fcn_ref_to_stack_id
    - hlua_ctx_destroy
    - hlua_applet_tcp_new
    - RESET_SAFE_LJMP
    - hlua_tostring_safe
    - task_new_here
    - SEND_ERR
    - applet_reserve_svcctx
    - hlua_pushref
    - lua_type
    - hlua_timer_init
    - hlua_unlock
    - hlua_lock
    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:12019,1
    - Dst: HLUA_IS_WAKERESWR
      Src: /src/haproxy/src/hlua.c:12028,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/hlua.c:12029,1
    - Dst: task_schedule
      Src: /src/haproxy/src/hlua.c:12032,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/hlua.c:12034,1
    - Dst: applet_expect_data
      Src: /src/haproxy/src/hlua.c:12035,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12041,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12042,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12043,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12044,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12045,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12049,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12054,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12059,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12064,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12079
      start: 12009
    functionDepth: 5
    functionLinenumber: 12009
    functionLinenumberEnd: 12079
    functionName: hlua_cli_io_handler_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - applet_will_consume
    - HLUA_IS_WAKERESWR
    - applet_expect_data
    - lua_pop
    - hlua_ctx_resume
    - hlua_tostring_safe
    - hlua_unlock
    - SEND_ERR
    - task_schedule
    - hlua_lock
    - applet_have_more_data
    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:12085,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12089
      start: 12081
    functionDepth: 1
    functionLinenumber: 12081
    functionLinenumberEnd: 12089
    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:12112,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:12112,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:12114,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12116,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:12116,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:12120,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12121,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:12121,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12124,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:12124,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12127,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:12127,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:12130,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:12132,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:12133,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:12134,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12136,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12137,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:12137,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12139,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12140,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12141,1
    - Dst: luaL_argerror
      Src: /src/haproxy/src/hlua.c:12141,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:12143,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:12145,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/hlua.c:12147,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12149,1
    - Dst: cli_find_kw_exact
      Src: /src/haproxy/src/hlua.c:12151,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:12155,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12157,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:12164,1
    - Dst: new_hlua_function
      Src: /src/haproxy/src/hlua.c:12169,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:12177,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:12178,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12183,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:12187,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:12187,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12193,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:12197,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:12204,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:12206,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:12207,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:12215,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:12220,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua.c:12221,1
    - Dst: cli_register_kw
      Src: /src/haproxy/src/hlua.c:12236,1
    - Dst: release_hlua_function
      Src: /src/haproxy/src/hlua.c:12241,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12242,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12245,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12246,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12248,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12249,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:12249,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 119
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12251
      start: 12097
    functionDepth: 2
    functionLinenumber: 12097
    functionLinenumberEnd: 12251
    functionName: hlua_register_cli
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - lua_tostring
    - get_trash_chunk
    - lua_pop
    - WILL_LJMP
    - ha_warning
    - lua_pushnil
    - hlua_unref
    - chunk_printf
    - chunk_appendf
    - cli_find_kw_exact
    - ha_free
    - luaL_argerror
    - luaL_error
    - strlen
    - new_hlua_function
    - cli_register_kw
    - calloc
    - strdup
    - lua_next
    - memset
    - hlua_checkfunction
    - release_hlua_function
    - lua_istable
    - luaL_checkstring
    - lua_type
    - check_args
    - MAY_LJMP
    - memcpy
    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:12259,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12261,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12264,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12267,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:12270,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:12271,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:12273,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:12274,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:12275,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:12276,1
    - Dst: hlua_ref
      Src: /src/haproxy/src/hlua.c:12278,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12281,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12284,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:12287,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12290,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12291,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:12294,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua.c:12295,1
    - Dst: lua_rawlen
      Src: /src/haproxy/src/hlua.c:12295,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:12298,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12305,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12305,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12308,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12311,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12311,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12315,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12315,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:12319,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12319,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12323,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12327,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 58
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12329
      start: 12253
    functionDepth: 2
    functionLinenumber: 12253
    functionLinenumberEnd: 12329
    functionName: hlua_filter_init_per_thread
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_pop
    - lua_gettop
    - reg_flt_to_stack_id
    - lua_pushstring
    - lua_rawseti
    - lua_pushnil
    - lua_settop
    - lua_newtable
    - hlua_ref
    - lua_rawlen
    - lua_pcall
    - lua_next
    - hlua_tostring_safe
    - ha_alert
    - hlua_pushref
    - lua_insert
    - lua_settable
    - lua_pushvalue
    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:12340,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12343
      start: 12331
    functionDepth: 1
    functionLinenumber: 12331
    functionLinenumberEnd: 12343
    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:12348,1
    - Dst: hlua_filter_init_per_thread
      Src: /src/haproxy/src/hlua.c:12352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12354
      start: 12345
    functionDepth: 3
    functionLinenumber: 12345
    functionLinenumberEnd: 12354
    functionName: hlua_filter_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - reg_flt_to_stack_id
    - hlua_filter_init_per_thread
    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:12361,1
    - Dst: hlua_filter_deinit_per_thread
      Src: /src/haproxy/src/hlua.c:12366,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:12369,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:12370,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12372,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12373,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:12374,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12375
      start: 12356
    functionDepth: 2
    functionLinenumber: 12356
    functionLinenumberEnd: 12375
    functionName: hlua_filter_deinit
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - reg_flt_to_stack_id
    - free
    - ha_free
    - hlua_filter_deinit_per_thread
    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:12379,1
    - Dst: hlua_stream_ctx_prepare
      Src: /src/haproxy/src/hlua.c:12384,1
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12384,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12385,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/hlua.c:12391,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12393,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:12399,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:12400,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/hlua.c:12401,1
    - Dst: HLUA_INIT
      Src: /src/haproxy/src/hlua.c:12402,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12404,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:12410,1
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12410,1
    - Dst: hlua_ctx_init
      Src: /src/haproxy/src/hlua.c:12411,1
    - Dst: reg_flt_to_stack_id
      Src: /src/haproxy/src/hlua.c:12411,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12412,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:12418,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12420,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12423,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12424,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12425,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12428,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12429,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12435,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12436,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12437,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12442,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12443,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12444,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12446,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:12450,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:12456,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12459,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:12462,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12465,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12468,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12469,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12470,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12473,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12474,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12480,1
    - Dst: lua_istable
      Src: /src/haproxy/src/hlua.c:12480,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12482,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:12487,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:12488,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:12489,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:12492,1
    - Dst: hlua_ref
      Src: /src/haproxy/src/hlua.c:12493,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12496,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12504,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12505,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12505,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12506,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12510,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12514,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12518,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12523,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12528,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12538,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12539,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12540,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12544,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12545,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:12546,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 143
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12550
      start: 12377
    functionDepth: 5
    functionLinenumber: 12377
    functionLinenumberEnd: 12550
    functionName: hlua_filter_new
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - lua_pushvalue
    - pool_free
    - hlua_ctx_resume
    - lua_gettop
    - pool_alloc
    - hlua_ctx_init
    - reg_flt_to_stack_id
    - lua_pushstring
    - lua_getfield
    - FLT_CONF
    - lua_settop
    - pool_zalloc
    - SET_SAFE_LJMP
    - HLUA_INIT
    - hlua_ref
    - hlua_ctx_destroy
    - RESET_SAFE_LJMP
    - hlua_tostring_safe
    - hlua_stream_ctx_prepare
    - SEND_ERR
    - HLUA_IS_RUNNING
    - lua_istable
    - hlua_pushref
    - lua_pushlightuserdata
    - lua_insert
    - lua_type
    - hlua_timer_init
    - lua_settable
    - hlua_unlock
    - hlua_lock
    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:12555,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua.c:12557,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12561,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:12562,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12563,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12564,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/hlua.c:12565,1
    - Dst: pool_free
      Src: /src/haproxy/src/hlua.c:12566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12568
      start: 12552
    functionDepth: 3
    functionLinenumber: 12552
    functionLinenumberEnd: 12568
    functionName: hlua_filter_delete
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_ctx_destroy
    - hlua_unref
    - pool_free
    - BUG_ON
    - hlua_stream_ctx_get
    - hlua_unlock
    - hlua_lock
    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: 12575
      start: 12570
    functionDepth: 0
    functionLinenumber: 12570
    functionLinenumberEnd: 12575
    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:12581,1
    - Dst: HLUA_IS_RUNNING
      Src: /src/haproxy/src/hlua.c:12590,1
    - Dst: SET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12594,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12597,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12598,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12599,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12602,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12603,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12607,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12610,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12611,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12612,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12616,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12617,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12618,1
    - Dst: lua_insert
      Src: /src/haproxy/src/hlua.c:12621,1
    - Dst: hlua_txn_new
      Src: /src/haproxy/src/hlua.c:12623,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12624,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12625,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12632,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12634,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12635,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:12636,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:12637,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:12638,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12644,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12646,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:12647,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:12648,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:12649,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:12650,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:12656,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12657,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12658,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:12663,1
    - Dst: lua_remove
      Src: /src/haproxy/src/hlua.c:12664,1
    - Dst: hlua_timer_init
      Src: /src/haproxy/src/hlua.c:12669,1
    - Dst: RESET_SAFE_LJMP
      Src: /src/haproxy/src/hlua.c:12672,1
    - Dst: hlua_ctx_resume
      Src: /src/haproxy/src/hlua.c:12675,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12678,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12679,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:12680,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12681,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12683,1
    - Dst: HLUA_IS_WAKERESWR
      Src: /src/haproxy/src/hlua.c:12705,1
    - Dst: HLUA_IS_WAKEREQWR
      Src: /src/haproxy/src/hlua.c:12707,1
    - Dst: hlua_lock
      Src: /src/haproxy/src/hlua.c:12712,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12713,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:12713,1
    - Dst: hlua_unlock
      Src: /src/haproxy/src/hlua.c:12714,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12718,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12721,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12724,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12727,1
    - Dst: SEND_ERR
      Src: /src/haproxy/src/hlua.c:12731,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: 12740
      start: 12577
    functionDepth: 5
    functionLinenumber: 12577
    functionLinenumberEnd: 12740
    functionName: hlua_filter_callback
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_checkstack
    - hlua_ctx_resume
    - lua_gettop
    - HLUA_IS_WAKEREQWR
    - lua_pushstring
    - lua_getfield
    - FLT_CONF
    - lua_settop
    - SET_SAFE_LJMP
    - HLUA_IS_WAKERESWR
    - hlua_unlock
    - RESET_SAFE_LJMP
    - hlua_tostring_safe
    - SEND_ERR
    - lua_remove
    - HLUA_IS_RUNNING
    - hlua_txn_new
    - lua_tointeger
    - hlua_pushref
    - lua_pushlightuserdata
    - lua_insert
    - lua_type
    - hlua_timer_init
    - lua_settable
    - lua_pushvalue
    - hlua_lock
    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:12747,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: 12750
      start: 12742
    functionDepth: 6
    functionLinenumber: 12742
    functionLinenumberEnd: 12750
    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:12757,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: 12760
      start: 12752
    functionDepth: 6
    functionLinenumber: 12752
    functionLinenumberEnd: 12760
    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:12767,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: 12770
      start: 12762
    functionDepth: 6
    functionLinenumber: 12762
    functionLinenumberEnd: 12770
    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:12785,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12788,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:12789,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12792,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: 12796
      start: 12772
    functionDepth: 6
    functionLinenumber: 12772
    functionLinenumberEnd: 12796
    functionName: hlua_filter_http_payload
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_settop
    - lua_tointeger
    - lua_gettop
    - hlua_filter_callback
    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:12803,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: 12806
      start: 12798
    functionDepth: 6
    functionLinenumber: 12798
    functionLinenumberEnd: 12806
    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:12821,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua.c:12824,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:12825,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12828,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: 12832
      start: 12808
    functionDepth: 6
    functionLinenumber: 12808
    functionLinenumberEnd: 12832
    functionName: hlua_filter_tcp_payload
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_settop
    - lua_tointeger
    - lua_gettop
    - hlua_filter_callback
    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:12844,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:12848,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:12862,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12864,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12866,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12867,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12869,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12870,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12872,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12873,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12875,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12876,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12878,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12879,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12881,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12884,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:12885,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12886,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12887,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua.c:12888,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12889,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:12892,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:12899,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:12903,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:12911,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12919,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:12923,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:12924,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:12927,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:12928,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:12930,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:12931,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:12932,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: 12934
      start: 12834
    functionDepth: 1
    functionLinenumber: 12834
    functionLinenumberEnd: 12934
    functionName: hlua_filter_parse_fct
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - strdup
    - lua_tostring
    - lua_pop
    - lua_tointeger
    - lua_settop
    - hlua_pushref
    - free
    - memprintf
    - reg_flt_to_stack_id
    - calloc
    - lua_getfield
    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:12941,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:12941,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12942,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:12942,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12943,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:12943,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12945,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12946,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:12946,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:12947,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12948,1
    - Dst: register_data_filter
      Src: /src/haproxy/src/hlua.c:12950,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:12950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12952
      start: 12936
    functionDepth: 2
    functionLinenumber: 12936
    functionLinenumberEnd: 12952
    functionName: hlua_register_data_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - register_data_filter
    - lua_pop
    - lua_touserdata
    - luaL_checktype
    - hlua_checkchannel
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_getfield
    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:12959,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:12959,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12960,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:12960,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12961,1
    - Dst: hlua_checkchannel
      Src: /src/haproxy/src/hlua.c:12961,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:12963,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12964,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua.c:12964,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:12965,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:12966,1
    - Dst: unregister_data_filter
      Src: /src/haproxy/src/hlua.c:12968,1
    - Dst: chn_strm
      Src: /src/haproxy/src/hlua.c:12968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12970
      start: 12954
    functionDepth: 2
    functionLinenumber: 12954
    functionLinenumberEnd: 12970
    functionName: hlua_unregister_data_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_touserdata
    - unregister_data_filter
    - luaL_checktype
    - hlua_checkchannel
    - check_args
    - chn_strm
    - MAY_LJMP
    - lua_getfield
    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:12986,1
    - Dst: check_args
      Src: /src/haproxy/src/hlua.c:12986,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:12988,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:12990,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:12990,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12994,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua.c:12994,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:12997,1
    - Dst: hlua_checktable
      Src: /src/haproxy/src/hlua.c:12997,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13000,1
    - Dst: hlua_checkfunction
      Src: /src/haproxy/src/hlua.c:13000,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua.c:13002,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/hlua.c:13003,1
    - Dst: flt_find_kw
      Src: /src/haproxy/src/hlua.c:13004,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:13008,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13011,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13013,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13020,1
    - Dst: new_hlua_reg_filter
      Src: /src/haproxy/src/hlua.c:13025,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:13033,1
    - Dst: strlen
      Src: /src/haproxy/src/hlua.c:13033,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13034,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:13038,1
    - Dst: memset
      Src: /src/haproxy/src/hlua.c:13042,1
    - Dst: flt_register_keywords
      Src: /src/haproxy/src/hlua.c:13045,1
    - Dst: release_hlua_reg_filter
      Src: /src/haproxy/src/hlua.c:13050,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13051,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13052,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:13053,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13054,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13054,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13056
      start: 12976
    functionDepth: 2
    functionLinenumber: 12976
    functionLinenumberEnd: 13056
    functionName: hlua_register_filter
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - get_trash_chunk
    - WILL_LJMP
    - release_hlua_reg_filter
    - hlua_checktable
    - ha_warning
    - chunk_printf
    - hlua_unref
    - new_hlua_reg_filter
    - snprintf
    - ha_free
    - luaL_error
    - strlen
    - flt_find_kw
    - calloc
    - memset
    - hlua_checkfunction
    - luaL_checkstring
    - flt_register_keywords
    - check_args
    - MAY_LJMP
    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:13064,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13066,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13071,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13076,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: 13080
      start: 13058
    functionDepth: 1
    functionLinenumber: 13058
    functionLinenumberEnd: 13080
    functionName: hlua_read_timeout
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    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:13086,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: 13088
      start: 13082
    functionDepth: 2
    functionLinenumber: 13082
    functionLinenumberEnd: 13088
    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:13094,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: 13096
      start: 13090
    functionDepth: 2
    functionLinenumber: 13090
    functionLinenumberEnd: 13096
    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:13102,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: 13104
      start: 13098
    functionDepth: 2
    functionLinenumber: 13098
    functionLinenumberEnd: 13104
    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:13110,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: 13112
      start: 13106
    functionDepth: 2
    functionLinenumber: 13106
    functionLinenumberEnd: 13112
    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:13120,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13122,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: 13126
      start: 13114
    functionDepth: 1
    functionLinenumber: 13114
    functionLinenumberEnd: 13126
    functionName: hlua_forced_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtoll
    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:13135,1
    - Dst: strtoll
      Src: /src/haproxy/src/hlua.c:13138,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13140,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: 13144
      start: 13128
    functionDepth: 1
    functionLinenumber: 13128
    functionLinenumberEnd: 13144
    functionName: hlua_parse_maxmem
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strtoll
    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:13150,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13153,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13155,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13158,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: 13162
      start: 13146
    functionDepth: 1
    functionLinenumber: 13146
    functionLinenumberEnd: 13162
    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:13168,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13171,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13173,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13175,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13178,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: 13182
      start: 13164
    functionDepth: 1
    functionLinenumber: 13164
    functionLinenumberEnd: 13182
    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:13190,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13193,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13195,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13198,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:13203,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: 13211
      start: 13184
    functionDepth: 1
    functionLinenumber: 13184
    functionLinenumberEnd: 13211
    functionName: hlua_cfg_parse_bool_sample_conversion
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - too_many_args
    - memprintf
    - strcmp
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/hlua.c:13232,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua.c:13243,1
    - Dst: luaL_loadfile
      Src: /src/haproxy/src/hlua.c:13251,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13253,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13253,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13254,1
    - Dst: lua_checkstack
      Src: /src/haproxy/src/hlua.c:13261,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13262,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:13265,1
    - Dst: lua_pcall
      Src: /src/haproxy/src/hlua.c:13270,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13275,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13275,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13276,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13279,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13282,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13282,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13283,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13287,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13287,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13288,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13292,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13292,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13293,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 3
    argNames:
    - args
    - L
    - err
    argTypes:
    - char**
    - lua_State*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13298
      start: 13227
    functionDepth: 1
    functionLinenumber: 13227
    functionLinenumberEnd: 13298
    functionName: hlua_load_state
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pcall
    - ha_warning
    - lua_checkstack
    - lua_pop
    - ONLY_ONCE
    - luaL_loadfile
    - hlua_tostring_safe
    - memprintf
    - lua_pushstring
    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:13305,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:13311,1
    - Dst: hlua_load_state
      Src: /src/haproxy/src/hlua.c:13312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    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: 13313
      start: 13300
    functionDepth: 2
    functionLinenumber: 13300
    functionLinenumberEnd: 13313
    functionName: hlua_load
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_load_state
    - memprintf
    - ha_set_thread
    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:13323,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13329,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13331,1
    - Dst: realloc
      Src: /src/haproxy/src/hlua.c:13340,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13342,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13349,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13351,1
    - Dst: getcwd
      Src: /src/haproxy/src/hlua.c:13364,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13366,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13369,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13372,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13374,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13378,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13380,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:13386,1
    - Dst: hlua_load_state
      Src: /src/haproxy/src/hlua.c:13387,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    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: 13388
      start: 13315
    functionDepth: 2
    functionLinenumber: 13315
    functionLinenumberEnd: 13388
    functionName: hlua_load_per_thread
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - strdup
    - getcwd
    - hlua_load_state
    - realloc
    - memprintf
    - ha_set_thread
    - calloc
    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:13395,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:13396,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:13397,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13398,1
    - Dst: lua_concat
      Src: /src/haproxy/src/hlua.c:13399,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:13400,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - L
    - type
    - path
    argTypes:
    - lua_State*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13404
      start: 13393
    functionDepth: 0
    functionLinenumber: 13393
    functionLinenumberEnd: 13404
    functionName: hlua_prepend_path
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - lua_pop
    - lua_setfield
    - lua_concat
    - lua_pushstring
    - lua_getglobal
    - lua_getfield
    linkageType: ''
    returnType: int
    signature: int hlua_prepend_path(lua_State *L, char *type, char *path)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/hlua.c:13415,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13420,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13426,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13426,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13427,1
    - Dst: calloc
      Src: /src/haproxy/src/hlua.c:13433,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13435,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13438,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13440,1
    - Dst: strdup
      Src: /src/haproxy/src/hlua.c:13443,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13445,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua.c:13448,1
    - Dst: setjmp
      Src: /src/haproxy/src/hlua.c:13458,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13459,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:13460,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13461,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:13464,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:13465,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13467,1
    - Dst: hlua_prepend_path
      Src: /src/haproxy/src/hlua.c:13470,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13472,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13478,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13479,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13481,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 61
    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: 13483
      start: 13406
    functionDepth: 1
    functionLinenumber: 13406
    functionLinenumberEnd: 13483
    functionName: hlua_config_prepend_path
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - strdup
    - too_many_args
    - strcmp
    - exit
    - fprintf
    - LIST_APPEND
    - setjmp
    - free
    - lua_type
    - memprintf
    - lua_atpanic
    - hlua_tostring_safe
    - hlua_prepend_path
    - calloc
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:13514,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua.c:13515,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:13523,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/hlua.c:13527,1
    - Dst: typeof
      Src: /src/haproxy/src/hlua.c:13527,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/hlua.c:13530,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:13540,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13541,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:13541,1
    - Dst: ckch_inst_rebuild
      Src: /src/haproxy/src/hlua.c:13544,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua.c:13548,1
    - Dst: ckch_store_replace
      Src: /src/haproxy/src/hlua.c:13553,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13555,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua.c:13557,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/hlua.c:13562,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua.c:13563,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:13564,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13565,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13566,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:13566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13569
      start: 13512
    functionDepth: 2
    functionLinenumber: 13512
    functionLinenumberEnd: 13569
    functionName: hlua_ckch_commit_yield
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - hlua_yieldk
    - list_for_each_entry_from
    - ckch_inst_rebuild
    - lua_pop
    - lua_touserdata
    - task_wakeup
    - hlua_pushfstring_safe
    - ckch_store_free
    - LIST_APPEND
    - free
    - typeof
    - MAY_LJMP
    - ckch_store_replace
    - HA_SPIN_UNLOCK
    - WILL_LJMP
    - LIST_ELEM
    - lua_error
    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:13596,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13597,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13597,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua.c:13599,1
    - Dst: HLUA_CANT_YIELD
      Src: /src/haproxy/src/hlua.c:13600,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13605,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13605,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/hlua.c:13610,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13611,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13611,1
    - Dst: lua_getfield
      Src: /src/haproxy/src/hlua.c:13613,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13615,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:13619,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/hlua.c:13623,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13625,1
    - Dst: ckchs_dup
      Src: /src/haproxy/src/hlua.c:13631,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13633,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua.c:13642,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua.c:13643,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:13645,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua.c:13646,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13648,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13649,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua.c:13654,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13662,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/hlua.c:13670,1
    - Dst: struct cert_exts*::load
      Src: /src/haproxy/src/hlua.c:13675,1
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:13676,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13680,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:13684,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua.c:13687,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/hlua.c:13694,1
    - Dst: MAY_LJMP
      Src: /src/haproxy/src/hlua.c:13695,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua.c:13695,1
    - Dst: hlua_ckch_commit_yield
      Src: /src/haproxy/src/hlua.c:13701,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/hlua.c:13705,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/hlua.c:13708,1
    - Dst: hlua_pushfstring_safe
      Src: /src/haproxy/src/hlua.c:13709,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13710,1
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13711,1
    - Dst: lua_error
      Src: /src/haproxy/src/hlua.c:13711,1
    - Dst: free
      Src: /src/haproxy/src/hlua.c:13713,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 84
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13716
      start: 13582
    functionDepth: 3
    functionLinenumber: 13582
    functionLinenumberEnd: 13716
    functionName: hlua_ckch_set
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - HA_SPIN_TRYLOCK
    - hlua_yieldk
    - lua_tostring
    - lua_pop
    - task_wakeup
    - ckchs_lookup
    - WILL_LJMP
    - lua_error
    - lua_getfield
    - lua_pushnil
    - strcmp
    - hlua_ckch_commit_yield
    - ckch_store_free
    - luaL_error
    - HA_SPIN_UNLOCK
    - lua_next
    - lua_newuserdata
    - memprintf
    - ckchs_dup
    - OCSP_CERTID_free
    - HLUA_CANT_YIELD
    - struct cert_exts*::load
    - hlua_pushfstring_safe
    - free
    - lua_type
    - MAY_LJMP
    linkageType: ''
    returnType: __LJMP
    signature: __LJMP hlua_ckch_set(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WILL_LJMP
      Src: /src/haproxy/src/hlua.c:13722,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua.c:13722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13725
      start: 13720
    functionDepth: 1
    functionLinenumber: 13720
    functionLinenumberEnd: 13725
    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:13752,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13753,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:13754,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13755,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:13758,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:13759,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13761,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua.c:13764,1
    - Dst: hlua_pushref
      Src: /src/haproxy/src/hlua.c:13765,1
    - Dst: hlua_unref
      Src: /src/haproxy/src/hlua.c:13769,1
    - Dst: lua_resume
      Src: /src/haproxy/src/hlua.c:13772,1
    - Dst: lua_resume
      Src: /src/haproxy/src/hlua.c:13774,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua.c:13780,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:13789,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:13790,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13792,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13794,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:13796,1
    - Dst: lua_settop
      Src: /src/haproxy/src/hlua.c:13812,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua.c:13813,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13814,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:13822,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 58
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13824
      start: 13734
    functionDepth: 3
    functionLinenumber: 13734
    functionLinenumberEnd: 13824
    functionName: hlua_post_init_state
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - exit
    - hlua_unref
    - lua_pop
    - lua_resume
    - hlua_pushref
    - lua_settop
    - fprintf
    - setjmp
    - lua_type
    - hlua_tostring_safe
    - lua_atpanic
    - ha_alert
    - hlua_traceback
    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:13842,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:13849,1
    - Dst: hlua_post_init_state
      Src: /src/haproxy/src/hlua.c:13850,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:13858,1
    - Dst: hlua_init_state
      Src: /src/haproxy/src/hlua.c:13861,1
    - Dst: hlua_load_state
      Src: /src/haproxy/src/hlua.c:13865,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13867,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:13874,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:13880,1
    - Dst: hlua_post_init_state
      Src: /src/haproxy/src/hlua.c:13883,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:13889,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua.c:13900,1
    - Dst: abs
      Src: /src/haproxy/src/hlua.c:13908,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13909,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13916,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua.c:13924,1
    - Dst: abs
      Src: /src/haproxy/src/hlua.c:13932,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13933,1
    - Dst: ha_alert
      Src: /src/haproxy/src/hlua.c:13940,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13957
      start: 13826
    functionDepth: 4
    functionLinenumber: 13826
    functionLinenumberEnd: 13957
    functionName: hlua_post_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - xprt::prepare_srv
    - list_for_each_entry
    - abs
    - hlua_post_init_state
    - hlua_load_state
    - ha_set_thread
    - ha_alert
    - hlua_init_state
    linkageType: ''
    returnType: int
    signature: int hlua_post_init()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/hlua.c:13981,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:13983,1
    - Dst: realloc
      Src: /src/haproxy/src/hlua.c:13985,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/hlua.c:13994,1
    - Dst: old::old
      Src: /src/haproxy/src/hlua.c:13996,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:13997,1
    - Dst: limit::limit
      Src: /src/haproxy/src/hlua.c:13997,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/hlua.c:13999,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua.c:14002,1
    - Dst: realloc
      Src: /src/haproxy/src/hlua.c:14004,1
    - Dst: unlikely
      Src: /src/haproxy/src/hlua.c:14006,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/hlua.c:14007,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/hlua.c:14009,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: 14011
      start: 13973
    functionDepth: 1
    functionLinenumber: 13973
    functionLinenumberEnd: 14011
    functionName: hlua_alloc
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - old::old
    - unlikely
    - _HA_ATOMIC_SUB
    - ha_free
    - __ha_barrier_atomic_store
    - realloc
    - likely
    - limit::limit
    linkageType: ''
    returnType: void
    signature: void *hlua_alloc(void *ud, void *ptr, size_t osize, size_t nsize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lua_newstate
      Src: /src/haproxy/src/hlua.c:14030,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14033,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14036,1
    - Dst: lua_getextraspace
      Src: /src/haproxy/src/hlua.c:14040,1
    - Dst: setjmp
      Src: /src/haproxy/src/hlua.c:14049,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:14050,1
    - Dst: lua_type
      Src: /src/haproxy/src/hlua.c:14051,1
    - Dst: hlua_tostring_safe
      Src: /src/haproxy/src/hlua.c:14052,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14055,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14056,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:14058,1
    - Dst: luaL_openlibs
      Src: /src/haproxy/src/hlua.c:14062,1
    - Dst: hlua_prepend_path
      Src: /src/haproxy/src/hlua.c:14066,1
    - Dst: HLUA_PREPEND_PATH_TOSTRING
      Src: /src/haproxy/src/hlua.c:14066,1
    - Dst: hlua_prepend_path
      Src: /src/haproxy/src/hlua.c:14069,1
    - Dst: HLUA_PREPEND_PATH_TOSTRING
      Src: /src/haproxy/src/hlua.c:14069,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua.c:14075,1
    - Dst: hlua_prepend_path
      Src: /src/haproxy/src/hlua.c:14076,1
    - Dst: lua_getglobal
      Src: /src/haproxy/src/hlua.c:14084,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14085,1
    - Dst: lua_setfield
      Src: /src/haproxy/src/hlua.c:14086,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14095,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14098,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14101,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14103,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14106,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14107,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14108,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14109,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14110,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14111,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14112,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14113,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14114,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14115,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14116,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14117,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14118,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14119,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14120,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14121,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14122,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14123,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14124,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14125,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14126,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14127,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14128,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14129,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14130,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14131,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14132,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14133,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14134,1
    - Dst: hlua_fcn_reg_core_fcn
      Src: /src/haproxy/src/hlua.c:14135,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14137,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14146,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14149,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14150,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14151,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14152,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14153,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14154,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14155,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14156,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14158,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14160,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14169,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14172,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14173,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14174,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14176,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14178,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14179,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14180,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14182,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14191,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14195,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua.c:14197,1
    - Dst: hlua_class_const_int
      Src: /src/haproxy/src/hlua.c:14198,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14202,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14205,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14208,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14209,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14212,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14213,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14215,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua.c:14221,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14222,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua.c:14225,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14228,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14237,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14239,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua.c:14240,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14249,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14252,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14253,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14256,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14257,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14258,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14259,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14260,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14261,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14262,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14263,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14264,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14265,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14266,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14267,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14268,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14269,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14272,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14273,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14274,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14275,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14276,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14278,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14281,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14290,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14293,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14294,1
    - Dst: sample_fetch_getnext
      Src: /src/haproxy/src/hlua.c:14300,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/hlua.c:14304,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14310,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:14311,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14312,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14313,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14316,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14319,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14328,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14331,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14332,1
    - Dst: sample_conv_getnext
      Src: /src/haproxy/src/hlua.c:14338,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/hlua.c:14342,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14348,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua.c:14349,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14350,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14351,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14354,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14357,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14366,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14369,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14370,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14373,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14374,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14375,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14376,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14377,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14378,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14379,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14380,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14381,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14382,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14384,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14385,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14386,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14387,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_rawset
      Src: /src/haproxy/src/hlua.c:14392,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14395,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14404,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14407,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14408,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14411,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14412,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14413,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14414,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14415,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14416,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14417,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14418,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14419,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14420,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14421,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: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14424,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14425,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14426,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14427,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14428,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14429,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14431,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14432,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14433,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14434,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14435,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14436,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14437,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14438,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14440,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14441,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14443,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14446,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14455,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14456,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14457,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14458,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14459,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14460,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14461,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14462,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14463,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14465,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14466,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14467,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14471,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14479,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14482,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14483,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14486,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14487,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14488,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14489,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14490,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14491,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14492,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14493,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14494,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14496,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14499,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14508,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14511,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14512,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14515,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14516,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14517,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14518,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14519,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14520,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14521,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14522,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14523,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14524,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14525,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14527,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14530,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14539,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14542,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14543,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14546,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14547,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14548,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14549,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14550,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14551,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14552,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14553,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14554,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14555,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14556,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14557,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14558,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14559,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14560,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14561,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14562,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14563,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14564,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14565,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14567,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14570,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14577,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14578,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14579,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14580,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14581,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14582,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14583,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua.c:14584,1
    - Dst: luaL_ref
      Src: /src/haproxy/src/hlua.c:14585,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14595,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14598,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua.c:14599,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14602,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14604,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14605,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14606,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14607,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14608,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14609,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14610,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua.c:14611,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14613,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua.c:14616,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua.c:14617,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua.c:14618,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua.c:14621,1
    - Dst: lua_atpanic
      Src: /src/haproxy/src/hlua.c:14623,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 311
    argCount: 1
    argNames:
    - thread_num
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14626
      start: 14017
    functionDepth: 1
    functionLinenumber: 14017
    functionLinenumberEnd: 14626
    functionName: hlua_init_state
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 1
    functionsReached:
    - exit
    - lua_setfield
    - sample_fetch_getnext
    - lua_atpanic
    - hlua_class_const_int
    - lua_pushstring
    - lua_pushcclosure
    - snprintf
    - luaL_openlibs
    - hlua_register_metatable
    - fprintf
    - HLUA_PREPEND_PATH_TOSTRING
    - lua_newtable
    - hlua_class_function
    - hlua_fcn_reg_core_fcn
    - lua_newstate
    - luaL_ref
    - setjmp
    - strlcpy2
    - hlua_tostring_safe
    - lua_setmetatable
    - hlua_prepend_path
    - lua_rawset
    - sample_conv_getnext
    - list_for_each_entry
    - lua_getextraspace
    - lua_pushlightuserdata
    - lua_type
    - lua_setglobal
    - lua_settable
    - lua_pushvalue
    - lua_getglobal
    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: 14064
      start: 14063
    functionDepth: 0
    functionLinenumber: 14063
    functionLinenumberEnd: 14064
    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: 14065
      start: 14064
    functionDepth: 0
    functionLinenumber: 14064
    functionLinenumberEnd: 14065
    functionName: HLUA_PREPEND_PATH_TOSTRING
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HLUA_PREPEND_PATH_TOSTRING(x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LIST_INIT
      Src: /src/haproxy/src/hlua.c:14645,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:14649,1
    - Dst: hlua_init_state
      Src: /src/haproxy/src/hlua.c:14650,1
    - Dst: ha_set_thread
      Src: /src/haproxy/src/hlua.c:14654,1
    - Dst: hlua_init_state
      Src: /src/haproxy/src/hlua.c:14655,1
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/hlua.c:14658,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14660,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14661,1
    - Dst: new_server
      Src: /src/haproxy/src/hlua.c:14665,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14667,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14668,1
    - Dst: new_server
      Src: /src/haproxy/src/hlua.c:14673,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14675,1
    - Dst: exit
      Src: /src/haproxy/src/hlua.c:14676,1
    - Dst: xprt_get
      Src: /src/haproxy/src/hlua.c:14680,1
    - Dst: srv_find_kw
      Src: /src/haproxy/src/hlua.c:14683,1
    - Dst: struct srv_kw*::parse
      Src: /src/haproxy/src/hlua.c:14691,1
    - Dst: fprintf
      Src: /src/haproxy/src/hlua.c:14693,1
    - Dst: abort
      Src: /src/haproxy/src/hlua.c:14694,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14702
      start: 14628
    functionDepth: 2
    functionLinenumber: 14628
    functionLinenumberEnd: 14702
    functionName: hlua_init
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - struct srv_kw*::parse
    - exit
    - fprintf
    - LIST_INIT
    - xprt_get
    - ha_set_thread
    - hlua_init_state
    - abort
    - new_server
    - srv_find_kw
    - alloc_new_proxy
    linkageType: ''
    returnType: void
    signature: void hlua_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/hlua.c:14709,1
    - Dst: release_hlua_reg_filter
      Src: /src/haproxy/src/hlua.c:14710,1
    - Dst: lua_close
      Src: /src/haproxy/src/hlua.c:14714,1
    - Dst: free_proxy
      Src: /src/haproxy/src/hlua.c:14717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14718
      start: 14704
    functionDepth: 2
    functionLinenumber: 14704
    functionLinenumberEnd: 14718
    functionName: hlua_deinit
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - free_proxy
    - list_for_each_entry_safe
    - release_hlua_reg_filter
    - lua_close
    linkageType: ''
    returnType: void
    signature: void hlua_deinit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/hlua.c:14726,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/hlua.c:14727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14728
      start: 14722
    functionDepth: 1
    functionLinenumber: 14722
    functionLinenumberEnd: 14728
    functionName: hlua_register_build_options
    functionSourceFile: /src/haproxy/src/hlua.c
    functionUses: 0
    functionsReached:
    - hap_register_build_opts
    - memprintf
    linkageType: ''
    returnType: void
    signature: void hlua_register_build_options(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:
    - isteq
    - hpack_len_to_bytes
    - hpack_encode_len
    - ist2bin
    - ist2
    - likely
    - memcpy
    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:77,1
    - Dst: __ha_barrier_load
      Src: /src/haproxy/src/listener.c:92,1
    - Dst: pl_cpu_relax
      Src: /src/haproxy/src/listener.c:95,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/listener.c:101,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:104,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:104,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/listener.c:104,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - ring
    argTypes:
    - struct accept_queue_ring*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 107
    functionName: accept_queue_pop_sc
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - __ha_barrier_load
    - _HA_ATOMIC_LOAD
    - unlikely
    - __ha_cpu_relax
    - HA_ATOMIC_CAS
    - pl_cpu_relax
    - __ha_barrier_store
    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:120,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:130,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:130,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/listener.c:130,1
    - Dst: accept_push_cb
      Src: /src/haproxy/src/listener.c:133,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/listener.c:136,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - ring
    - conn
    argTypes:
    - struct accept_queue_ring*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: accept_queue_push_mp
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - unlikely
    - __ha_cpu_relax
    - accept_push_cb
    - __ha_barrier_store
    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:156,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/listener.c:160,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:161,1
    - Dst: struct listener*::bind_conf::accept
      Src: /src/haproxy/src/listener.c:162,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:173,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:174,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:176,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:177,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/listener.c:184,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 187
    functionName: accept_queue_process
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - accept_queue_pop_sc
    - __objt_listener
    - HA_ATOMIC_UPDATE_MAX
    - struct listener*::bind_conf::accept
    - _HA_ATOMIC_INC
    - update_freq_ctr
    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:196,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 207
    functionName: accept_queue_init
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - tasklet_new
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int accept_queue_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_free
      Src: /src/haproxy/src/listener.c:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 218
    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:230,1
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:234,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/listener.c:239,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/listener.c:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - li
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 246
    functionName: li_init_per_thr
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - MT_LIST_INIT
    - calloc
    - MIN
    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: 258
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 258
    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:272,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:278,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:281,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:286,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:297,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:298,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:301,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:302,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:307,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:308,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 2
    argNames:
    - l
    - st
    argTypes:
    - struct listener*
    - enum li_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 314
    functionName: listener_set_state
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 4
    functionsReached:
    - _HA_ATOMIC_DEC
    - BUG_ON
    - _HA_ATOMIC_INC
    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:324,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/listener.c:331,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:334,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/listener.c:340,1
    - Dst: struct listener*::rx::proto::enable
      Src: /src/haproxy/src/listener.c:343,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:344,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:347,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:351,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 352
    functionName: enable_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - struct listener*::rx::proto::enable
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - BUG_ON
    - do_unbind_listener
    - listener_set_state
    linkageType: ''
    returnType: void
    signature: void enable_listener(struct listener *listener)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:375,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/listener.c:378,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:381,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/listener.c:384,1
    - Dst: __delete_listener
      Src: /src/haproxy/src/listener.c:387,1
    - Dst: proxy_cond_disable
      Src: /src/haproxy/src/listener.c:390,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:394,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/listener.c:397,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:400,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: 401
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 401
    functionName: stop_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - __delete_listener
    - proxy_cond_disable
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - do_unbind_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:412,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - px
    - from
    argTypes:
    - struct proxy*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 418
    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:429,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - proto
    - listener
    argTypes:
    - struct protocol*
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 433
    functionName: default_add_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - listener_set_state
    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:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 448
    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:469,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:472,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:474,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:475,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:486,1
    - Dst: struct listener*::rx::proto::listen
      Src: /src/haproxy/src/listener.c:487,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:489,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:491,1
    - Dst: struct listener*::rx::proto::rx_resume
      Src: /src/haproxy/src/listener.c:505,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 509
    functionName: default_resume_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - struct listener*::rx::proto::listen
    - struct listener*::rx::proto::fam::bind
    - struct listener*::rx::proto::rx_resume
    - ha_free
    - BUG_ON
    - ha_alert
    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:531,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:534,1
    - Dst: struct listener*::rx::proto::suspend
      Src: /src/haproxy/src/listener.c:540,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/listener.c:548,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:554,1
    - Dst: proxy_cond_pause
      Src: /src/haproxy/src/listener.c:567,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:568,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/listener.c:568,1
    - Dst: send_log
      Src: /src/haproxy/src/listener.c:569,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/listener.c:569,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:573,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:576,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 3
    argNames:
    - l
    - lpx
    - lli
    argTypes:
    - struct listener*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 579
    functionName: suspend_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - ha_warning
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - proxy_cond_pause
    - listener_set_state
    - send_log
    - proxy_cap_str
    - 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:601,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:604,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/listener.c:609,1
    - Dst: struct listener*::rx::proto::resume
      Src: /src/haproxy/src/listener.c:616,1
    - Dst: struct listener*::rx::proto::disable
      Src: /src/haproxy/src/listener.c:622,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:623,1
    - Dst: struct listener*::rx::proto::enable
      Src: /src/haproxy/src/listener.c:627,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:628,1
    - Dst: proxy_cond_resume
      Src: /src/haproxy/src/listener.c:637,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:638,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/listener.c:638,1
    - Dst: send_log
      Src: /src/haproxy/src/listener.c:639,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/listener.c:639,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:643,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:646,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 42
    argCount: 3
    argNames:
    - l
    - lpx
    - lli
    argTypes:
    - struct listener*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 595
    functionDepth: 2
    functionLinenumber: 595
    functionLinenumberEnd: 649
    functionName: resume_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - struct listener*::rx::proto::disable
    - MT_LIST_INLIST
    - HA_RWLOCK_WRLOCK
    - struct listener*::rx::proto::enable
    - HA_RWLOCK_WRUNLOCK
    - send_log
    - proxy_cap_str
    - struct listener*::rx::proto::resume
    - proxy_cond_resume
    - listener_set_state
    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:667,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:670,1
    - Dst: resume_listener
      Src: /src/haproxy/src/listener.c:674,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:678,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:681,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - l
    - lpx
    - lli
    argTypes:
    - struct listener*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 661
    functionDepth: 3
    functionLinenumber: 661
    functionLinenumberEnd: 684
    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:691,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/listener.c:693,1
    - Dst: struct listener*::rx::proto::disable
      Src: /src/haproxy/src/listener.c:695,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:696,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 700
    functionName: listener_full
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - struct listener*::rx::proto::disable
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - listener_set_state
    linkageType: ''
    returnType: void
    signature: void listener_full(struct listener *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:707,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/listener.c:709,1
    - Dst: struct listener*::rx::proto::disable
      Src: /src/haproxy/src/listener.c:710,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:711,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - l
    - list
    argTypes:
    - struct listener*
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 705
    functionDepth: 2
    functionLinenumber: 705
    functionLinenumberEnd: 714
    functionName: limit_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - MT_LIST_TRY_APPEND
    - struct listener*::rx::proto::disable
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - listener_set_state
    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:721,1
    - Dst: relax_listener
      Src: /src/haproxy/src/listener.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 717
    functionDepth: 4
    functionLinenumber: 717
    functionLinenumberEnd: 727
    functionName: dequeue_all_listeners
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 1
    functionsReached:
    - MT_LIST_POP
    - relax_listener
    linkageType: ''
    returnType: void
    signature: void dequeue_all_listeners()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/listener.c:738,1
    - Dst: relax_listener
      Src: /src/haproxy/src/listener.c:742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - px
    - lpx
    argTypes:
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 734
    functionDepth: 4
    functionLinenumber: 734
    functionLinenumberEnd: 744
    functionName: dequeue_proxy_listeners
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - MT_LIST_POP
    - relax_listener
    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:758,1
    - Dst: struct listener*::rx::proto::disable
      Src: /src/haproxy/src/listener.c:763,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:765,1
    - Dst: struct listener*::rx::proto::rx_unbind
      Src: /src/haproxy/src/listener.c:770,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 752
    functionDepth: 2
    functionLinenumber: 752
    functionLinenumberEnd: 771
    functionName: default_unbind_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - listener_set_state
    - struct listener*::rx::proto::rx_unbind
    - struct listener*::rx::proto::disable
    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:781,1
    - Dst: struct listener*::rx::proto::unbind
      Src: /src/haproxy/src/listener.c:784,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 789
    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:799,1
    - Dst: do_unbind_listener
      Src: /src/haproxy/src/listener.c:800,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 797
    functionDepth: 3
    functionLinenumber: 797
    functionLinenumberEnd: 802
    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:819,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:821,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:825,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:826,1
    - Dst: memcpy
      Src: /src/haproxy/src/listener.c:837,1
    - Dst: struct protocol*::fam::set_port
      Src: /src/haproxy/src/listener.c:839,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/listener.c:841,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/listener.c:842,1
    - Dst: struct protocol*::add
      Src: /src/haproxy/src/listener.c:844,1
    - Dst: guid_init
      Src: /src/haproxy/src/listener.c:849,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/listener.c:853,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:854,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:855,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: 858
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 858
    functionName: create_listeners
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - struct protocol*::fam::set_port
    - LIST_APPEND
    - guid_init
    - memprintf
    - MT_LIST_INIT
    - _HA_ATOMIC_INC
    - listener_set_state
    - struct protocol*::add
    - calloc
    - memcpy
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:875,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:883,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/listener.c:885,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/listener.c:886,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - rx
    - si
    argTypes:
    - struct receiver*
    - struct shard_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 889
    functionName: shard_info_attach
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - my_popcountl
    - calloc
    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:911,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/listener.c:913,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/listener.c:915,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 927
    functionName: shard_info_detach
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - my_popcountl
    - BUG_ON
    - free
    linkageType: ''
    returnType: void
    signature: void shard_info_detach(struct receiver *rx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:943,1
    - Dst: memcpy
      Src: /src/haproxy/src/listener.c:946,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:950,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:955,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:966,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:967,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/listener.c:969,1
    - Dst: struct listener*::rx::proto::add
      Src: /src/haproxy/src/listener.c:971,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/listener.c:973,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:974,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:975,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:980,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:982,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 985
    functionName: clone_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - strdup
    - struct listener*::rx::proto::add
    - LIST_APPEND
    - free
    - MT_LIST_INIT
    - _HA_ATOMIC_INC
    - calloc
    - memcpy
    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:997,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/listener.c:998,1
    - Dst: shard_info_detach
      Src: /src/haproxy/src/listener.c:999,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1001,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1002,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 994
    functionDepth: 2
    functionLinenumber: 994
    functionLinenumberEnd: 1004
    functionName: __delete_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 1
    functionsReached:
    - listener_set_state
    - _HA_ATOMIC_DEC
    - LIST_DELETE
    - shard_info_detach
    linkageType: ''
    returnType: void
    signature: void __delete_listener(struct listener *listener)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/listener.c:1012,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:1013,1
    - Dst: __delete_listener
      Src: /src/haproxy/src/listener.c:1014,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:1015,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/listener.c:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - listener
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1010
    functionDepth: 3
    functionLinenumber: 1010
    functionLinenumberEnd: 1017
    functionName: delete_listener
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - __delete_listener
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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: 1038
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1038
    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: 1044
      start: 1041
    functionDepth: 0
    functionLinenumber: 1041
    functionLinenumberEnd: 1044
    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:1071,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1073,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1075,1
    - Dst: next_event_delay
      Src: /src/haproxy/src/listener.c:1075,1
    - Dst: freq_ctr_remain
      Src: /src/haproxy/src/listener.c:1084,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1086,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1088,1
    - Dst: next_event_delay
      Src: /src/haproxy/src/listener.c:1088,1
    - Dst: freq_ctr_remain
      Src: /src/haproxy/src/listener.c:1098,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1100,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1102,1
    - Dst: next_event_delay
      Src: /src/haproxy/src/listener.c:1102,1
    - Dst: freq_ctr_remain
      Src: /src/haproxy/src/listener.c:1115,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1117,1
    - Dst: next_event_delay
      Src: /src/haproxy/src/listener.c:1121,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1127,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1151,1
    - Dst: listener_full
      Src: /src/haproxy/src/listener.c:1156,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:1160,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1165,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:1174,1
    - Dst: listener_uses_maxconn
      Src: /src/haproxy/src/listener.c:1177,1
    - Dst: increment_actconn
      Src: /src/haproxy/src/listener.c:1178,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1183,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/listener.c:1195,1
    - Dst: struct listener*::rx::proto::accept_conn
      Src: /src/haproxy/src/listener.c:1197,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/listener.c:1198,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1206,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1208,1
    - Dst: listener_uses_maxconn
      Src: /src/haproxy/src/listener.c:1209,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1210,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1224,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1227,1
    - Dst: proxy_inc_fe_conn_ctr
      Src: /src/haproxy/src/listener.c:1228,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:1232,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1233,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1236,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1241,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1241,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1242,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1262,1
    - Dst: atleast2
      Src: /src/haproxy/src/listener.c:1263,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1311,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1331,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1335,1
    - Dst: my_ffsl
      Src: /src/haproxy/src/listener.c:1347,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1381,1
    - Dst: nbits
      Src: /src/haproxy/src/listener.c:1382,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1385,1
    - Dst: my_flsl
      Src: /src/haproxy/src/listener.c:1401,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1411,1
    - Dst: accept_queue_ring_len
      Src: /src/haproxy/src/listener.c:1419,1
    - Dst: accept_queue_ring_len
      Src: /src/haproxy/src/listener.c:1420,1
    - Dst: accept_queue_ring_len
      Src: /src/haproxy/src/listener.c:1421,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1424,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1426,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1427,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1429,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/listener.c:1430,1
    - Dst: likely
      Src: /src/haproxy/src/listener.c:1497,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/listener.c:1497,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/listener.c:1501,1
    - Dst: struct listener*::rx::proto::bind_tid_prep
      Src: /src/haproxy/src/listener.c:1515,1
    - Dst: accept_queue_push_mp
      Src: /src/haproxy/src/listener.c:1528,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1530,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1531,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1534,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/listener.c:1535,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1542,1
    - Dst: struct listener*::rx::proto::bind_tid_reset
      Src: /src/haproxy/src/listener.c:1545,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/listener.c:1552,1
    - Dst: struct listener*::bind_conf::accept
      Src: /src/haproxy/src/listener.c:1553,1
    - Dst: unlikely
      Src: /src/haproxy/src/listener.c:1554,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:1571,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1572,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/listener.c:1577,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/listener.c:1578,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/listener.c:1582,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1587,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1590,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1593,1
    - Dst: tick_isset
      Src: /src/haproxy/src/listener.c:1598,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/listener.c:1599,1
    - Dst: relax_listener
      Src: /src/haproxy/src/listener.c:1601,1
    - Dst: dequeue_all_listeners
      Src: /src/haproxy/src/listener.c:1604,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/listener.c:1606,1
    - Dst: COUNTERS_SHARED_TOTAL_ARG2
      Src: /src/haproxy/src/listener.c:1607,1
    - Dst: dequeue_proxy_listeners
      Src: /src/haproxy/src/listener.c:1608,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1614,1
    - Dst: struct listener*::rx::proto::rx_listening
      Src: /src/haproxy/src/listener.c:1619,1
    - Dst: suspend_listener
      Src: /src/haproxy/src/listener.c:1620,1
    - Dst: limit_listener
      Src: /src/haproxy/src/listener.c:1628,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/listener.c:1629,1
    - Dst: task_schedule
      Src: /src/haproxy/src/listener.c:1630,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/listener.c:1631,1
    - Dst: limit_listener
      Src: /src/haproxy/src/listener.c:1638,1
    - Dst: tick_isset
      Src: /src/haproxy/src/listener.c:1639,1
    - Dst: task_schedule
      Src: /src/haproxy/src/listener.c:1640,1
    CyclomaticComplexity: 140
    EdgeCount: 140
    ICount: 330
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1050
    functionDepth: 5
    functionLinenumber: 1050
    functionLinenumberEnd: 1642
    functionName: listener_accept
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 2
    functionsReached:
    - unlikely
    - COUNTERS_SHARED_TOTAL_ARG2
    - _HA_ATOMIC_INC
    - accept_queue_ring_len
    - update_freq_ctr
    - struct listener*::rx::proto::bind_tid_reset
    - my_flsl
    - tick_is_expired
    - HA_ATOMIC_UPDATE_MAX
    - tick_isset
    - proxy_inc_fe_conn_ctr
    - suspend_listener
    - likely
    - struct listener*::rx::proto::bind_tid_prep
    - accept_queue_push_mp
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_DEC
    - tasklet_wakeup
    - freq_ctr_remain
    - listener_uses_maxconn
    - MT_LIST_ISEMPTY
    - next_event_delay
    - my_ffsl
    - HA_RWLOCK_RDUNLOCK
    - listener_full
    - task_schedule
    - limit_listener
    - HA_RWLOCK_RDLOCK
    - increment_actconn
    - dequeue_all_listeners
    - tick_add
    - _HA_ATOMIC_LOAD
    - struct listener*::rx::proto::rx_listening
    - dequeue_proxy_listeners
    - __ha_cpu_relax
    - _HA_ATOMIC_AND
    - relax_listener
    - struct listener*::bind_conf::accept
    - atleast2
    - struct listener*::rx::proto::accept_conn
    - nbits
    linkageType: ''
    returnType: void
    signature: void listener_accept(struct listener *l)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: listener_uses_maxconn
      Src: /src/haproxy/src/listener.c:1652,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1653,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1655,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1656,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/listener.c:1657,1
    - Dst: relax_listener
      Src: /src/haproxy/src/listener.c:1660,1
    - Dst: dequeue_all_listeners
      Src: /src/haproxy/src/listener.c:1663,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/listener.c:1665,1
    - Dst: COUNTERS_SHARED_TOTAL_ARG2
      Src: /src/haproxy/src/listener.c:1666,1
    - Dst: dequeue_proxy_listeners
      Src: /src/haproxy/src/listener.c:1667,1
    - Dst: COUNTERS_SHARED_TOTAL_ARG2
      Src: /src/haproxy/src/listener.c:1673,1
    - Dst: tick_first
      Src: /src/haproxy/src/listener.c:1679,1
    - Dst: tick_add
      Src: /src/haproxy/src/listener.c:1679,1
    - Dst: tick_isset
      Src: /src/haproxy/src/listener.c:1680,1
    - Dst: task_schedule
      Src: /src/haproxy/src/listener.c:1681,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 19
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1648
    functionDepth: 5
    functionLinenumber: 1648
    functionLinenumberEnd: 1684
    functionName: listener_release
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_DEC
    - tick_add
    - COUNTERS_SHARED_TOTAL_ARG2
    - listener_uses_maxconn
    - MT_LIST_ISEMPTY
    - dequeue_proxy_listeners
    - tick_isset
    - tick_first
    - task_schedule
    - relax_listener
    - dequeue_all_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:1689,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1691,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/listener.c:1697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1687
    functionDepth: 1
    functionLinenumber: 1687
    functionLinenumberEnd: 1700
    functionName: listener_queue_init
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - task_new_anywhere
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int listener_queue_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_destroy
      Src: /src/haproxy/src/listener.c:1704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1706
    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:1723,1
    - Dst: dequeue_all_listeners
      Src: /src/haproxy/src/listener.c:1732,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/listener.c:1735,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/listener.c:1737,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1717
    functionDepth: 5
    functionLinenumber: 1717
    functionLinenumberEnd: 1739
    functionName: manage_global_listener_queue
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - unlikely
    - dequeue_all_listeners
    linkageType: ''
    returnType: struct task
    signature: struct task *manage_global_listener_queue(struct task *t, void *context,
      unsigned int state)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: thread_resolve_group_mask
      Src: /src/haproxy/src/listener.c:1758,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1759,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1760,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:1762,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:1768,1
    - Dst: thread_set_count
      Src: /src/haproxy/src/listener.c:1770,1
    - Dst: protocol_supports_flag
      Src: /src/haproxy/src/listener.c:1774,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/listener.c:1778,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1780,1
    - Dst: protocol_supports_flag
      Src: /src/haproxy/src/listener.c:1785,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/listener.c:1785,1
    - Dst: protocol_supports_flag
      Src: /src/haproxy/src/listener.c:1792,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:1793,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1794,1
    - Dst: memset
      Src: /src/haproxy/src/listener.c:1802,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/listener.c:1825,1
    - Dst: thread_set_nth_tmask
      Src: /src/haproxy/src/listener.c:1838,1
    - Dst: thread_set_nth_group
      Src: /src/haproxy/src/listener.c:1839,1
    - Dst: shard_info_attach
      Src: /src/haproxy/src/listener.c:1843,1
    - Dst: clone_listener
      Src: /src/haproxy/src/listener.c:1852,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1855,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1856,1
    - Dst: shard_info_attach
      Src: /src/haproxy/src/listener.c:1866,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1867,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1868,1
    - Dst: ceb32_item_delete
      Src: /src/haproxy/src/listener.c:1874,1
    - Dst: listener_index_id
      Src: /src/haproxy/src/listener.c:1878,1
    - Dst: clone_listener
      Src: /src/haproxy/src/listener.c:1889,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1891,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/listener.c:1892,1
    - Dst: ceb32_item_delete
      Src: /src/haproxy/src/listener.c:1898,1
    - Dst: listener_index_id
      Src: /src/haproxy/src/listener.c:1902,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 95
    argCount: 2
    argNames:
    - bind_conf
    - err_code
    argTypes:
    - struct bind_conf*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1747
    functionDepth: 2
    functionLinenumber: 1747
    functionLinenumberEnd: 1908
    functionName: bind_complete_thread_setup
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - clone_listener
    - ha_diag_warning
    - my_popcountl
    - ha_warning
    - memset
    - list_for_each_entry
    - thread_resolve_group_mask
    - thread_set_nth_tmask
    - thread_set_nth_group
    - ceb32_item_delete
    - listener_index_id
    - thread_set_count
    - BUG_ON
    - protocol_supports_flag
    - free
    - shard_info_attach
    - ha_alert
    - proxy_type_str
    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:1923,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1925,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/listener.c:1930,1
    - Dst: guid_insert
      Src: /src/haproxy/src/listener.c:1933,1
    - Dst: b_head
      Src: /src/haproxy/src/listener.c:1933,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:1934,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:1937,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1945
      start: 1915
    functionDepth: 1
    functionLinenumber: 1915
    functionLinenumberEnd: 1945
    functionName: bind_generate_guid
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - chunk_printf
    - ha_free
    - b_head
    - ha_alert
    - guid_insert
    linkageType: ''
    returnType: int
    signature: int bind_generate_guid(struct bind_conf *bind_conf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:1953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct bind_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1951
    functionDepth: 1
    functionLinenumber: 1951
    functionLinenumberEnd: 1954
    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:1970,1
    - Dst: strlen
      Src: /src/haproxy/src/listener.c:1972,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:1974,1
    - Dst: strncmp
      Src: /src/haproxy/src/listener.c:1976,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1963
    functionDepth: 0
    functionLinenumber: 1963
    functionLinenumberEnd: 1986
    functionName: bind_find_kw
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 2
    functionsReached:
    - strlen
    - strncmp
    - list_for_each_entry
    - strchr
    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:2001,1
    - Dst: bind_find_kw
      Src: /src/haproxy/src/listener.c:2004,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2005,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2013
      start: 1992
    functionDepth: 1
    functionLinenumber: 1992
    functionLinenumberEnd: 2013
    functionName: bind_dump_kws
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - bind_find_kw
    linkageType: ''
    returnType: void
    signature: void bind_dump_kws(char **out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/listener.c:2028,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2029,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/listener.c:2031,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/listener.c:2032,1
    - Dst: strlen
      Src: /src/haproxy/src/listener.c:2040,1
    - Dst: strlen
      Src: /src/haproxy/src/listener.c:2040,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2019
    functionDepth: 1
    functionLinenumber: 2019
    functionLinenumberEnd: 2044
    functionName: bind_find_best_kw
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 2
    functionsReached:
    - list_for_each_entry
    - strlen
    - make_word_fingerprint
    - word_fingerprint_distance
    linkageType: ''
    returnType: char
    signature: char *bind_find_best_kw(const char *word)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/listener.c:2053,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2058,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2063,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/listener.c:2068,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/listener.c:2078,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/listener.c:2087,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:2101,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:2102,1
    - Dst: ha_free
      Src: /src/haproxy/src/listener.c:2104,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: 2106
      start: 2050
    functionDepth: 1
    functionLinenumber: 2050
    functionLinenumberEnd: 2106
    functionName: bind_conf_alloc
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 3
    functionsReached:
    - HA_RWLOCK_INIT
    - strdup
    - ha_free
    - LIST_APPEND
    - LIST_INIT
    - calloc
    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: 2118
      start: 2108
    functionDepth: 0
    functionLinenumber: 2108
    functionLinenumberEnd: 2118
    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: 2131
      start: 2125
    functionDepth: 0
    functionLinenumber: 2125
    functionLinenumberEnd: 2131
    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: 2140
      start: 2134
    functionDepth: 0
    functionLinenumber: 2134
    functionLinenumberEnd: 2140
    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:2150,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: 2152
      start: 2141
    functionDepth: 0
    functionLinenumber: 2141
    functionLinenumberEnd: 2152
    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: 2159
      start: 2155
    functionDepth: 0
    functionLinenumber: 2155
    functionLinenumberEnd: 2159
    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:2167,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2171,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2173,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: 2180
      start: 2162
    functionDepth: 1
    functionLinenumber: 2162
    functionLinenumberEnd: 2180
    functionName: bind_parse_accept_netscaler_cip
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    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:2188,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2192,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2194,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: 2200
      start: 2183
    functionDepth: 1
    functionLinenumber: 2183
    functionLinenumberEnd: 2200
    functionName: bind_parse_backlog
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    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:2208,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2212,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2214,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: 2220
      start: 2203
    functionDepth: 1
    functionLinenumber: 2203
    functionLinenumberEnd: 2220
    functionName: bind_parse_guid_prefix
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    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:2229,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2234,1
    - Dst: LIST_NEXT::LIST_NEXT
      Src: /src/haproxy/src/listener.c:2238,1
    - Dst: strtol
      Src: /src/haproxy/src/listener.c:2239,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2241,1
    - Dst: luid::luid
      Src: /src/haproxy/src/listener.c:2245,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2246,1
    - Dst: ceb32_item_lookup
      Src: /src/haproxy/src/listener.c:2250,1
    - Dst: luid::luid
      Src: /src/haproxy/src/listener.c:2250,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2252,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: 2260
      start: 2223
    functionDepth: 1
    functionLinenumber: 2223
    functionLinenumberEnd: 2260
    functionName: bind_parse_id
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - LIST_NEXT::LIST_NEXT
    - luid::luid
    - memprintf
    - ceb32_item_lookup
    - strtol
    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:2271,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/listener.c:2275,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2277,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2282,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2287,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: 2298
      start: 2263
    functionDepth: 1
    functionLinenumber: 2263
    functionLinenumberEnd: 2298
    functionName: bind_parse_idle_ping
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    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:2315,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2321,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2329,1
    - Dst: struct bind_kw*::parse
      Src: /src/haproxy/src/listener.c:2335,1
    - Dst: indent_msg
      Src: /src/haproxy/src/listener.c:2340,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:2342,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2344,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2347,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:2350,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:2355,1
    - Dst: bind_find_best_kw
      Src: /src/haproxy/src/listener.c:2360,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2362,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2365,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2374,1
    - Dst: xprt_get
      Src: /src/haproxy/src/listener.c:2389,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:2392,1
    - Dst: quic_transport_params_init
      Src: /src/haproxy/src/listener.c:2395,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2398,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/listener.c:2399,1
    - Dst: ha_warning
      Src: /src/haproxy/src/listener.c:2400,1
    - Dst: ha_alert
      Src: /src/haproxy/src/listener.c:2408,1
    - Dst: xprt_get
      Src: /src/haproxy/src/listener.c:2415,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: 2420
      start: 2307
    functionDepth: 2
    functionLinenumber: 2307
    functionLinenumberEnd: 2420
    functionName: bind_parse_args_list
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - list_for_each_entry
    - bind_find_kw
    - struct bind_kw*::parse
    - free
    - xprt_get
    - quic_transport_params_init
    - ha_alert
    - indent_msg
    - bind_find_best_kw
    - is_inet_addr
    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:2428,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2432,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2434,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: 2440
      start: 2423
    functionDepth: 1
    functionLinenumber: 2423
    functionLinenumberEnd: 2440
    functionName: bind_parse_maxconn
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    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:2448,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2452,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2453,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2455,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: 2461
      start: 2443
    functionDepth: 1
    functionLinenumber: 2443
    functionLinenumberEnd: 2461
    functionName: bind_parse_name
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - memprintf
    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:2469,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/listener.c:2473,1
    - Dst: free
      Src: /src/haproxy/src/listener.c:2474,1
    - Dst: strdup
      Src: /src/haproxy/src/listener.c:2475,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2477,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: 2483
      start: 2464
    functionDepth: 1
    functionLinenumber: 2464
    functionLinenumberEnd: 2483
    functionName: bind_parse_label
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - free
    - memprintf
    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:2493,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/listener.c:2497,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/listener.c:2499,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2501,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2506,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2510,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2512,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: 2518
      start: 2486
    functionDepth: 1
    functionLinenumber: 2486
    functionLinenumberEnd: 2518
    functionName: bind_parse_nbconn
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - LIST_NEXT
    - memprintf
    - atol
    - 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:2526,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2530,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2532,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: 2538
      start: 2521
    functionDepth: 1
    functionLinenumber: 2521
    functionLinenumberEnd: 2538
    functionName: bind_parse_nice
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    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:2543,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: 2545
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2545
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2553,1
    - Dst: ist
      Src: /src/haproxy/src/listener.c:2557,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/listener.c:2558,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2560,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: 2564
      start: 2548
    functionDepth: 1
    functionLinenumber: 2548
    functionLinenumberEnd: 2564
    functionName: bind_parse_proto
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - get_mux_proto
    - memprintf
    - ist
    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:2572,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2576,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2578,1
    - Dst: atol
      Src: /src/haproxy/src/listener.c:2581,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2583,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: 2590
      start: 2567
    functionDepth: 1
    functionLinenumber: 2567
    functionLinenumberEnd: 2590
    functionName: bind_parse_shards
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    - 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:2601,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/listener.c:2604,1
    - Dst: atleast2
      Src: /src/haproxy/src/listener.c:2606,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2607,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: 2612
      start: 2593
    functionDepth: 1
    functionLinenumber: 2593
    functionLinenumberEnd: 2612
    functionName: bind_parse_thread
    functionSourceFile: /src/haproxy/src/listener.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atleast2
    - 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:2619,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2622,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2624,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2626,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2629,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: 2633
      start: 2615
    functionDepth: 1
    functionLinenumber: 2615
    functionLinenumberEnd: 2633
    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:2640,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2643,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2645,1
    - Dst: strcmp
      Src: /src/haproxy/src/listener.c:2647,1
    - Dst: memprintf
      Src: /src/haproxy/src/listener.c:2650,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: 2654
      start: 2636
    functionDepth: 1
    functionLinenumber: 2636
    functionLinenumberEnd: 2654
    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_CAS
    - MT_LIST_APPEND
    - BUG_ON
    - wake_thread
    - _HA_ATOMIC_INC
    - 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_CAS
    - MT_LIST_APPEND
    - BUG_ON
    - wake_thread
    - _HA_ATOMIC_INC
    - 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: _HA_ATOMIC_OR
      Src: /src/haproxy/src/task.c:151,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:152,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:156,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:160,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:163,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/task.c:166,1
    - Dst: list_to_mt_list
      Src: /src/haproxy/src/task.c:166,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:167,1
    - Dst: wake_thread
      Src: /src/haproxy/src/task.c:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - tl
    - thr
    argTypes:
    - struct tasklet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 170
    functionName: __tasklet_wakeup_on
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - MT_LIST_APPEND
    - _HA_ATOMIC_INC
    - LIST_APPEND
    - wake_thread
    - _HA_ATOMIC_OR
    - 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:178,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:182,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:186,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/task.c:190,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:191,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:195,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/task.c:199,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:204,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:206,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - head
    - tl
    argTypes:
    - struct list*
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 208
    functionName: __tasklet_wakeup_after
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - LIST_INSERT
    - BUG_ON
    - LIST_APPEND
    - _HA_ATOMIC_OR
    - _HA_ATOMIC_INC
    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:227,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/task.c:228,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/task.c:230,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/task.c:231,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:235,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/task.c:236,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:239,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:242,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:247,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/task.c:248,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/task.c:250,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/task.c:254,1
    - Dst: wake_thread
      Src: /src/haproxy/src/task.c:259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 263
    functionName: __task_wakeup
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_ADD_FETCH
    - _HA_ATOMIC_LOAD
    - now_mono_time
    - HA_SPIN_LOCK
    - likely
    - _HA_ATOMIC_INC
    - eb32_insert
    - HA_SPIN_UNLOCK
    - wake_thread
    - __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:283,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:290,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:292,1
    - Dst: task_in_wq
      Src: /src/haproxy/src/task.c:292,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:293,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/task.c:298,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/task.c:303,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 2
    argNames:
    - task
    - wq
    argTypes:
    - struct task*
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 304
    functionName: __task_queue
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - tick_is_lt
    - __task_unlink_wq
    - BUG_ON
    - task_in_wq
    - eb32_insert
    - likely
    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:322,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:328,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:329,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:351,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/task.c:352,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:354,1
    - Dst: _task_wakeup
      Src: /src/haproxy/src/task.c:355,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:361,1
    - Dst: tick_isset
      Src: /src/haproxy/src/task.c:362,1
    - Dst: __task_queue
      Src: /src/haproxy/src/task.c:363,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:367,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:373,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/task.c:376,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:377,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:379,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:380,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/task.c:381,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/task.c:387,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/task.c:388,1
    - Dst: HA_RWLOCK_TRYRDTOSK
      Src: /src/haproxy/src/task.c:394,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/task.c:398,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:406,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:412,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:413,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:417,1
    - Dst: HA_ATOMIC_FETCH_OR
      Src: /src/haproxy/src/task.c:432,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/task.c:435,1
    - Dst: HA_RWLOCK_SKTOWR
      Src: /src/haproxy/src/task.c:437,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:438,1
    - Dst: HA_RWLOCK_WRTOSK
      Src: /src/haproxy/src/task.c:439,1
    - Dst: task_drop_running
      Src: /src/haproxy/src/task.c:440,1
    - Dst: HA_RWLOCK_SKTOWR
      Src: /src/haproxy/src/task.c:446,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/task.c:447,1
    - Dst: tick_isset
      Src: /src/haproxy/src/task.c:448,1
    - Dst: __task_queue
      Src: /src/haproxy/src/task.c:449,1
    - Dst: HA_RWLOCK_WRTOSK
      Src: /src/haproxy/src/task.c:450,1
    - Dst: task_drop_running
      Src: /src/haproxy/src/task.c:451,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/task.c:456,1
    - Dst: task_drop_running
      Src: /src/haproxy/src/task.c:457,1
    - Dst: HA_RWLOCK_SKUNLOCK
      Src: /src/haproxy/src/task.c:462,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 466
    functionName: wake_expired_tasks
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - _task_wakeup
    - eb32_lookup_ge
    - __task_unlink_wq
    - eb_is_empty
    - task_drop_running
    - tick_is_expired
    - eb32_entry
    - tick_isset
    - likely
    - HA_RWLOCK_SKUNLOCK
    - tick_is_lt
    - BUG_ON
    - HA_RWLOCK_WRTOSK
    - HA_RWLOCK_RDUNLOCK
    - HA_RWLOCK_RDLOCK
    - eb32_first
    - __task_queue
    - HA_RWLOCK_TRYRDTOSK
    - HA_RWLOCK_SKTOWR
    - HA_ATOMIC_FETCH_OR
    linkageType: ''
    returnType: void
    signature: void wake_expired_tasks()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:480,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:486,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:493,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/task.c:494,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:495,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:497,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/task.c:500,1
    - Dst: tick_first
      Src: /src/haproxy/src/task.c:502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 506
    functionName: next_timer_expiry
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - eb32_lookup_ge
    - eb32_first
    - HA_RWLOCK_RDUNLOCK
    - tick_first
    - eb_is_empty
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int next_timer_expiry()
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:530,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:539,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/task.c:541,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:546,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:548,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:548,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/task.c:554,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/task.c:569,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/task.c:583,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:584,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/task.c:590,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:592,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/task.c:593,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/task.c:596,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/task.c:599,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/task.c:601,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/task.c:602,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/task.c:603,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:613,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:615,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/task.c:616,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:617,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/task.c:619,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/task.c:621,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/task.c:625,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:634,1
    - Dst: pool_free
      Src: /src/haproxy/src/task.c:637,1
    - Dst: task_unlink_wq
      Src: /src/haproxy/src/task.c:639,1
    - Dst: __task_free
      Src: /src/haproxy/src/task.c:640,1
    - Dst: process
      Src: /src/haproxy/src/task.c:653,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/task.c:655,1
    - Dst: process_stream
      Src: /src/haproxy/src/task.c:660,1
    - Dst: process
      Src: /src/haproxy/src/task.c:662,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:668,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:669,1
    - Dst: task_unlink_wq
      Src: /src/haproxy/src/task.c:670,1
    - Dst: __task_free
      Src: /src/haproxy/src/task.c:671,1
    - Dst: task_queue
      Src: /src/haproxy/src/task.c:674,1
    - Dst: task_drop_running
      Src: /src/haproxy/src/task.c:675,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/task.c:683,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:686,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:687,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/task.c:687,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:689,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:691,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:693,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 110
    argCount: 1
    argNames:
    - budgets
    argTypes:
    - unsigned int[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 700
    functionName: run_tasks_from_lists
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_ADD
    - HA_ATOMIC_INC
    - unlikely
    - pool_free
    - __ha_barrier_atomic_store
    - eb_is_empty
    - __ha_barrier_store
    - task_drop_running
    - now_mono_time
    - sched_activity_entry
    - __task_free
    - LIST_ISEMPTY
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_DEC
    - task_unlink_wq
    - MT_LIST_ISEMPTY
    - process_stream
    - LIST_DEL_INIT
    - process
    - LIST_ELEM
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - __ha_cpu_relax
    - task_queue
    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:736,1
    - Dst: thread_has_tasks
      Src: /src/haproxy/src/task.c:738,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:745,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/task.c:760,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:765,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:765,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/task.c:827,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/task.c:829,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:830,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:830,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:831,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:832,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/task.c:834,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/task.c:844,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/task.c:844,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:845,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:846,1
    - Dst: likely
      Src: /src/haproxy/src/task.c:852,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:853,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:854,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/task.c:855,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:860,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:861,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/task.c:862,1
    - Dst: unlikely
      Src: /src/haproxy/src/task.c:864,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:865,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/task.c:867,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/task.c:873,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/task.c:876,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/task.c:881,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/task.c:887,1
    - Dst: MT_LIST_BEHEAD
      Src: /src/haproxy/src/task.c:894,1
    - Dst: LIST_SPLICE_END_DETACHED
      Src: /src/haproxy/src/task.c:896,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/task.c:897,1
    - Dst: run_tasks_from_lists
      Src: /src/haproxy/src/task.c:902,1
    - Dst: thread_has_tasks
      Src: /src/haproxy/src/task.c:905,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 911
    functionName: process_runnable_tasks
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - thread_has_tasks
    - eb32_lookup_ge
    - unlikely
    - eb32_delete
    - HA_SPIN_LOCK
    - MT_LIST_BEHEAD
    - eb_is_empty
    - eb32_next
    - eb32_entry
    - likely
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - _HA_ATOMIC_DEC
    - LIST_SPLICE_END_DETACHED
    - MT_LIST_ISEMPTY
    - LIST_APPEND
    - _HA_ATOMIC_ADD
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - 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:919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - thr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 920
    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:934,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:936,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:937,1
    - Dst: task_destroy
      Src: /src/haproxy/src/task.c:938,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:941,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:943,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:944,1
    - Dst: task_destroy
      Src: /src/haproxy/src/task.c:945,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:950,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:952,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:953,1
    - Dst: task_destroy
      Src: /src/haproxy/src/task.c:954,1
    - Dst: eb32_first
      Src: /src/haproxy/src/task.c:957,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/task.c:959,1
    - Dst: eb32_next
      Src: /src/haproxy/src/task.c:960,1
    - Dst: task_destroy
      Src: /src/haproxy/src/task.c:961,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 964
    functionName: mworker_cleantasks
    functionSourceFile: /src/haproxy/src/task.c
    functionUses: 0
    functionsReached:
    - eb32_next
    - task_destroy
    - eb32_first
    - eb32_entry
    linkageType: ''
    returnType: void
    signature: void mworker_cleantasks()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/task.c:972,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/task.c:976,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/task.c:977,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 967
    functionDepth: 1
    functionLinenumber: 967
    functionLinenumberEnd: 979
    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:986,1
    - Dst: strcmp
      Src: /src/haproxy/src/task.c:989,1
    - Dst: strcmp
      Src: /src/haproxy/src/task.c:991,1
    - Dst: memprintf
      Src: /src/haproxy/src/task.c:994,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: 998
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 998
    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: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    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:70,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:72,1
    - Dst: size < 10240 || size >
      Src: /src/haproxy/src/cfgparse-quic.c:89,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:90,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: 98
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 98
    functionName: parse_window_size
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - strtoul
    - memprintf
    - size < 10240 || size >
    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: calloc
      Src: /src/haproxy/src/cfgparse-quic.c:109,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:111,1
    - 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:176,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:183,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-quic.c:193,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 79
    argCount: 5
    argNames:
    - args
    - cur_arg
    - px
    - conf
    - err
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct bind_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 195
    functionName: bind_parse_quic_cc_algo
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - isteq
    - mark_tainted
    - parse_window_size
    - istsplit
    - strlen
    - free
    - memprintf
    - ha_alert
    - calloc
    - ist
    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:202,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:207,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:210,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:214,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: 219
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 219
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:236,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:239,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:242,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:246,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: 251
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 251
    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:259,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:262,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:265,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:268,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:272,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: 278
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 278
    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:292,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:295,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-quic.c:300,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:302,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:307,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:312,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:317,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:318,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:324,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:325,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:331,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: 336
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 336
    functionName: cfg_parse_quic_time
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - parse_time_err
    - strlen
    - memprintf
    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: 35
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-quic.c:349,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:352,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-quic.c:356,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:359,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:364,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-quic.c:367,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:368,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:375,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:376,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:381,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:382,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:387,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:388,1
    - Dst: parse_window_size
      Src: /src/haproxy/src/cfgparse-quic.c:394,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:398,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:404,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:405,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:410,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:411,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:416,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:419,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:420,1
    - Dst: memprintf
      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: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:435,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:436,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-quic.c:439,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:440,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:449,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:450,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:455,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:459,1
    - Dst: parse_window_size
      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:473,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:474,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:479,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:480,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-quic.c:482,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:483,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:491,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:492,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:497,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:500,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-quic.c:503,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:504,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:512,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:513,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:517,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:523,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:524,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:529,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:530,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:533,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:540,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:541,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:547,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 136
    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: 552
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 552
    functionName: cfg_parse_quic_tune_setting
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - parse_window_size
    - atoi
    - strlen
    - memprintf
    - parse_size_err
    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:560,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:563,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:567,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:568,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:573,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:574,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:580,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: 585
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 585
    functionName: cfg_parse_quic_tune_setting0
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - strlen
    - too_many_args
    - memprintf
    - strcmp
    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:593,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-quic.c:597,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:600,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:602,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:605,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:610,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:616,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:622,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:623,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:631,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:632,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:640,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:641,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:649,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:650,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: 660
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 660
    functionName: cfg_parse_quic_tune_on_off
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - strlen
    - too_many_args
    - memprintf
    - strcmp
    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:731,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:732,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:738,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:744,1
    - Dst: new_act_rule
      Src: /src/haproxy/src/cfgparse-quic.c:749,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:751,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-quic.c:755,1
    - Dst: action_quic_init_custom
      Src: /src/haproxy/src/cfgparse-quic.c:758,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/cfgparse-quic.c:763,1
    - Dst: action_suggest
      Src: /src/haproxy/src/cfgparse-quic.c:767,1
    - Dst: action_build_list
      Src: /src/haproxy/src/cfgparse-quic.c:769,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:770,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:779,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-quic.c:779,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-quic.c:780,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:781,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-quic.c:783,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:788,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-quic.c:790,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/cfgparse-quic.c:794,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:797,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse-quic.c:799,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:801,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse-quic.c:804,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse-quic.c:805,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/cfgparse-quic.c:809,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:811,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse-quic.c:813,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-quic.c:815,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse-quic.c:817,1
    - Dst: warnif_misplaced_quic_init
      Src: /src/haproxy/src/cfgparse-quic.c:822,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-quic.c:824,1
    - Dst: free_act_rule
      Src: /src/haproxy/src/cfgparse-quic.c:829,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: 831
      start: 717
    functionDepth: 6
    functionLinenumber: 717
    functionLinenumberEnd: 831
    functionName: quic_parse_quic_initial
    functionSourceFile: /src/haproxy/src/cfgparse-quic.c
    functionUses: 0
    functionsReached:
    - action_suggest
    - sample_ckp_names
    - strcmp
    - struct action_kw*::parse
    - acl_cond_conflicts
    - acl_cond_kw_conflicts
    - action_quic_init_custom
    - LIST_ELEM
    - LIST_APPEND
    - strlen
    - build_acl_cond
    - LIST_INIT
    - warnif_misplaced_quic_init
    - memprintf
    - free_act_rule
    - proxy_type_str
    - new_act_rule
    - action_build_list
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:198,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:201,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:204,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:207,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/ssl_sock.c:210,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 3
    argNames:
    - data
    - stats
    - selected_field
    argTypes:
    - void*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 226
    functionName: ssl_fill_stats
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - mkf_u64
    linkageType: ''
    returnType: int
    signature: int ssl_fill_stats(void *data, 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:265,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: 266
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 266
    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:274,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: 275
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 275
    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:283,1
    - Dst: BIO_get_data
      Src: /src/haproxy/src/ssl_sock.c:293,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/ssl_sock.c:301,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/ssl_sock.c:302,1
    - Dst: struct ssl_sock_ctx*::xprt::snd_buf
      Src: /src/haproxy/src/ssl_sock.c:313,1
    - Dst: BIO_clear_retry_flags
      Src: /src/haproxy/src/ssl_sock.c:314,1
    - Dst: BIO_set_retry_write
      Src: /src/haproxy/src/ssl_sock.c:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - h
    - buf
    - num
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 324
    functionName: ha_ssl_write
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - CMSG_LEN
    - BIO_get_data
    - CMSG_DATA
    - BIO_set_retry_write
    - CMSG_SPACE
    - struct ssl_sock_ctx*::xprt::snd_buf
    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: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    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:335,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h
    - str
    argTypes:
    - BIO*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 336
    functionName: ha_ssl_puts
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - strlen
    - ha_ssl_write
    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:345,1
    - Dst: BIO_get_data
      Src: /src/haproxy/src/ssl_sock.c:357,1
    - Dst: BIO_set_retry_read
      Src: /src/haproxy/src/ssl_sock.c:368,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:387,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/ssl_sock.c:388,1
    - Dst: struct ssl_sock_ctx*::xprt::rcv_buf
      Src: /src/haproxy/src/ssl_sock.c:393,1
    - Dst: BIO_clear_retry_flags
      Src: /src/haproxy/src/ssl_sock.c:397,1
    - Dst: BIO_set_retry_read
      Src: /src/haproxy/src/ssl_sock.c:399,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/ssl_sock.c:412,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 3
    argNames:
    - h
    - buf
    - size
    argTypes:
    - BIO*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 423
    functionName: ha_ssl_read
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BIO_clear_retry_flags
    - struct ssl_sock_ctx*::xprt::rcv_buf
    - proxy_abrt_close_def
    - BIO_get_data
    - CMSG_DATA
    - conn_is_back
    - CMSG_SPACE
    - BIO_set_retry_read
    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:431,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: 432
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 432
    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:437,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:534,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 4
    argNames:
    - h
    - cmd
    - arg1
    - arg2
    argTypes:
    - BIO*
    - int
    - long
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 544
    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:548,1
    - Dst: BIO_set_data
      Src: /src/haproxy/src/ssl_sock.c:549,1
    - Dst: BIO_clear_flags
      Src: /src/haproxy/src/ssl_sock.c:550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - h
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 552
    functionName: ha_ssl_new
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - BIO_clear_flags
    - BIO_set_data
    - BIO_set_init
    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: 558
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 558
    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: 569
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 569
    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:575,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:577,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:581,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - mode
    - n
    - file
    - line
    argTypes:
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 585
    functionName: ssl_locking_function
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - 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:591,1
    - Dst: CRYPTO_num_locks
      Src: /src/haproxy/src/ssl_sock.c:591,1
    - Dst: CRYPTO_num_locks
      Src: /src/haproxy/src/ssl_sock.c:595,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/ssl_sock.c:596,1
    - Dst: CRYPTO_set_id_callback
      Src: /src/haproxy/src/ssl_sock.c:598,1
    - Dst: CRYPTO_set_locking_callback
      Src: /src/haproxy/src/ssl_sock.c:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 602
    functionName: ssl_locking_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - CRYPTO_set_locking_callback
    - malloc
    - CRYPTO_set_id_callback
    - CRYPTO_num_locks
    linkageType: ''
    returnType: int
    signature: int ssl_locking_init(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_sock.c:614,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:620,1
    - Dst: X509_STORE_get0_objects
      Src: /src/haproxy/src/ssl_sock.c:620,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_sock.c:621,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_sock.c:622,1
    - Dst: X509_OBJECT_get_type
      Src: /src/haproxy/src/ssl_sock.c:623,1
    - Dst: X509_STORE_add_cert
      Src: /src/haproxy/src/ssl_sock.c:625,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/haproxy/src/ssl_sock.c:625,1
    - Dst: X509_STORE_add_crl
      Src: /src/haproxy/src/ssl_sock.c:628,1
    - Dst: X509_OBJECT_get0_X509_CRL
      Src: /src/haproxy/src/ssl_sock.c:628,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - store_ctx
    - path
    argTypes:
    - X509_STORE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 637
    functionName: ssl_set_cert_crl_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_num
    - X509_STORE_add_crl
    - X509_OBJECT_get0_X509_CRL
    - X509_OBJECT_get0_X509
    - X509_STORE_get0_objects
    - ssl_store_get_cafile_entry
    - X509_STORE_add_cert
    - X509_OBJECT_get_type
    - STACK_OF
    - 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:642,1
    - Dst: ssl_set_cert_crl_file
      Src: /src/haproxy/src/ssl_sock.c:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - path
    argTypes:
    - SSL_CTX*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 644
    functionName: ssl_set_verify_locations_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_get_cert_store
    - ssl_set_cert_crl_file
    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:656,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:659,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:670,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:671,1
    - Dst: sk_X509_NAME_new_null
      Src: /src/haproxy/src/ssl_sock.c:675,1
    - Dst: X509_STORE_get0_objects
      Src: /src/haproxy/src/ssl_sock.c:677,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_sock.c:678,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/haproxy/src/ssl_sock.c:679,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_sock.c:679,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:682,1
    - Dst: X509_NAME_hash
      Src: /src/haproxy/src/ssl_sock.c:686,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/ssl_sock.c:687,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:689,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:690,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:690,1
    - Dst: X509_NAME_cmp
      Src: /src/haproxy/src/ssl_sock.c:691,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:697,1
    - Dst: X509_NAME_dup
      Src: /src/haproxy/src/ssl_sock.c:698,1
    - Dst: sk_X509_NAME_push
      Src: /src/haproxy/src/ssl_sock.c:701,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:702,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_sock.c:703,1
    - Dst: sk_X509_NAME_pop_free
      Src: /src/haproxy/src/ssl_sock.c:704,1
    - Dst: sk_X509_NAME_free
      Src: /src/haproxy/src/ssl_sock.c:705,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_sock.c:711,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_sock.c:715,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:717,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:717,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:718,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_sock.c:719,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:720,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 725
    functionName: ssl_get_client_ca_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_num
    - X509_NAME_cmp
    - sk_X509_NAME_pop_free
    - eb64_next
    - X509_STORE_get0_objects
    - ebmb_entry
    - X509_NAME_dup
    - X509_OBJECT_get0_X509
    - container_of
    - eb64_first
    - sk_X509_NAME_new_null
    - X509_NAME_free
    - sk_X509_NAME_free
    - STACK_OF
    - calloc
    - eb64_insert
    - typeof
    - ebst_lookup
    - sk_X509_NAME_push
    - eb64_lookup
    - X509_NAME_hash
    - X509_get_subject_name
    - eb64_delete
    - free
    - sk_X509_OBJECT_value
    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:817,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:819,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:825,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - func
    argTypes:
    - ssl_sock_msg_callback_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 828
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 828
    functionName: ssl_sock_register_msg_callback
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - calloc
    - ha_alert
    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:835,1
    - Dst: ssl_sock_register_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:839,1
    - Dst: ssl_sock_register_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:844,1
    - Dst: ssl_sock_register_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:849,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 854
    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:863,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:864,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 867
    functionName: ssl_sock_unregister_msg_callbacks
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - free
    - LIST_DELETE
    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:871,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 875
    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:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 882
    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:893,1
    - Dst: ERR_peek_error_func
      Src: /src/haproxy/src/ssl_sock.c:896,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_sock.c:898,1
    - Dst: fprintf
      Src: /src/haproxy/src/ssl_sock.c:902,1
    - Dst: conn_fd
      Src: /src/haproxy/src/ssl_sock.c:903,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:904,1
    - Dst: fprintf
      Src: /src/haproxy/src/ssl_sock.c:909,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:910,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - qc
    argTypes:
    - struct connection*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 915
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 915
    functionName: ssl_sock_dump_errors
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERR_peek_error_func
    - fprintf
    - ERR_reason_error_string
    - conn_fd
    - ERR_get_error
    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:926,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:928,1
    - Dst: ENGINE_init
      Src: /src/haproxy/src/ssl_sock.c:932,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:934,1
    - Dst: ENGINE_set_default_string
      Src: /src/haproxy/src/ssl_sock.c:938,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:939,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:943,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/ssl_sock.c:947,1
    - Dst: ENGINE_finish
      Src: /src/haproxy/src/ssl_sock.c:956,1
    - Dst: ENGINE_free
      Src: /src/haproxy/src/ssl_sock.c:960,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 2
    argNames:
    - engine_id
    - def_algorithms
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 964
    functionName: ssl_init_single_engine
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ENGINE_init
    - LIST_INSERT
    - ENGINE_finish
    - ENGINE_set_default_string
    - ENGINE_free
    - ENGINE_by_id
    - ha_alert
    - calloc
    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:973,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:975,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/haproxy/src/ssl_sock.c:979,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:980,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/ssl_sock.c:984,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:989,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - provider_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 991
    functionName: ssl_init_provider
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_INSERT
    - ha_free
    - OSSL_PROVIDER_load
    - ha_alert
    - calloc
    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:1005,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/ssl_sock.c:1006,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:1011,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 998
    functionDepth: 1
    functionLinenumber: 998
    functionLinenumberEnd: 1012
    functionName: ssl_async_fd_handler
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    - fd_cant_recv
    - tasklet_wakeup
    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:1029,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_sock.c:1031,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1035,1
    - Dst: fd_delete
      Src: /src/haproxy/src/ssl_sock.c:1042,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:1046,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:1047,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:1048,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1049
    functionName: ssl_async_fd_free
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - _HA_ATOMIC_DEC
    - SSL_get_all_async_fds
    - send_log
    - SSL_free
    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:1063,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_sock.c:1066,1
    - Dst: SSL_get_changed_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1070,1
    - Dst: fd_delete
      Src: /src/haproxy/src/ssl_sock.c:1079,1
    - Dst: fd_insert
      Src: /src/haproxy/src/ssl_sock.c:1084,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1088,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_sock.c:1090,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:1095,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/ssl_sock.c:1097,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/ssl_sock.c:1104,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_sock_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1107
    functionName: ssl_async_process_fds
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - fd_cant_recv
    - SSL_get_all_async_fds
    - SSL_get_changed_async_fds
    - fd_insert
    - send_log
    - fd_want_recv
    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:1120,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/haproxy/src/ssl_sock.c:1121,1
    - Dst: EVP_MD_name
      Src: /src/haproxy/src/ssl_sock.c:1121,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/haproxy/src/ssl_sock.c:1122,1
    - Dst: EVP_MAC_CTX_set_params
      Src: /src/haproxy/src/ssl_sock.c:1123,1
    - Dst: HMAC_Init_ex
      Src: /src/haproxy/src/ssl_sock.c:1127,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: 1130
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1130
    functionName: ssl_hmac_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HMAC_Init_ex
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    - EVP_MD_name
    - EVP_MAC_CTX_set_params
    - OSSL_PARAM_construct_octet_string
    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:1143,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1144,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1146,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:1148,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:1154,1
    - Dst: RAND_pseudo_bytes
      Src: /src/haproxy/src/ssl_sock.c:1156,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/ssl_sock.c:1161,1
    - Dst: EVP_aes_128_cbc
      Src: /src/haproxy/src/ssl_sock.c:1161,1
    - Dst: ssl_hmac_init
      Src: /src/haproxy/src/ssl_sock.c:1164,1
    - Dst: TLS_TICKET_HASH_FUNCT
      Src: /src/haproxy/src/ssl_sock.c:1164,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/haproxy/src/ssl_sock.c:1170,1
    - Dst: EVP_aes_256_cbc
      Src: /src/haproxy/src/ssl_sock.c:1170,1
    - Dst: ssl_hmac_init
      Src: /src/haproxy/src/ssl_sock.c:1173,1
    - Dst: TLS_TICKET_HASH_FUNCT
      Src: /src/haproxy/src/ssl_sock.c:1173,1
    - Dst: memcmp
      Src: /src/haproxy/src/ssl_sock.c:1179,1
    - Dst: ssl_hmac_init
      Src: /src/haproxy/src/ssl_sock.c:1187,1
    - Dst: TLS_TICKET_HASH_FUNCT
      Src: /src/haproxy/src/ssl_sock.c:1187,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/ssl_sock.c:1189,1
    - Dst: EVP_aes_128_cbc
      Src: /src/haproxy/src/ssl_sock.c:1189,1
    - Dst: ssl_hmac_init
      Src: /src/haproxy/src/ssl_sock.c:1195,1
    - Dst: TLS_TICKET_HASH_FUNCT
      Src: /src/haproxy/src/ssl_sock.c:1195,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/haproxy/src/ssl_sock.c:1197,1
    - Dst: EVP_aes_256_cbc
      Src: /src/haproxy/src/ssl_sock.c:1197,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1205,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: 1207
      start: 1134
    functionDepth: 1
    functionLinenumber: 1134
    functionLinenumberEnd: 1207
    functionName: ssl_tlsext_ticket_key_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - EVP_DecryptInit_ex
    - EVP_aes_128_cbc
    - ssl_hmac_init
    - EVP_EncryptInit_ex
    - memcmp
    - ssl_sock_get_listener
    - BUG_ON
    - HA_RWLOCK_RDUNLOCK
    - memcpy
    - EVP_aes_256_cbc
    - TLS_TICKET_HASH_FUNCT
    - RAND_pseudo_bytes
    - 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:1213,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sock.c:1214,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1209
    functionDepth: 0
    functionLinenumber: 1209
    functionLinenumberEnd: 1217
    functionName: tlskeys_ref_lookup
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strcmp
    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:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unique_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1219
    functionDepth: 0
    functionLinenumber: 1219
    functionLinenumberEnd: 1227
    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:1247,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:1248,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ref
    - tlskey
    argTypes:
    - struct tls_keys_ref*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1254
    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:1258,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:1261,1
    - Dst: ssl_sock_update_tlskey_ref
      Src: /src/haproxy/src/ssl_sock.c:1264,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:1265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - filename
    - tlskey
    - err
    argTypes:
    - char*
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1256
    functionDepth: 2
    functionLinenumber: 1256
    functionLinenumberEnd: 1270
    functionName: ssl_sock_update_tlskey
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - tlskeys_ref_lookup
    - ssl_sock_update_tlskey_ref
    - memprintf
    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:1280,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:1282,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:1286,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_sock.c:1303,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:1304,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:1305,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:1307,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:1312,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/ssl_sock.c:1316,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1276
    functionDepth: 1
    functionLinenumber: 1276
    functionLinenumberEnd: 1318
    functionName: tlskeys_finalize_config
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_SPLICE
    - LIST_DELETE
    - list_for_each_entry
    - list_for_each_entry_safe
    - LIST_APPEND
    - LIST_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int tlskeys_finalize_config(void)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sock.c:1353,1
    - Dst: ssl_ocsp_get_uri_from_cert
      Src: /src/haproxy/src/ssl_sock.c:1365,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:1370,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_sock.c:1380,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sock.c:1381,1
    - Dst: X509_check_issued
      Src: /src/haproxy/src/ssl_sock.c:1382,1
    - Dst: OCSP_cert_to_id
      Src: /src/haproxy/src/ssl_sock.c:1392,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_sock.c:1398,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:1402,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:1403,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_sock.c:1408,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_sock.c:1410,1
    - Dst: ebmb_insert
      Src: /src/haproxy/src/ssl_sock.c:1411,1
    - Dst: SSL_CTX_get_tlsext_status_cb
      Src: /src/haproxy/src/ssl_sock.c:1415,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:1424,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1426,1
    - Dst: X509_get_pubkey
      Src: /src/haproxy/src/ssl_sock.c:1434,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_sock.c:1435,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_sock.c:1436,1
    - Dst: SSL_CTX_set_tlsext_status_cb
      Src: /src/haproxy/src/ssl_sock.c:1438,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1439,1
    - Dst: SSL_CTX_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1452,1
    - Dst: ssl_sock_get_ocsp_arg_kt_index
      Src: /src/haproxy/src/ssl_sock.c:1459,1
    - Dst: X509_get_pubkey
      Src: /src/haproxy/src/ssl_sock.c:1465,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_sock.c:1466,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_sock.c:1467,1
    - Dst: ssl_sock_get_ocsp_arg_kt_index
      Src: /src/haproxy/src/ssl_sock.c:1469,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1475,1
    - Dst: ssl_sock_load_ocsp_response
      Src: /src/haproxy/src/ssl_sock.c:1480,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:1481,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:1482,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_sock.c:1494,1
    - Dst: X509_chain_up_ref
      Src: /src/haproxy/src/ssl_sock.c:1497,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:1499,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_sock.c:1500,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:1501,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:1511,1
    - Dst: ssl_ocsp_update_insert
      Src: /src/haproxy/src/ssl_sock.c:1514,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_sock.c:1523,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_sock.c:1532,1
    - Dst: __ssl_ocsp_update_insert_unlocked
      Src: /src/haproxy/src/ssl_sock.c:1541,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_sock.c:1550,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:1553,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/ssl_sock.c:1558,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:1563,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:1564,1
    - Dst: ssl_sock_free_ocsp
      Src: /src/haproxy/src/ssl_sock.c:1568,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:1571,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:1573,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 136
    argCount: 4
    argNames:
    - path
    - ctx
    - store
    - chain
    argTypes:
    - char*
    - SSL_CTX*
    - struct ckch_store*
    - STACK_OF*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1576
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1576
    functionName: ssl_sock_load_ocsp
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_ocsp_get_uri_from_cert
    - ebmb_insert
    - X509_up_ref
    - get_trash_chunk
    - EVP_PKEY_free
    - task_wakeup
    - SSL_CTX_get_ex_data
    - HA_SPIN_LOCK
    - sk_X509_value
    - ha_warning
    - SSL_CTX_get_tlsext_status_cb
    - X509_chain_up_ref
    - b_data
    - ha_free
    - EVP_PKEY_base_id
    - strlen
    - HA_SPIN_UNLOCK
    - calloc
    - X509_check_issued
    - ssl_sock_get_ocsp_arg_kt_index
    - SSL_CTX_set_tlsext_status_cb
    - memprintf
    - X509_get_pubkey
    - __ssl_ocsp_update_insert_unlocked
    - OCSP_cert_to_id
    - OCSP_CERTID_free
    - ssl_sock_load_ocsp_response
    - ssl_sock_free_ocsp
    - chunk_dup
    - SSL_CTX_set_ex_data
    - ssl_ocsp_update_insert
    - free
    - i2d_OCSP_CERTID
    - memcpy
    - sk_X509_num
    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:1583,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: 1584
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1584
    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: 1602
      start: 1594
    functionDepth: 0
    functionLinenumber: 1594
    functionLinenumberEnd: 1602
    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: 1607
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1607
    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:1613,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1616,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ctx
    - sctl
    argTypes:
    - SSL_CTX*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1609
    functionDepth: 0
    functionLinenumber: 1609
    functionLinenumberEnd: 1622
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_get_conn
      Src: /src/haproxy/src/ssl_sock.c:1635,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1637,1
    - Dst: SSL_get_wbio
      Src: /src/haproxy/src/ssl_sock.c:1658,1
    - Dst: SSL_get_rbio
      Src: /src/haproxy/src/ssl_sock.c:1659,1
    - Dst: BIO_set_write_buffer_size
      Src: /src/haproxy/src/ssl_sock.c:1660,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - ssl
    - where
    - ret
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1665
      start: 1626
    functionDepth: 1
    functionLinenumber: 1626
    functionLinenumberEnd: 1665
    functionName: ssl_sock_infocbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_wbio
    - ssl_sock_get_conn
    - BUG_ON
    - 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:1677,1
    - Dst: X509_STORE_CTX_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1681,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/haproxy/src/ssl_sock.c:1681,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1682,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1683,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:1686,1
    - Dst: __conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:1687,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:1688,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1692,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1693,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:1699,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/haproxy/src/ssl_sock.c:1703,1
    - Dst: X509_STORE_CTX_get_error
      Src: /src/haproxy/src/ssl_sock.c:1704,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:1707,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:1715,1
    - Dst: X509_STORE_CTX_get0_cert
      Src: /src/haproxy/src/ssl_sock.c:1716,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_sock.c:1718,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1719,1
    - Dst: X509_STORE_CTX_get1_chain
      Src: /src/haproxy/src/ssl_sock.c:1727,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sock.c:1729,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_sock.c:1731,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:1732,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:1734,1
    - Dst: SSL_SOCK_ST_TO_CA_ERROR
      Src: /src/haproxy/src/ssl_sock.c:1740,1
    - Dst: SSL_SOCK_CA_ERROR_TO_ST
      Src: /src/haproxy/src/ssl_sock.c:1741,1
    - Dst: SSL_SOCK_CAEDEPTH_TO_ST
      Src: /src/haproxy/src/ssl_sock.c:1742,1
    - Dst: cert_ignerr_bitfield_get
      Src: /src/haproxy/src/ssl_sock.c:1746,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:1747,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:1754,1
    - Dst: SSL_SOCK_ST_TO_CRTERROR
      Src: /src/haproxy/src/ssl_sock.c:1759,1
    - Dst: SSL_SOCK_CRTERROR_TO_ST
      Src: /src/haproxy/src/ssl_sock.c:1760,1
    - Dst: cert_ignerr_bitfield_get
      Src: /src/haproxy/src/ssl_sock.c:1764,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:1765,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:1772,1
    - Dst: ssl_sock_dump_errors
      Src: /src/haproxy/src/ssl_sock.c:1777,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:1778,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:1779,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 2
    argNames:
    - ok
    - x_store
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1670
    functionDepth: 2
    functionLinenumber: 1670
    functionLinenumberEnd: 1781
    functionName: ssl_sock_bind_verifycbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - X509_up_ref
    - __objt_listener
    - SSL_SOCK_CAEDEPTH_TO_ST
    - sk_X509_value
    - TRACE_LEAVE
    - X509_STORE_CTX_get_ex_data
    - ssl_sock_dump_errors
    - X509_STORE_CTX_get1_chain
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - cert_ignerr_bitfield_get
    - __conn_get_ssl_sock_ctx
    - sk_X509_pop_free
    - SSL_SOCK_ST_TO_CA_ERROR
    - STACK_OF
    - SSL_SOCK_ST_TO_CRTERROR
    - X509_STORE_CTX_get_error
    - SSL_SOCK_CA_ERROR_TO_ST
    - BUG_ON
    - X509_STORE_CTX_get0_cert
    - X509_free
    - SSL_set_ex_data
    - ERR_clear_error
    - SSL_get_ex_data
    - SSL_SOCK_CRTERROR_TO_ST
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - X509_STORE_CTX_get_error_depth
    linkageType: ''
    returnType: int
    signature: int ssl_sock_bind_verifycbk(int ok, X509_STORE_CTX *x_store)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:1791,1
    - Dst: SSLerr
      Src: /src/haproxy/src/ssl_sock.c:1821,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 7
    argNames:
    - conn
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    argTypes:
    - struct connection*
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1784
    functionDepth: 1
    functionLinenumber: 1784
    functionLinenumberEnd: 1823
    functionName: ssl_sock_parse_heartbeat
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - __conn_get_ssl_sock_ctx
    - SSLerr
    linkageType: ''
    returnType: void
    signature: "void ssl_sock_parse_heartbeat(struct connection *conn, 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:1949,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_sock.c:1951,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_sock.c:1955,1
    - Dst: XXH64
      Src: /src/haproxy/src/ssl_sock.c:1957,1
    - Dst: MIN
      Src: /src/haproxy/src/ssl_sock.c:1960,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:1962,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2080,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2089,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2098,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2107,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2115,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 171
    argCount: 7
    argNames:
    - conn
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    argTypes:
    - struct connection*
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 1826
    functionDepth: 1
    functionLinenumber: 1826
    functionLinenumberEnd: 2116
    functionName: ssl_sock_parse_clienthello
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_set_ex_data
    - XXH64
    - memset
    - MIN
    - SSL_get_ex_data
    - pool_alloc
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void ssl_sock_parse_clienthello(struct connection *conn, 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:2126,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/ssl_sock.c:2129,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2133,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:2134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 7
    argNames:
    - conn
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    argTypes:
    - struct connection*
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2137
    functionName: ssl_init_keylog
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - pool_free
    - SSL_set_ex_data
    - pool_zalloc
    linkageType: ''
    returnType: void
    signature: "void ssl_init_keylog(struct connection *conn, int write_p, int version,\n
      \                           int content_type, const void *buf, size_t len,\n
      \                           SSL *ssl)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_get_conn
      Src: /src/haproxy/src/ssl_sock.c:2143,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:2149,1
    - Dst: struct ssl_sock_msg_callback*::func
      Src: /src/haproxy/src/ssl_sock.c:2150,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: 2152
      start: 2141
    functionDepth: 1
    functionLinenumber: 2141
    functionLinenumberEnd: 2152
    functionName: ssl_sock_msgcbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_sock_get_conn
    - struct ssl_sock_msg_callback*::func
    - 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:2161,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: 2165
      start: 2155
    functionDepth: 0
    functionLinenumber: 2155
    functionLinenumberEnd: 2165
    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: 2180
      start: 2172
    functionDepth: 0
    functionLinenumber: 2172
    functionLinenumberEnd: 2180
    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:2197,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2202,1
    - Dst: __conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:2203,1
    - Dst: SSL_select_next_proto
      Src: /src/haproxy/src/ssl_sock.c:2206,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/ssl_sock.c:2210,1
    - Dst: quic_set_app_ops
      Src: /src/haproxy/src/ssl_sock.c:2216,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/ssl_sock.c:2217,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: 2225
      start: 2187
    functionDepth: 1
    functionLinenumber: 2187
    functionLinenumberEnd: 2225
    functionName: ssl_sock_advertise_alpn_protos
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - quic_set_app_ops
    - SSL_select_next_proto
    - quic_set_tls_alert
    - __conn_get_ssl_sock_ctx
    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:2233,1
    - Dst: SSLv3_server_method
      Src: /src/haproxy/src/ssl_sock.c:2233,1
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2234,1
    - Dst: SSLv3_client_method
      Src: /src/haproxy/src/ssl_sock.c:2234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2236
      start: 2230
    functionDepth: 0
    functionLinenumber: 2230
    functionLinenumberEnd: 2236
    functionName: ctx_set_SSLv3_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ssl_version
    - SSLv3_server_method
    - SSLv3_client_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:2238,1
    - Dst: TLSv1_server_method
      Src: /src/haproxy/src/ssl_sock.c:2238,1
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2239,1
    - Dst: TLSv1_client_method
      Src: /src/haproxy/src/ssl_sock.c:2239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2240
      start: 2237
    functionDepth: 0
    functionLinenumber: 2237
    functionLinenumberEnd: 2240
    functionName: ctx_set_TLSv10_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TLSv1_server_method
    - SSL_CTX_set_ssl_version
    - TLSv1_client_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:2243,1
    - Dst: TLSv1_1_server_method
      Src: /src/haproxy/src/ssl_sock.c:2243,1
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2244,1
    - Dst: TLSv1_1_client_method
      Src: /src/haproxy/src/ssl_sock.c:2244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2241
    functionDepth: 0
    functionLinenumber: 2241
    functionLinenumberEnd: 2246
    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:2249,1
    - Dst: TLSv1_2_server_method
      Src: /src/haproxy/src/ssl_sock.c:2249,1
    - Dst: SSL_CTX_set_ssl_version
      Src: /src/haproxy/src/ssl_sock.c:2250,1
    - Dst: TLSv1_2_client_method
      Src: /src/haproxy/src/ssl_sock.c:2250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2247
    functionDepth: 0
    functionLinenumber: 2247
    functionLinenumberEnd: 2252
    functionName: ctx_set_TLSv12_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_ssl_version
    - TLSv1_2_client_method
    - TLSv1_2_server_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: 2254
      start: 2254
    functionDepth: 0
    functionLinenumber: 2254
    functionLinenumberEnd: 2254
    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: 2256
      start: 2256
    functionDepth: 0
    functionLinenumber: 2256
    functionLinenumberEnd: 2256
    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: 2257
      start: 2257
    functionDepth: 0
    functionLinenumber: 2257
    functionLinenumberEnd: 2257
    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: 2258
      start: 2258
    functionDepth: 0
    functionLinenumber: 2258
    functionLinenumberEnd: 2258
    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: 2259
      start: 2259
    functionDepth: 0
    functionLinenumber: 2259
    functionLinenumberEnd: 2259
    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: 2260
      start: 2260
    functionDepth: 0
    functionLinenumber: 2260
    functionLinenumberEnd: 2260
    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:2264,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2266
      start: 2263
    functionDepth: 0
    functionLinenumber: 2263
    functionLinenumberEnd: 2266
    functionName: ctx_set_SSLv3_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_min_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:2268,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2267
    functionDepth: 0
    functionLinenumber: 2267
    functionLinenumberEnd: 2270
    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:2272,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2271
    functionDepth: 0
    functionLinenumber: 2271
    functionLinenumberEnd: 2274
    functionName: ctx_set_TLSv10_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_min_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:2276,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2278
      start: 2275
    functionDepth: 0
    functionLinenumber: 2275
    functionLinenumberEnd: 2278
    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:2280,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2282
      start: 2279
    functionDepth: 0
    functionLinenumber: 2279
    functionLinenumberEnd: 2282
    functionName: ctx_set_TLSv11_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_min_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:2284,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2283
    functionDepth: 0
    functionLinenumber: 2283
    functionLinenumberEnd: 2286
    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:2288,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - c
    argTypes:
    - SSL_CTX*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2290
      start: 2287
    functionDepth: 0
    functionLinenumber: 2287
    functionLinenumberEnd: 2290
    functionName: ctx_set_TLSv12_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_min_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:2292,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2291
    functionDepth: 0
    functionLinenumber: 2291
    functionLinenumberEnd: 2294
    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: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: 2300
      start: 2295
    functionDepth: 0
    functionLinenumber: 2295
    functionLinenumberEnd: 2300
    functionName: ctx_set_TLSv13_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_min_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:2303,1
    - Dst: SSL_set_min_proto_version
      Src: /src/haproxy/src/ssl_sock.c:2304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ssl
    - c
    argTypes:
    - SSL*
    - set_context_func
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2301
    functionDepth: 0
    functionLinenumber: 2301
    functionLinenumberEnd: 2306
    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: 2308
      start: 2308
    functionDepth: 0
    functionLinenumber: 2308
    functionLinenumberEnd: 2308
    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: 2309
      start: 2309
    functionDepth: 0
    functionLinenumber: 2309
    functionLinenumberEnd: 2309
    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:2330,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/haproxy/src/ssl_sock.c:2331,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/haproxy/src/ssl_sock.c:2332,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/haproxy/src/ssl_sock.c:2333,1
    - Dst: EVP_PKEY_CTX_new_from_name
      Src: /src/haproxy/src/ssl_sock.c:2336,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/haproxy/src/ssl_sock.c:2338,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/haproxy/src/ssl_sock.c:2339,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:2344,1
    - Dst: OSSL_PARAM_free
      Src: /src/haproxy/src/ssl_sock.c:2345,1
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/haproxy/src/ssl_sock.c:2346,1
    - Dst: BN_free
      Src: /src/haproxy/src/ssl_sock.c:2347,1
    - Dst: BN_free
      Src: /src/haproxy/src/ssl_sock.c:2348,1
    - Dst: DH_new
      Src: /src/haproxy/src/ssl_sock.c:2352,1
    - Dst: DH_set0_pqg
      Src: /src/haproxy/src/ssl_sock.c:2357,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 2
    argNames:
    - p
    - g
    argTypes:
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2322
    functionDepth: 1
    functionLinenumber: 2322
    functionLinenumberEnd: 2361
    functionName: ssl_new_dh_fromdata
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    - DH_set0_pqg
    - EVP_PKEY_fromdata_init
    - EVP_PKEY_CTX_new_from_name
    - OSSL_PARAM_BLD_new
    - OSSL_PARAM_BLD_to_param
    - OSSL_PARAM_free
    - OSSL_PARAM_BLD_free
    - OSSL_PARAM_BLD_push_BN
    - EVP_PKEY_fromdata
    - DH_new
    - BN_free
    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:2369,1
    - Dst: OBJ_nid2ln
      Src: /src/haproxy/src/ssl_sock.c:2375,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/haproxy/src/ssl_sock.c:2380,1
    - Dst: OSSL_PARAM_construct_end
      Src: /src/haproxy/src/ssl_sock.c:2381,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/haproxy/src/ssl_sock.c:2383,1
    - Dst: EVP_PKEY_CTX_set_params
      Src: /src/haproxy/src/ssl_sock.c:2383,1
    - Dst: EVP_PKEY_generate
      Src: /src/haproxy/src/ssl_sock.c:2384,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:2387,1
    - Dst: DH_new_by_nid
      Src: /src/haproxy/src/ssl_sock.c:2392,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - nid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2395
      start: 2364
    functionDepth: 0
    functionLinenumber: 2364
    functionLinenumberEnd: 2395
    functionName: ssl_get_dh_by_nid
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_params
    - EVP_PKEY_CTX_new_from_name
    - OSSL_PARAM_construct_utf8_string
    - OSSL_PARAM_construct_end
    - EVP_PKEY_generate
    - OBJ_nid2ln
    - DH_new_by_nid
    - EVP_PKEY_keygen_init
    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:2423,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/ssl_sock.c:2424,1
    - Dst: ssl_new_dh_fromdata
      Src: /src/haproxy/src/ssl_sock.c:2427,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2430
      start: 2399
    functionDepth: 2
    functionLinenumber: 2399
    functionLinenumberEnd: 2430
    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:2468,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/ssl_sock.c:2469,1
    - Dst: ssl_new_dh_fromdata
      Src: /src/haproxy/src/ssl_sock.c:2472,1
    - Dst: ssl_get_dh_by_nid
      Src: /src/haproxy/src/ssl_sock.c:2476,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2478
      start: 2432
    functionDepth: 2
    functionLinenumber: 2432
    functionLinenumberEnd: 2478
    functionName: ssl_get_dh_2048
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_get_dh_by_nid
    - BN_bin2bn
    - ssl_new_dh_fromdata
    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:2537,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/ssl_sock.c:2538,1
    - Dst: ssl_new_dh_fromdata
      Src: /src/haproxy/src/ssl_sock.c:2541,1
    - Dst: ssl_get_dh_by_nid
      Src: /src/haproxy/src/ssl_sock.c:2545,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2480
    functionDepth: 2
    functionLinenumber: 2480
    functionLinenumberEnd: 2547
    functionName: ssl_get_dh_4096
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_get_dh_by_nid
    - BN_bin2bn
    - ssl_new_dh_fromdata
    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:2555,1
    - Dst: EVP_PKEY_bits
      Src: /src/haproxy/src/ssl_sock.c:2565,1
    - Dst: ssl_get_dh_4096
      Src: /src/haproxy/src/ssl_sock.c:2574,1
    - Dst: ssl_get_dh_2048
      Src: /src/haproxy/src/ssl_sock.c:2579,1
    - Dst: ssl_get_dh_1024
      Src: /src/haproxy/src/ssl_sock.c:2584,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2549
    functionDepth: 3
    functionLinenumber: 2549
    functionLinenumberEnd: 2589
    functionName: ssl_get_tmp_dh
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_get_dh_2048
    - ssl_get_dh_1024
    - EVP_PKEY_base_id
    - ssl_get_dh_4096
    - EVP_PKEY_bits
    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:2596,1
    - Dst: ssl_get_tmp_dh
      Src: /src/haproxy/src/ssl_sock.c:2598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ssl
    - export
    - keylen
    argTypes:
    - SSL*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2594
    functionDepth: 4
    functionLinenumber: 2594
    functionLinenumberEnd: 2599
    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:2605,1
    - Dst: HASSL_DH_up_ref
      Src: /src/haproxy/src/ssl_sock.c:2608,1
    - Dst: SSL_CTX_set0_tmp_dh_pkey
      Src: /src/haproxy/src/ssl_sock.c:2610,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:2613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - dh
    argTypes:
    - SSL_CTX*
    - HASSL_DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2617
      start: 2602
    functionDepth: 0
    functionLinenumber: 2602
    functionLinenumberEnd: 2617
    functionName: ssl_sock_set_tmp_dh
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HASSL_DH_free
    - HASSL_DH_up_ref
    - SSL_CTX_set_tmp_dh
    - 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:2623,1
    - Dst: HASSL_DH_up_ref
      Src: /src/haproxy/src/ssl_sock.c:2624,1
    - Dst: SSL_CTX_set0_tmp_dh_pkey
      Src: /src/haproxy/src/ssl_sock.c:2625,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:2626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - pkey
    argTypes:
    - SSL_CTX*
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2628
      start: 2620
    functionDepth: 4
    functionLinenumber: 2620
    functionLinenumberEnd: 2628
    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_get_tmp_dh
    - SSL_CTX_set0_tmp_dh_pkey
    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:2639,1
    - Dst: OSSL_DECODER_CTX_get_num_decoders
      Src: /src/haproxy/src/ssl_sock.c:2643,1
    - Dst: BIO_eof
      Src: /src/haproxy/src/ssl_sock.c:2650,1
    - Dst: OSSL_DECODER_from_bio
      Src: /src/haproxy/src/ssl_sock.c:2651,1
    - Dst: OSSL_DECODER_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:2654,1
    - Dst: PEM_read_bio_DHparams
      Src: /src/haproxy/src/ssl_sock.c:2659,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - bio
    argTypes:
    - BIO*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2663
      start: 2631
    functionDepth: 0
    functionLinenumber: 2631
    functionLinenumberEnd: 2663
    functionName: ssl_sock_get_dh_from_bio
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - OSSL_DECODER_from_bio
    - OSSL_DECODER_CTX_free
    - OSSL_DECODER_CTX_get_num_decoders
    - PEM_read_bio_DHparams
    - BIO_eof
    - 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:2668,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/ssl_sock.c:2668,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/ssl_sock.c:2673,1
    - Dst: ssl_sock_get_dh_from_bio
      Src: /src/haproxy/src/ssl_sock.c:2676,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_sock.c:2680,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:2682,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2665
    functionDepth: 1
    functionLinenumber: 2665
    functionLinenumberEnd: 2685
    functionName: ssl_sock_get_dh_from_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - BIO_new
    - BIO_free
    - ssl_sock_get_dh_from_bio
    - BIO_s_file
    - BIO_read_filename
    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:2689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2687
    functionDepth: 2
    functionLinenumber: 2687
    functionLinenumberEnd: 2696
    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:2721,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:2726,1
    - Dst: tolower
      Src: /src/haproxy/src/ssl_sock.c:2728,1
    - Dst: malloc
      Src: /src/haproxy/src/ssl_sock.c:2733,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:2736,1
    - Dst: SSL_CTX_up_ref
      Src: /src/haproxy/src/ssl_sock.c:2737,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:2746,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: 2749
      start: 2700
    functionDepth: 1
    functionLinenumber: 2700
    functionLinenumberEnd: 2749
    functionName: ckch_inst_add_cert_sni
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - tolower
    - ha_warning
    - SSL_CTX_up_ref
    - LIST_APPEND
    - strlen
    - malloc
    - memcpy
    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:2764,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:2772,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:2774,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_sock.c:2776,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:2777,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:2781,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:2782,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:2783,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_sock.c:2798,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_sock.c:2800,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:2804,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: 2807
      start: 2757
    functionDepth: 1
    functionLinenumber: 2757
    functionLinenumberEnd: 2807
    functionName: ssl_sock_load_cert_sni
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ebst_insert
    - ha_warning
    - LIST_DELETE
    - SSL_CTX_free
    - list_for_each_entry_safe
    - ha_free
    - ebmb_next_dup
    - ebmb_entry
    - ebst_lookup
    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:2838,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2839,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2841,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:2850,1
    - Dst: ssl_sock_set_tmp_dh
      Src: /src/haproxy/src/ssl_sock.c:2854,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2855,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2857,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:2865,1
    - Dst: ssl_get_dh_1024
      Src: /src/haproxy/src/ssl_sock.c:2874,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2877,1
    - Dst: ssl_sock_set_tmp_dh
      Src: /src/haproxy/src/ssl_sock.c:2883,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2884,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2886,1
    - Dst: SSL_CTX_set_tmp_dh_callback
      Src: /src/haproxy/src/ssl_sock.c:2895,1
    - Dst: ssl_sock_set_tmp_dh_from_pkey
      Src: /src/haproxy/src/ssl_sock.c:2897,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:2905,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: 2907
      start: 2830
    functionDepth: 5
    functionLinenumber: 2830
    functionLinenumberEnd: 2907
    functionName: ssl_sock_load_dh_params
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ssl_get_dh_1024
    - ssl_sock_set_tmp_dh_from_pkey
    - SSL_CTX_set_ex_data
    - SSL_CTX_set_tmp_dh_callback
    - ssl_sock_set_tmp_dh
    - memprintf
    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:2927,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/haproxy/src/ssl_sock.c:2934,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_sock.c:2935,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2936,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:2937,1
    - Dst: X509_chain_up_ref
      Src: /src/haproxy/src/ssl_sock.c:2943,1
    - Dst: sk_X509_new_null
      Src: /src/haproxy/src/ssl_sock.c:2949,1
    - Dst: SSL_CTX_set1_chain
      Src: /src/haproxy/src/ssl_sock.c:2954,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_sock.c:2955,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2956,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:2957,1
    - Dst: sk_X509_shift
      Src: /src/haproxy/src/ssl_sock.c:2964,1
    - Dst: SSL_CTX_add_extra_chain_cert
      Src: /src/haproxy/src/ssl_sock.c:2965,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2966,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:2968,1
    - Dst: SSL_CTX_build_cert_chain
      Src: /src/haproxy/src/ssl_sock.c:2978,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:2979,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: 2989
      start: 2921
    functionDepth: 1
    functionLinenumber: 2921
    functionLinenumberEnd: 2989
    functionName: ssl_sock_load_cert_chain
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - SSL_CTX_add_extra_chain_cert
    - SSL_CTX_build_cert_chain
    - X509_chain_up_ref
    - SSL_CTX_set1_chain
    - sk_X509_new_null
    - SSL_CTX_use_certificate
    - ERR_reason_error_string
    - memprintf
    - X509_free
    - sk_X509_shift
    - ERR_get_error
    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:3004,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:3006,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/haproxy/src/ssl_sock.c:3008,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_sock.c:3011,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3012,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_sock.c:3013,1
    - Dst: ssl_sock_load_cert_chain
      Src: /src/haproxy/src/ssl_sock.c:3019,1
    - Dst: SSL_CTX_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:3027,1
    - Dst: ssl_sock_load_dh_params
      Src: /src/haproxy/src/ssl_sock.c:3030,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3032,1
    - Dst: ssl_sock_load_sctl
      Src: /src/haproxy/src/ssl_sock.c:3040,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3041,1
    - Dst: ssl_sock_load_ocsp
      Src: /src/haproxy/src/ssl_sock.c:3055,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3057,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3060,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:3068,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: 3070
      start: 3000
    functionDepth: 6
    functionLinenumber: 3000
    functionLinenumberEnd: 3070
    functionName: ssl_sock_put_ckch_into_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ssl_sock_load_sctl
    - SSL_CTX_set_ex_data
    - ssl_sock_load_cert_chain
    - ssl_sock_load_ocsp
    - memprintf
    - SSL_CTX_use_PrivateKey
    - ERR_reason_error_string
    - sk_X509_pop_free
    - STACK_OF
    - ssl_sock_load_dh_params
    - 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:3085,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/haproxy/src/ssl_sock.c:3088,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3089,1
    - Dst: ssl_sock_load_cert_chain
      Src: /src/haproxy/src/ssl_sock.c:3095,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/haproxy/src/ssl_sock.c:3099,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3100,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:3106,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: 3108
      start: 3081
    functionDepth: 2
    functionLinenumber: 3081
    functionLinenumberEnd: 3108
    functionName: ssl_sock_put_srv_ckch_into_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_check_private_key
    - ssl_sock_load_cert_chain
    - memprintf
    - SSL_CTX_use_PrivateKey
    - sk_X509_pop_free
    - 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: 21
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:3130,1
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/ssl_sock.c:3143,1
    - Dst: SSLv23_server_method
      Src: /src/haproxy/src/ssl_sock.c:3143,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3145,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:3152,1
    - Dst: ssl_sock_put_ckch_into_ctx
      Src: /src/haproxy/src/ssl_sock.c:3154,1
    - Dst: ckch_inst_new
      Src: /src/haproxy/src/ssl_sock.c:3158,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3160,1
    - Dst: X509_get_pubkey
      Src: /src/haproxy/src/ssl_sock.c:3166,1
    - Dst: EVP_PKEY_bits
      Src: /src/haproxy/src/ssl_sock.c:3168,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_sock.c:3169,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_sock.c:3180,1
    - Dst: ckch_inst_add_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3185,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3187,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_sock.c:3195,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/haproxy/src/ssl_sock.c:3197,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/haproxy/src/ssl_sock.c:3198,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:3200,1
    - Dst: ckch_inst_add_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3201,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_sock.c:3202,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3204,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/haproxy/src/ssl_sock.c:3211,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:3214,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/haproxy/src/ssl_sock.c:3216,1
    - Dst: X509_NAME_get_entry
      Src: /src/haproxy/src/ssl_sock.c:3217,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/haproxy/src/ssl_sock.c:3220,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:3221,1
    - Dst: ckch_inst_add_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3222,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_sock.c:3223,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3225,1
    - Dst: ckch_inst_add_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3240,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3242,1
    - Dst: SSL_CTX_up_ref
      Src: /src/haproxy/src/ssl_sock.c:3251,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:3259,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_sock.c:3267,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:3270,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 113
    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: 3273
      start: 3119
    functionDepth: 7
    functionLinenumber: 3119
    functionLinenumberEnd: 3273
    functionName: ckch_inst_new_load_store
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - X509_get_ext_d2i
    - EVP_PKEY_free
    - SSL_CTX_up_ref
    - ckch_inst_add_cert_sni
    - SSL_CTX_set_security_level
    - ASN1_STRING_to_UTF8
    - SSL_CTX_free
    - sk_GENERAL_NAME_value
    - X509_NAME_get_index_by_NID
    - EVP_PKEY_base_id
    - sk_GENERAL_NAME_num
    - EVP_PKEY_bits
    - STACK_OF
    - SSLv23_server_method
    - sk_GENERAL_NAME_pop_free
    - ckch_inst_new
    - SSL_CTX_new
    - X509_NAME_ENTRY_get_data
    - memprintf
    - X509_get_pubkey
    - ssl_sock_put_ckch_into_ctx
    - X509_get_subject_name
    - ckch_inst_free
    - X509_NAME_get_entry
    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:3279,1
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/ssl_sock.c:3281,1
    - Dst: SSLv23_client_method
      Src: /src/haproxy/src/ssl_sock.c:3281,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - is_quic
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3282
      start: 3276
    functionDepth: 1
    functionLinenumber: 3276
    functionLinenumberEnd: 3282
    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:3286,1
    - Dst: SSLv23_client_method
      Src: /src/haproxy/src/ssl_sock.c:3286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_quic
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3287
      start: 3284
    functionDepth: 0
    functionLinenumber: 3284
    functionLinenumberEnd: 3287
    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:3314,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3316,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:3323,1
    - Dst: ssl_sock_put_srv_ckch_into_ctx
      Src: /src/haproxy/src/ssl_sock.c:3325,1
    - Dst: ckch_inst_new
      Src: /src/haproxy/src/ssl_sock.c:3329,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3331,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:3348,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: 3351
      start: 3299
    functionDepth: 3
    functionLinenumber: 3299
    functionLinenumberEnd: 3351
    functionName: ckch_inst_new_load_srv_store
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    - SSL_CTX_set_security_level
    - ckch_inst_new
    - memprintf
    - ssl_sock_put_srv_ckch_into_ctx
    - ssl_sock_new_ssl_ctx
    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:3363,1
    - Dst: ssl_sock_load_cert_sni
      Src: /src/haproxy/src/ssl_sock.c:3368,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:3371,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: 3373
      start: 3354
    functionDepth: 8
    functionLinenumber: 3354
    functionLinenumberEnd: 3373
    functionName: ssl_sock_load_ckchs
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - ckch_inst_new_load_store
    - ssl_sock_load_cert_sni
    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:3385,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:3386,1
    - Dst: SSL_CTX_up_ref
      Src: /src/haproxy/src/ssl_sock.c:3393,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:3396,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: 3398
      start: 3379
    functionDepth: 4
    functionLinenumber: 3379
    functionLinenumberEnd: 3398
    functionName: ssl_sock_load_srv_ckchs
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - SSL_CTX_up_ref
    - ckch_inst_new_load_srv_store
    - srv_is_quic
    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:3413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3417
      start: 3408
    functionDepth: 0
    functionLinenumber: 3408
    functionLinenumberEnd: 3417
    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:3436,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3438,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:3446,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:3450,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:3452,1
    - Dst: crtlist_load_cert_dir
      Src: /src/haproxy/src/ssl_sock.c:3456,1
    - Dst: crtlist_parse_file
      Src: /src/haproxy/src/ssl_sock.c:3458,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_sock.c:3461,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:3470,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:3479,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:3479,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3483,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3485,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:3488,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:3504,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_sock.c:3508,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_sock.c:3515,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:3519,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: 3522
      start: 3427
    functionDepth: 9
    functionLinenumber: 3427
    functionLinenumberEnd: 3522
    functionName: ssl_sock_load_cert_list_file
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ebst_insert
    - crtlist_parse_file
    - eb_is_empty
    - list_for_each_entry
    - crtlist_load_cert_dir
    - list_for_each_entry_safe
    - LIST_APPEND
    - strlen
    - free
    - malloc
    - ckch_inst_free
    - memprintf
    - ebmb_entry
    - ebst_lookup
    - ssl_sock_load_ckchs
    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:3536,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:3536,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_sock.c:3540,1
    - Dst: ckch_conf_cmp_empty
      Src: /src/haproxy/src/ssl_sock.c:3542,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3544,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3549,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_sock.c:3552,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/ssl_sock.c:3554,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_sock.c:3555,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3558,1
    - Dst: ssl_sock_load_cert_list_file
      Src: /src/haproxy/src/ssl_sock.c:3560,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_sock.c:3573,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_sock.c:3577,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3578,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_sock.c:3581,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_sock.c:3583,1
    - Dst: ssl_sock_load_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3586,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3592,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3600,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_sock.c:3601,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: 3606
      start: 3525
    functionDepth: 10
    functionLinenumber: 3525
    functionLinenumberEnd: 3606
    functionName: ssl_sock_load_cert
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - snprintf
    - stat
    - ckch_conf_cmp_empty
    - ckchs_lookup
    - ckch_store_new_load_files_path
    - memprintf
    - ssl_sock_load_cert_list_file
    - eb_is_empty
    - S_ISDIR
    - ssl_sock_load_ckchs
    - strerror
    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:3620,1
    - Dst: ssl_sock_load_srv_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3622,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3626,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_sock.c:3632,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/ssl_sock.c:3634,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_sock.c:3636,1
    - Dst: ssl_sock_load_srv_ckchs
      Src: /src/haproxy/src/ssl_sock.c:3639,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:3644,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_sock.c:3645,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: 3651
      start: 3613
    functionDepth: 5
    functionLinenumber: 3613
    functionLinenumberEnd: 3651
    functionName: ssl_sock_load_srv_cert
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_sock_load_srv_ckchs
    - stat
    - ckchs_lookup
    - ckch_store_new_load_files_path
    - memprintf
    - strerror
    - S_ISDIR
    linkageType: ''
    returnType: int
    signature: int ssl_sock_load_srv_cert(char *path, struct server *server, int create_if_none,
      char **err)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/ssl_sock.c:3678,1
    - Dst: SSLv23_server_method
      Src: /src/haproxy/src/ssl_sock.c:3678,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:3682,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:3685,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:3699,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:3718,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:3735,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:3747,1
    - Dst: SSL_CTX_clear_options
      Src: /src/haproxy/src/ssl_sock.c:3752,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:3760,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:3761,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/ssl_sock.c:3773,1
    - Dst: SSL_CTX_set_mode
      Src: /src/haproxy/src/ssl_sock.c:3779,1
    - Dst: SSL_CTX_set_timeout
      Src: /src/haproxy/src/ssl_sock.c:3781,1
    - Dst: SSL_CTX_set_select_certificate_cb
      Src: /src/haproxy/src/ssl_sock.c:3785,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/ssl_sock.c:3786,1
    - Dst: SSL_CTX_set_early_data_enabled
      Src: /src/haproxy/src/ssl_sock.c:3788,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/ssl_sock.c:3792,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/haproxy/src/ssl_sock.c:3794,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/ssl_sock.c:3795,1
    - Dst: SSL_CTX_set_cert_cb
      Src: /src/haproxy/src/ssl_sock.c:3797,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/ssl_sock.c:3800,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/haproxy/src/ssl_sock.c:3802,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 77
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3805
      start: 3654
    functionDepth: 1
    functionLinenumber: 3654
    functionLinenumberEnd: 3805
    functionName: ssl_sock_initial_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_set_tlsext_servername_arg
    - ha_warning
    - SSL_CTX_set_early_data_enabled
    - ctx_set_version
    - SSL_CTX_set_options
    - SSL_CTX_set_mode
    - SSL_CTX_set_timeout
    - SSL_CTX_set_select_certificate_cb
    - SSLv23_server_method
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_CTX_set_security_level
    - SSL_CTX_set_client_hello_cb
    - SSL_CTX_new
    - ha_alert
    - SSL_CTX_clear_options
    - SSL_CTX_set_cert_cb
    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:3812,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - first
    - data
    argTypes:
    - struct shared_block*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3813
      start: 3808
    functionDepth: 1
    functionLinenumber: 3808
    functionLinenumberEnd: 3813
    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: 3820
      start: 3816
    functionDepth: 0
    functionLinenumber: 3816
    functionLinenumberEnd: 3820
    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:3833,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/ssl_sock.c:3839,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:3843,1
    - Dst: sh_ssl_sess_tree_insert
      Src: /src/haproxy/src/ssl_sock.c:3848,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/ssl_sock.c:3853,1
    - Dst: sh_ssl_sess_first_block
      Src: /src/haproxy/src/ssl_sock.c:3857,1
    - Dst: shctx_row_detach
      Src: /src/haproxy/src/ssl_sock.c:3858,1
    - Dst: shctx_row_data_append
      Src: /src/haproxy/src/ssl_sock.c:3862,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/ssl_sock.c:3863,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/ssl_sock.c:3867,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/ssl_sock.c:3869,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: 3872
      start: 3828
    functionDepth: 1
    functionLinenumber: 3828
    functionLinenumberEnd: 3872
    functionName: sh_ssl_sess_store
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - shctx_row_reattach
    - shctx_row_reserve_hot
    - sh_ssl_sess_tree_insert
    - sh_ssl_sess_first_block
    - shctx_row_data_append
    - shctx_row_detach
    - shctx_wrunlock
    - shctx_wrlock
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sh_ssl_sess_store(unsigned char *s_id, unsigned char *data, int
      data_len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_get_conn
      Src: /src/haproxy/src/ssl_sock.c:3877,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:3881,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:3882,1
    - Dst: i2d_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:3897,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sock.c:3898,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:3899,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:3904,1
    - Dst: realloc
      Src: /src/haproxy/src/ssl_sock.c:3909,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:3911,1
    - Dst: i2d_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:3921,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:3930,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:3932,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:3934,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sock.c:3938,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:3939,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:3941,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:3945,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:3947,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:3948,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:3950,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:3953,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:3954,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:3955,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:3958,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:3960,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:3962,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3966
      start: 3875
    functionDepth: 1
    functionLinenumber: 3875
    functionLinenumberEnd: 3966
    functionName: ssl_sess_new_srv_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - strdup
    - HA_RWLOCK_WRLOCK
    - strcmp
    - __objt_server
    - ssl_sock_get_conn
    - ha_free
    - HA_RWLOCK_WRUNLOCK
    - BUG_ON
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_CAS
    - HA_RWLOCK_RDUNLOCK
    - realloc
    - free
    - SSL_get_servername
    - i2d_SSL_SESSION
    - 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:3987,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:3990,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_sock.c:3994,1
    - Dst: SSL_SESSION_set1_id
      Src: /src/haproxy/src/ssl_sock.c:3997,1
    - Dst: SSL_SESSION_set1_id_context
      Src: /src/haproxy/src/ssl_sock.c:4000,1
    - Dst: i2d_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:4003,1
    - Dst: i2d_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:4010,1
    - Dst: sh_ssl_sess_store
      Src: /src/haproxy/src/ssl_sock.c:4014,1
    - Dst: SSL_SESSION_set1_id
      Src: /src/haproxy/src/ssl_sock.c:4017,1
    - Dst: SSL_SESSION_set1_id_context
      Src: /src/haproxy/src/ssl_sock.c:4018,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4018,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ssl
    - sess
    argTypes:
    - SSL*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4021
      start: 3970
    functionDepth: 2
    functionLinenumber: 3970
    functionLinenumberEnd: 4021
    functionName: sh_ssl_sess_new_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memset
    - sh_ssl_sess_store
    - SSL_SESSION_get_id
    - SSL_SESSION_set1_id
    - strlen
    - i2d_SSL_SESSION
    - SSL_SESSION_set1_id_context
    - memcpy
    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:4032,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:4039,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_sock.c:4040,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/ssl_sock.c:4045,1
    - Dst: sh_ssl_sess_tree_lookup
      Src: /src/haproxy/src/ssl_sock.c:4048,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/ssl_sock.c:4051,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:4052,1
    - Dst: sh_ssl_sess_first_block
      Src: /src/haproxy/src/ssl_sock.c:4057,1
    - Dst: shctx_row_data_get
      Src: /src/haproxy/src/ssl_sock.c:4059,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/ssl_sock.c:4061,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:4065,1
    - Dst: SSL_SESSION_set1_id
      Src: /src/haproxy/src/ssl_sock.c:4068,1
    - Dst: SSL_SESSION_set1_id_context
      Src: /src/haproxy/src/ssl_sock.c:4069,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4069,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: 4073
      start: 4024
    functionDepth: 1
    functionLinenumber: 4024
    functionLinenumberEnd: 4073
    functionName: sh_ssl_sess_get_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memset
    - sh_ssl_sess_first_block
    - d2i_SSL_SESSION
    - SSL_SESSION_set1_id
    - strlen
    - shctx_row_data_get
    - shctx_wrunlock
    - _HA_ATOMIC_INC
    - shctx_wrlock
    - SSL_SESSION_set1_id_context
    - sh_ssl_sess_tree_lookup
    - memcpy
    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:4085,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:4088,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_sock.c:4089,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/ssl_sock.c:4093,1
    - Dst: sh_ssl_sess_tree_lookup
      Src: /src/haproxy/src/ssl_sock.c:4096,1
    - Dst: sh_ssl_sess_tree_delete
      Src: /src/haproxy/src/ssl_sock.c:4099,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/ssl_sock.c:4103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - sess
    argTypes:
    - SSL_CTX*
    - SSL_SESSION*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4104
      start: 4077
    functionDepth: 1
    functionLinenumber: 4077
    functionLinenumberEnd: 4104
    functionName: sh_ssl_sess_remove_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - memset
    - sh_ssl_sess_tree_delete
    - SSL_SESSION_get_id
    - shctx_wrunlock
    - shctx_wrlock
    - sh_ssl_sess_tree_lookup
    - memcpy
    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:4111,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4111,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/haproxy/src/ssl_sock.c:4114,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/haproxy/src/ssl_sock.c:4118,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/haproxy/src/ssl_sock.c:4123,1
    - Dst: SSL_CTX_sess_set_get_cb
      Src: /src/haproxy/src/ssl_sock.c:4124,1
    - Dst: SSL_CTX_sess_set_remove_cb
      Src: /src/haproxy/src/ssl_sock.c:4125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4126
      start: 4109
    functionDepth: 0
    functionLinenumber: 4109
    functionLinenumberEnd: 4126
    functionName: ssl_set_shctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_sess_set_get_cb
    - SSL_CTX_set_session_id_context
    - SSL_CTX_sess_set_remove_cb
    - SSL_CTX_sess_set_new_cb
    - strlen
    - SSL_CTX_set_session_cache_mode
    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:4144,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:4146,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_sock.c:4150,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_sock.c:4154,1
    - Dst: strncpy
      Src: /src/haproxy/src/ssl_sock.c:4158,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4161,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4161,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4166,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4166,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4171,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4171,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4176,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4176,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4181,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4181,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4186,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4186,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4191,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4191,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_sock.c:4196,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:4196,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:4207,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 69
    argCount: 2
    argNames:
    - ssl
    - line
    argTypes:
    - SSL*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4210
      start: 4137
    functionDepth: 1
    functionLinenumber: 4137
    functionLinenumberEnd: 4210
    functionName: SSL_CTX_keylog
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - pool_free
    - strncmp
    - strrchr
    - quic_tls_compat_keylog_callback
    - pool_alloc
    - strlen
    - strncpy
    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:4228,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4260,1
    - Dst: SSL_CTX_set_verify
      Src: /src/haproxy/src/ssl_sock.c:4277,1
    - Dst: ssl_set_verify_locations_file
      Src: /src/haproxy/src/ssl_sock.c:4284,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4285,1
    - Dst: ssl_set_verify_locations_file
      Src: /src/haproxy/src/ssl_sock.c:4289,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4290,1
    - Dst: SSL_CTX_set_client_CA_list
      Src: /src/haproxy/src/ssl_sock.c:4296,1
    - Dst: SSL_dup_CA_list
      Src: /src/haproxy/src/ssl_sock.c:4296,1
    - Dst: ssl_get_client_ca_file
      Src: /src/haproxy/src/ssl_sock.c:4296,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:4300,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4304,1
    - Dst: ssl_set_cert_crl_file
      Src: /src/haproxy/src/ssl_sock.c:4311,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4312,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:4317,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:4321,1
    - Dst: SSL_CTX_set_tlsext_ticket_key_evp_cb
      Src: /src/haproxy/src/ssl_sock.c:4325,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4326,1
    - Dst: ssl_set_shctx
      Src: /src/haproxy/src/ssl_sock.c:4333,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/haproxy/src/ssl_sock.c:4336,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4337,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/haproxy/src/ssl_sock.c:4345,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4346,1
    - Dst: ssl_get_dh_1024
      Src: /src/haproxy/src/ssl_sock.c:4354,1
    - Dst: ssl_get_dh_2048
      Src: /src/haproxy/src/ssl_sock.c:4356,1
    - Dst: ssl_get_dh_4096
      Src: /src/haproxy/src/ssl_sock.c:4358,1
    - Dst: SSL_CTX_set_info_callback
      Src: /src/haproxy/src/ssl_sock.c:4361,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:4363,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/haproxy/src/ssl_sock.c:4368,1
    - Dst: SSL_CTX_set_next_protos_advertised_cb
      Src: /src/haproxy/src/ssl_sock.c:4378,1
    - Dst: SSL_CTX_set_alpn_select_cb
      Src: /src/haproxy/src/ssl_sock.c:4387,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_sock.c:4392,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4393,1
    - Dst: SSL_CTX_set_ecdh_auto
      Src: /src/haproxy/src/ssl_sock.c:4397,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_sock.c:4408,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4409,1
    - Dst: OBJ_sn2nid
      Src: /src/haproxy/src/ssl_sock.c:4423,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/haproxy/src/ssl_sock.c:4424,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4425,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/haproxy/src/ssl_sock.c:4430,1
    - Dst: EC_KEY_free
      Src: /src/haproxy/src/ssl_sock.c:4431,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:4440,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4441,1
    - Dst: SSL_CTX_set1_client_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:4451,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:4452,1
    - Dst: quic_tls_compat_init
      Src: /src/haproxy/src/ssl_sock.c:4460,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: 4465
      start: 4217
    functionDepth: 3
    functionLinenumber: 4217
    functionLinenumberEnd: 4465
    functionName: ssl_sock_prepare_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ssl_get_dh_2048
    - SSL_CTX_set_alpn_select_cb
    - SSL_CTX_set_ciphersuites
    - SSL_CTX_set_tmp_ecdh
    - SSL_CTX_set_msg_callback
    - ssl_set_shctx
    - SSL_CTX_set1_curves_list
    - SSL_CTX_get_cert_store
    - X509_STORE_set_flags
    - ssl_get_dh_4096
    - SSL_CTX_set_next_protos_advertised_cb
    - SSL_CTX_set1_sigalgs_list
    - ssl_set_cert_crl_file
    - ssl_get_dh_1024
    - EC_KEY_new_by_curve_name
    - OBJ_sn2nid
    - memprintf
    - SSL_CTX_set_verify
    - SSL_CTX_set_tlsext_ticket_key_evp_cb
    - SSL_CTX_set1_client_sigalgs_list
    - SSL_CTX_set_ecdh_auto
    - EC_KEY_free
    - SSL_CTX_set_cipher_list
    - SSL_CTX_set_keylog_callback
    - ERR_clear_error
    - quic_tls_compat_init
    - ssl_set_verify_locations_file
    - ssl_get_client_ca_file
    - SSL_CTX_set_info_callback
    - SSL_CTX_set_client_CA_list
    - SSL_dup_CA_list
    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:4482,1
    - Dst: ckch_inst_add_cafile_link
      Src: /src/haproxy/src/ssl_sock.c:4484,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: 4487
      start: 4477
    functionDepth: 4
    functionLinenumber: 4477
    functionLinenumberEnd: 4487
    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:4495,1
    - Dst: strchr
      Src: /src/haproxy/src/ssl_sock.c:4524,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/ssl_sock.c:4526,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/ssl_sock.c:4538,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/ssl_sock.c:4539,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - pattern
    - hostname
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4543
      start: 4489
    functionDepth: 0
    functionLinenumber: 4489
    functionLinenumberEnd: 4543
    functionName: ssl_sock_srv_hostcheck
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - strncasecmp
    - strchr
    linkageType: ''
    returnType: int
    signature: int ssl_sock_srv_hostcheck(const char *pattern, const char *hostname)
  - BBCount: 166
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_sock.c:4555,1
    - Dst: X509_STORE_CTX_get_ex_data
      Src: /src/haproxy/src/ssl_sock.c:4563,1
    - Dst: SSL_get_ex_data_X509_STORE_CTX_idx
      Src: /src/haproxy/src/ssl_sock.c:4563,1
    - Dst: ssl_sock_get_conn
      Src: /src/haproxy/src/ssl_sock.c:4564,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:4565,1
    - Dst: __conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:4566,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sock.c:4574,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:4577,1
    - Dst: X509_STORE_CTX_get_error_depth
      Src: /src/haproxy/src/ssl_sock.c:4584,1
    - Dst: X509_STORE_CTX_get_current_cert
      Src: /src/haproxy/src/ssl_sock.c:4592,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_sock.c:4597,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/haproxy/src/ssl_sock.c:4599,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/haproxy/src/ssl_sock.c:4600,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:4603,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:4605,1
    - Dst: ssl_sock_srv_hostcheck
      Src: /src/haproxy/src/ssl_sock.c:4607,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_sock.c:4608,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/haproxy/src/ssl_sock.c:4612,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:4615,1
    - Dst: X509_NAME_get_index_by_NID
      Src: /src/haproxy/src/ssl_sock.c:4617,1
    - Dst: X509_NAME_get_entry
      Src: /src/haproxy/src/ssl_sock.c:4618,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/haproxy/src/ssl_sock.c:4620,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_sock.c:4621,1
    - Dst: ssl_sock_srv_hostcheck
      Src: /src/haproxy/src/ssl_sock.c:4622,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_sock.c:4623,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:4645,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4646,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:4653,1
    - Dst: ssl_sock_load_srv_cert
      Src: /src/haproxy/src/ssl_sock.c:4662,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:4665,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4667,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:4672,1
    - Dst: ssl_sock_new_ssl_ctx
      Src: /src/haproxy/src/ssl_sock.c:4680,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:4680,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4682,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:4687,1
    - Dst: ssl_sock_prep_srv_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:4692,1
    - Dst: SSL_CTX_get_cert_store
      Src: /src/haproxy/src/ssl_sock.c:4726,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:4729,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:4733,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:4752,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/ssl_sock.c:4754,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4769,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/ssl_sock.c:4770,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:4778,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:4785,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:4786,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/ssl_sock.c:4800,1
    - Dst: SSL_CTX_set_mode
      Src: /src/haproxy/src/ssl_sock.c:4806,1
    - Dst: SSL_CTX_set_verify
      Src: /src/haproxy/src/ssl_sock.c:4818,1
    - Dst: ssl_set_verify_locations_file
      Src: /src/haproxy/src/ssl_sock.c:4823,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4824,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:4830,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4835,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4837,1
    - Dst: ssl_set_cert_crl_file
      Src: /src/haproxy/src/ssl_sock.c:4842,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4843,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:4848,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/haproxy/src/ssl_sock.c:4854,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/haproxy/src/ssl_sock.c:4855,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/haproxy/src/ssl_sock.c:4857,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4858,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:4864,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/haproxy/src/ssl_sock.c:4870,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/haproxy/src/ssl_sock.c:4875,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4876,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/haproxy/src/ssl_sock.c:4883,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/haproxy/src/ssl_sock.c:4887,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:4893,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4894,1
    - Dst: SSL_CTX_set1_client_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:4903,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4904,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_sock.c:4914,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4915,1
    - Dst: ssl_sock_prepare_srv_ssl_ctx
      Src: /src/haproxy/src/ssl_sock.c:4940,1
    - Dst: ckch_inst_add_cafile_link
      Src: /src/haproxy/src/ssl_sock.c:4942,1
    - Dst: xprt_get
      Src: /src/haproxy/src/ssl_sock.c:4956,1
    - Dst: ssl_quic_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:4957,1
    - Dst: ssl_sock_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:4959,1
    - Dst: ssl_sock_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:4964,1
    - Dst: ssl_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:4985,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:4989,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:4992,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:4994,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:4997,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:4999,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5002,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5004,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5007,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5009,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5013,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5015,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5019,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5035,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5035,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5036,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5043,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5043,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5045,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5049,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:5061,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_sock.c:5062,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:5065,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5076,1
    - Dst: ssl_sock_chose_sni_ctx
      Src: /src/haproxy/src/ssl_sock.c:5087,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5089,1
    - Dst: shctx_init
      Src: /src/haproxy/src/ssl_sock.c:5096,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5101,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5103,1
    - Dst: ssl_sock_prepare_all_ctx
      Src: /src/haproxy/src/ssl_sock.c:5114,1
    - Dst: ssl_sock_gencert_load_ca
      Src: /src/haproxy/src/ssl_sock.c:5118,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5129,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5132,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5138,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5139,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5141,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5145,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5149,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5150,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5151,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5152,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5154,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/ssl_sock.c:5155,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5158,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5160,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_sock.c:5163,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5174,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5176,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5177,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_sock.c:5178,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5179,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5180,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5181,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5185,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5187,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5188,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_sock.c:5189,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5190,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5191,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5192,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5196,1
    - Dst: crtlist_deinit
      Src: /src/haproxy/src/ssl_sock.c:5203,1
    - Dst: ckch_deinit
      Src: /src/haproxy/src/ssl_sock.c:5204,1
    - Dst: REGISTER_POST_DEINIT
      Src: /src/haproxy/src/ssl_sock.c:5206,1
    - Dst: ssl_sock_gencert_free_ca
      Src: /src/haproxy/src/ssl_sock.c:5212,1
    - Dst: ssl_sock_free_all_ctx
      Src: /src/haproxy/src/ssl_sock.c:5214,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_sock.c:5215,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5216,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5217,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5219,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5220,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5221,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5222,1
    - Dst: SSL_new
      Src: /src/haproxy/src/ssl_sock.c:5246,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5251,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_sock.c:5255,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:5257,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5262,1
    - Dst: BIO_set_data
      Src: /src/haproxy/src/ssl_sock.c:5266,1
    - Dst: SSL_set_bio
      Src: /src/haproxy/src/ssl_sock.c:5267,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:5270,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:5271,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5276,1
    - Dst: struct ssl_sock_ctx*::xprt::start
      Src: /src/haproxy/src/ssl_sock.c:5297,1
    - Dst: setsockopt
      Src: /src/haproxy/src/ssl_sock.c:5306,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:5309,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5329,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ssl_sock.c:5329,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5340,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:5349,1
    - Dst: SSL_set_session
      Src: /src/haproxy/src/ssl_sock.c:5351,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:5352,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5354,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5355,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:5356,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5357,1
    - Dst: HA_RWLOCK_WRTORD
      Src: /src/haproxy/src/ssl_sock.c:5358,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/haproxy/src/ssl_sock.c:5360,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5361,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5364,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5365,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/haproxy/src/ssl_sock.c:5367,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5368,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:5379,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5382,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:5386,1
    - Dst: SSL_set_session
      Src: /src/haproxy/src/ssl_sock.c:5388,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5389,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5390,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/haproxy/src/ssl_sock.c:5395,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5397,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5400,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:5414,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_sock.c:5420,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5423,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/ssl_sock.c:5426,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:5429,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5430,1
    - Dst: increment_sslconn
      Src: /src/haproxy/src/ssl_sock.c:5449,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5452,1
    - Dst: xprt_get
      Src: /src/haproxy/src/ssl_sock.c:5459,1
    - Dst: struct ssl_sock_ctx*::xprt::init
      Src: /src/haproxy/src/ssl_sock.c:5461,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:5467,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:5468,1
    - Dst: ssl_bio_and_sess_init
      Src: /src/haproxy/src/ssl_sock.c:5470,1
    - Dst: SSL_set_connect_state
      Src: /src/haproxy/src/ssl_sock.c:5474,1
    - Dst: SSL_set_renegotiate_mode
      Src: /src/haproxy/src/ssl_sock.c:5478,1
    - Dst: ssl_sock_srv_try_reuse_sess
      Src: /src/haproxy/src/ssl_sock.c:5480,1
    - Dst: SSL_set_options
      Src: /src/haproxy/src/ssl_sock.c:5485,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5493,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:5496,1
    - Dst: objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5499,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5500,1
    - Dst: ssl_bio_and_sess_init
      Src: /src/haproxy/src/ssl_sock.c:5502,1
    - Dst: b_alloc
      Src: /src/haproxy/src/ssl_sock.c:5508,1
    - Dst: SSL_set_max_early_data
      Src: /src/haproxy/src/ssl_sock.c:5509,1
    - Dst: b_is_null
      Src: /src/haproxy/src/ssl_sock.c:5513,1
    - Dst: SSL_set_accept_state
      Src: /src/haproxy/src/ssl_sock.c:5518,1
    - Dst: SSL_set_options
      Src: /src/haproxy/src/ssl_sock.c:5530,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5535,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:5538,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:5545,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:5547,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:5548,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5549,1
    - Dst: SSL_session_reused
      Src: /src/haproxy/src/ssl_sock.c:5562,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/ssl_sock.c:5564,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/ssl_sock.c:5569,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5575,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5576,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5580,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5581,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:5593,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:5602,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/ssl_sock.c:5604,1
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sock.c:5608,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5610,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_sock.c:5611,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_sock.c:5612,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:5617,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_sock.c:5618,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_sock.c:5619,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5632,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:5641,1
    - Dst: getsockopt
      Src: /src/haproxy/src/ssl_sock.c:5645,1
    - Dst: SSL_read_early_data
      Src: /src/haproxy/src/ssl_sock.c:5659,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:5660,1
    - Dst: b_room
      Src: /src/haproxy/src/ssl_sock.c:5660,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5663,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5667,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:5669,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:5673,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:5674,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:5675,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:5687,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:5690,1
    - Dst: SSL_peek
      Src: /src/haproxy/src/ssl_sock.c:5692,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:5695,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:5700,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5701,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:5708,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5710,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:5715,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5716,1
    - Dst: ssl_async_process_fds
      Src: /src/haproxy/src/ssl_sock.c:5721,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5722,1
    - Dst: SSL_get_state
      Src: /src/haproxy/src/ssl_sock.c:5738,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5766,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/ssl_sock.c:5776,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5780,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:5784,1
    - Dst: SSL_do_handshake
      Src: /src/haproxy/src/ssl_sock.c:5789,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:5793,1
    - Dst: ERR_peek_error
      Src: /src/haproxy/src/ssl_sock.c:5796,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:5801,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5802,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:5808,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5810,1
    - Dst: ssl_async_process_fds
      Src: /src/haproxy/src/ssl_sock.c:5815,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5816,1
    - Dst: SSL_get_state
      Src: /src/haproxy/src/ssl_sock.c:5832,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5860,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/ssl_sock.c:5866,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5868,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/ssl_sock.c:5879,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5883,1
    CyclomaticComplexity: 237
    EdgeCount: 237
    ICount: 764
    argCount: 2
    argNames:
    - ok
    - ctx
    argTypes:
    - int
    - X509_STORE_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5886
      start: 4545
    functionDepth: 6
    functionLinenumber: 4545
    functionLinenumberEnd: 5886
    functionName: ssl_sock_srv_verifycbk
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __objt_listener
    - BIO_new
    - HA_RWLOCK_WRTORD
    - ssl_sock_prepare_srv_ssl_ctx
    - ssl_sock_gencert_load_ca
    - SSL_CTX_set_next_proto_select_cb
    - eb_is_empty
    - proxy_type_str
    - X509_STORE_CTX_get_current_cert
    - ssl_sock_prepare_all_ctx
    - b_free
    - SSL_CTX_get_cert_store
    - SSL_session_reused
    - X509_STORE_CTX_get_ex_data
    - ebmb_first
    - b_is_null
    - ha_free
    - calloc
    - _HA_ATOMIC_DEC
    - SSL_set_tlsext_host_name
    - d2i_SSL_SESSION
    - SSL_set_accept_state
    - ssl_sock_prep_srv_ctx_and_inst
    - ha_alert
    - ckch_inst_add_cafile_link
    - SSL_CTX_set_keylog_callback
    - SSL_set_ex_data
    - ssl_async_process_fds
    - LIST_DELETE
    - getsockopt
    - SSL_CTX_set_mode
    - ssl_set_verify_locations_file
    - SSL_set_connect_state
    - objt_listener
    - free
    - obj_type
    - OPENSSL_free
    - SSL_CTX_set_ciphersuites
    - SSL_CTX_set_msg_callback
    - setsockopt
    - ebmb_entry
    - struct ssl_sock_ctx*::xprt::init
    - _HA_ATOMIC_INC
    - BIO_set_data
    - ssl_sock_free_all_ctx
    - SSL_set_options
    - tasklet_free
    - ctx_set_version
    - SSL_CTX_set_options
    - ssl_sock_get_conn
    - X509_STORE_set_flags
    - b_data
    - ssl_bio_and_sess_init
    - X509_NAME_get_index_by_NID
    - SSL_free
    - sk_GENERAL_NAME_num
    - ssl_set_cert_crl_file
    - BUG_ON
    - SSL_CTX_set_verify
    - release_sample_expr
    - HA_RWLOCK_RDLOCK
    - X509_get_subject_name
    - SSL_CTX_sess_set_new_cb
    - __ha_cpu_relax
    - objt_server
    - TRACE_STATE
    - SSL_do_handshake
    - TRACE_ENTER
    - conn_ctrl_ready
    - xprt_get
    - conn_ctrl_drain
    - b_alloc
    - b_add
    - HA_ATOMIC_INC
    - X509_get_ext_d2i
    - ssl_initial_ctx
    - ssl_sock_load_srv_cert
    - pool_free
    - SSL_get_error
    - ckch_deinit
    - ebmb_delete
    - ASN1_STRING_to_UTF8
    - SSL_CTX_set_session_cache_mode
    - ssl_sock_chose_sni_ctx
    - ha_warning
    - SSL_CTX_free
    - HA_RWLOCK_WRLOCK
    - sk_GENERAL_NAME_value
    - container_of
    - SSL_set_renegotiate_mode
    - ssl_sock_gencert_free_ca
    - SSL_get_state
    - _HA_ATOMIC_CAS
    - tasklet_wakeup
    - ssl_quic_initial_ctx
    - __objt_server
    - HA_ATOMIC_LOAD
    - struct ssl_sock_ctx*::xprt::start
    - HA_RWLOCK_RDUNLOCK
    - SSL_get_servername
    - shctx_init
    - tasklet_new
    - SSL_CTX_set_alpn_protos
    - SSL_set_bio
    - TRACE_ERROR
    - ckch_inst_free
    - srv_is_quic
    - ebmb_next_dup
    - struct ssl_sock_ctx*::xprt::subscribe
    - X509_NAME_get_entry
    - ssl_sock_initial_ctx
    - REGISTER_POST_DEINIT
    - ERR_peek_error
    - b_tail
    - SSL_CTX_set_security_level
    - EXTRA_COUNTERS_GET
    - conn_get_ssl_sock_ctx
    - pool_alloc
    - ssl_sock_prep_ctx_and_inst
    - increment_sslconn
    - update_freq_ctr
    - SSL_renegotiate_pending
    - SSL_CTX_set1_curves_list
    - TRACE_LEAVE
    - crtlist_deinit
    - SSL_get_ex_data_X509_STORE_CTX_idx
    - SSL_SESSION_free
    - ssl_sock_free_ssl_conf
    - __conn_get_ssl_sock_ctx
    - STACK_OF
    - SSL_CTX_set1_sigalgs_list
    - ssl_sock_new_ssl_ctx
    - SSL_new
    - ssl_sock_srv_hostcheck
    - sk_GENERAL_NAME_pop_free
    - HA_ATOMIC_CAS
    - b_room
    - X509_NAME_ENTRY_get_data
    - pool_gc
    - SSL_CTX_set1_client_sigalgs_list
    - ebst_lookup
    - SSL_set_session
    - SSL_CTX_set_cipher_list
    - SSL_read_early_data
    - ssl_sock_srv_try_reuse_sess
    - SSL_set_max_early_data
    - SSL_peek
    - ebmb_next
    - X509_STORE_CTX_get_error_depth
    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:4645,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4646,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:4653,1
    - Dst: ssl_sock_load_srv_cert
      Src: /src/haproxy/src/ssl_sock.c:4662,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:4665,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4667,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:4672,1
    - Dst: ssl_sock_new_ssl_ctx
      Src: /src/haproxy/src/ssl_sock.c:4680,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:4680,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4682,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_sock.c:4687,1
    - Dst: ssl_sock_prep_srv_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:4692,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4695
      start: 4634
    functionDepth: 6
    functionLinenumber: 4634
    functionLinenumberEnd: 4695
    functionName: ssl_sock_prepare_srv_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - ssl_sock_load_srv_cert
    - ha_free
    - SSL_CTX_set_security_level
    - ssl_sock_prep_srv_ctx_and_inst
    - srv_is_quic
    - ha_alert
    - calloc
    - ssl_sock_new_ssl_ctx
    linkageType: ''
    returnType: int
    signature: int ssl_sock_prepare_srv_ctx(struct server *srv)
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_get_cert_store
      Src: /src/haproxy/src/ssl_sock.c:4726,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_sock.c:4729,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:4733,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:4752,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/ssl_sock.c:4754,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4769,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/ssl_sock.c:4770,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:4778,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:4785,1
    - Dst: ctx_set_version
      Src: /src/haproxy/src/ssl_sock.c:4786,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/ssl_sock.c:4800,1
    - Dst: SSL_CTX_set_mode
      Src: /src/haproxy/src/ssl_sock.c:4806,1
    - Dst: SSL_CTX_set_verify
      Src: /src/haproxy/src/ssl_sock.c:4818,1
    - Dst: ssl_set_verify_locations_file
      Src: /src/haproxy/src/ssl_sock.c:4823,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4824,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:4830,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4835,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4837,1
    - Dst: ssl_set_cert_crl_file
      Src: /src/haproxy/src/ssl_sock.c:4842,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4843,1
    - Dst: X509_STORE_set_flags
      Src: /src/haproxy/src/ssl_sock.c:4848,1
    - Dst: SSL_CTX_set_session_cache_mode
      Src: /src/haproxy/src/ssl_sock.c:4854,1
    - Dst: SSL_CTX_sess_set_new_cb
      Src: /src/haproxy/src/ssl_sock.c:4855,1
    - Dst: SSL_CTX_set_cipher_list
      Src: /src/haproxy/src/ssl_sock.c:4857,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4858,1
    - Dst: SSL_CTX_set_msg_callback
      Src: /src/haproxy/src/ssl_sock.c:4864,1
    - Dst: SSL_CTX_set_keylog_callback
      Src: /src/haproxy/src/ssl_sock.c:4870,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/haproxy/src/ssl_sock.c:4875,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4876,1
    - Dst: SSL_CTX_set_next_proto_select_cb
      Src: /src/haproxy/src/ssl_sock.c:4883,1
    - Dst: SSL_CTX_set_alpn_protos
      Src: /src/haproxy/src/ssl_sock.c:4887,1
    - Dst: SSL_CTX_set1_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:4893,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4894,1
    - Dst: SSL_CTX_set1_client_sigalgs_list
      Src: /src/haproxy/src/ssl_sock.c:4903,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4904,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_sock.c:4914,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:4915,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 123
    argCount: 2
    argNames:
    - srv
    - ctx
    argTypes:
    - struct server*
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4923
      start: 4700
    functionDepth: 3
    functionLinenumber: 4700
    functionLinenumberEnd: 4923
    functionName: ssl_sock_prepare_srv_ssl_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set_ciphersuites
    - SSL_CTX_set_msg_callback
    - SSL_CTX_set_next_proto_select_cb
    - proxy_type_str
    - SSL_CTX_set_session_cache_mode
    - SSL_CTX_set1_curves_list
    - SSL_CTX_get_cert_store
    - ha_warning
    - ctx_set_version
    - SSL_CTX_set_options
    - X509_STORE_set_flags
    - SSL_CTX_set1_sigalgs_list
    - ssl_set_cert_crl_file
    - SSL_CTX_set_verify
    - ha_alert
    - SSL_CTX_set1_client_sigalgs_list
    - SSL_CTX_set_cipher_list
    - SSL_CTX_set_keylog_callback
    - SSL_CTX_set_alpn_protos
    - SSL_CTX_set_mode
    - ssl_set_verify_locations_file
    - SSL_CTX_sess_set_new_cb
    - srv_is_quic
    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:4940,1
    - Dst: ckch_inst_add_cafile_link
      Src: /src/haproxy/src/ssl_sock.c:4942,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: 4945
      start: 4935
    functionDepth: 4
    functionLinenumber: 4935
    functionLinenumberEnd: 4945
    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:4956,1
    - Dst: ssl_quic_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:4957,1
    - Dst: ssl_sock_initial_ctx
      Src: /src/haproxy/src/ssl_sock.c:4959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4960
      start: 4954
    functionDepth: 2
    functionLinenumber: 4954
    functionLinenumberEnd: 4960
    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:4964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4965
      start: 4962
    functionDepth: 2
    functionLinenumber: 4962
    functionLinenumberEnd: 4965
    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:4985,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:4989,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:4992,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:4994,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:4997,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:4999,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5002,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5004,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_sock.c:5007,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5009,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5013,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5015,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5019,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5021
      start: 4972
    functionDepth: 5
    functionLinenumber: 4972
    functionLinenumberEnd: 5021
    functionName: ssl_sock_prepare_all_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - ha_warning
    - ssl_initial_ctx
    - ebmb_first
    - free
    - ebmb_next
    - ssl_sock_prep_ctx_and_inst
    - ha_alert
    - ebmb_entry
    linkageType: ''
    returnType: int
    signature: int ssl_sock_prepare_all_ctx(struct bind_conf *bind_conf)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5035,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5035,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5036,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5043,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/ssl_sock.c:5043,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5045,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5049,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_sock.c:5061,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_sock.c:5062,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:5065,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_sock.c:5076,1
    - Dst: ssl_sock_chose_sni_ctx
      Src: /src/haproxy/src/ssl_sock.c:5087,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5089,1
    - Dst: shctx_init
      Src: /src/haproxy/src/ssl_sock.c:5096,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5101,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_sock.c:5103,1
    - Dst: ssl_sock_prepare_all_ctx
      Src: /src/haproxy/src/ssl_sock.c:5114,1
    - Dst: ssl_sock_gencert_load_ca
      Src: /src/haproxy/src/ssl_sock.c:5118,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5122
      start: 5027
    functionDepth: 6
    functionLinenumber: 5027
    functionLinenumberEnd: 5122
    functionName: ssl_sock_prepare_bind_conf
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - eb_is_empty
    - container_of
    - ssl_sock_gencert_load_ca
    - ha_alert
    - ebmb_next_dup
    - ebst_lookup
    - ssl_sock_prepare_all_ctx
    - shctx_init
    - ssl_sock_chose_sni_ctx
    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:5129,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5132,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5138,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5139,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5141,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5145,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5149,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5150,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5151,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5152,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5154,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/ssl_sock.c:5155,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5158,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5160,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_sock.c:5163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5164
      start: 5126
    functionDepth: 1
    functionLinenumber: 5126
    functionLinenumberEnd: 5164
    functionName: ssl_sock_free_srv_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - release_sample_expr
    - ha_free
    - ckch_inst_free
    - SSL_CTX_free
    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:5174,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5176,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5177,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_sock.c:5178,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5179,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5180,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5181,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_sock.c:5185,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_sock.c:5187,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_sock.c:5188,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_sock.c:5189,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5190,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5191,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5192,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_sock.c:5196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5198
      start: 5169
    functionDepth: 1
    functionLinenumber: 5169
    functionLinenumberEnd: 5198
    functionName: ssl_sock_free_all_ctx
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - SSL_CTX_free
    - ebmb_first
    - free
    - ebmb_next
    - ebmb_entry
    - 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:5203,1
    - Dst: ckch_deinit
      Src: /src/haproxy/src/ssl_sock.c:5204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5205
      start: 5201
    functionDepth: 1
    functionLinenumber: 5201
    functionLinenumberEnd: 5205
    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:5212,1
    - Dst: ssl_sock_free_all_ctx
      Src: /src/haproxy/src/ssl_sock.c:5214,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_sock.c:5215,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5216,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5217,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5219,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5220,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:5221,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:5222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5227
      start: 5209
    functionDepth: 2
    functionLinenumber: 5209
    functionLinenumberEnd: 5227
    functionName: ssl_sock_destroy_bind_conf
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - free
    - ssl_sock_free_ssl_conf
    - ssl_sock_gencert_free_ca
    - ssl_sock_free_all_ctx
    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:5246,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5251,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_sock.c:5255,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:5257,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5262,1
    - Dst: BIO_set_data
      Src: /src/haproxy/src/ssl_sock.c:5266,1
    - Dst: SSL_set_bio
      Src: /src/haproxy/src/ssl_sock.c:5267,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_sock.c:5270,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:5271,1
    - Dst: pool_gc
      Src: /src/haproxy/src/ssl_sock.c:5276,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: 5285
      start: 5239
    functionDepth: 1
    functionLinenumber: 5239
    functionLinenumberEnd: 5285
    functionName: ssl_bio_and_sess_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_set_ex_data
    - SSL_new
    - BIO_new
    - SSL_set_bio
    - SSL_free
    - pool_gc
    - 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:5297,1
    - Dst: setsockopt
      Src: /src/haproxy/src/ssl_sock.c:5306,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:5309,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5312
      start: 5290
    functionDepth: 1
    functionLinenumber: 5290
    functionLinenumberEnd: 5312
    functionName: ssl_sock_start
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - struct ssl_sock_ctx*::xprt::start
    - tasklet_wakeup
    - setsockopt
    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:5329,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/ssl_sock.c:5329,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5333
      start: 5315
    functionDepth: 1
    functionLinenumber: 5315
    functionLinenumberEnd: 5333
    functionName: increment_sslconn
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_CAS
    - __ha_cpu_relax
    linkageType: ''
    returnType: int
    signature: int increment_sslconn()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5340,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:5349,1
    - Dst: SSL_set_session
      Src: /src/haproxy/src/ssl_sock.c:5351,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:5352,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5354,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5355,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_sock.c:5356,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:5357,1
    - Dst: HA_RWLOCK_WRTORD
      Src: /src/haproxy/src/ssl_sock.c:5358,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/haproxy/src/ssl_sock.c:5360,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5361,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5364,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5365,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/haproxy/src/ssl_sock.c:5367,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5368,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/ssl_sock.c:5379,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:5382,1
    - Dst: d2i_SSL_SESSION
      Src: /src/haproxy/src/ssl_sock.c:5386,1
    - Dst: SSL_set_session
      Src: /src/haproxy/src/ssl_sock.c:5388,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/ssl_sock.c:5389,1
    - Dst: SSL_SESSION_free
      Src: /src/haproxy/src/ssl_sock.c:5390,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/haproxy/src/ssl_sock.c:5395,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5397,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:5400,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - ctx
    - srv
    argTypes:
    - struct ssl_sock_ctx*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5401
      start: 5338
    functionDepth: 1
    functionLinenumber: 5338
    functionLinenumberEnd: 5401
    functionName: ssl_sock_srv_try_reuse_sess
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - SSL_set_tlsext_host_name
    - d2i_SSL_SESSION
    - HA_RWLOCK_WRLOCK
    - ha_free
    - HA_RWLOCK_WRTORD
    - HA_ATOMIC_CAS
    - HA_ATOMIC_LOAD
    - HA_RWLOCK_RDUNLOCK
    - SSL_SESSION_free
    - 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:5414,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_sock.c:5420,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5423,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/ssl_sock.c:5426,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:5429,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5430,1
    - Dst: increment_sslconn
      Src: /src/haproxy/src/ssl_sock.c:5449,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5452,1
    - Dst: xprt_get
      Src: /src/haproxy/src/ssl_sock.c:5459,1
    - Dst: struct ssl_sock_ctx*::xprt::init
      Src: /src/haproxy/src/ssl_sock.c:5461,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:5467,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:5468,1
    - Dst: ssl_bio_and_sess_init
      Src: /src/haproxy/src/ssl_sock.c:5470,1
    - Dst: SSL_set_connect_state
      Src: /src/haproxy/src/ssl_sock.c:5474,1
    - Dst: SSL_set_renegotiate_mode
      Src: /src/haproxy/src/ssl_sock.c:5478,1
    - Dst: ssl_sock_srv_try_reuse_sess
      Src: /src/haproxy/src/ssl_sock.c:5480,1
    - Dst: SSL_set_options
      Src: /src/haproxy/src/ssl_sock.c:5485,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5493,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:5496,1
    - Dst: objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5499,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5500,1
    - Dst: ssl_bio_and_sess_init
      Src: /src/haproxy/src/ssl_sock.c:5502,1
    - Dst: b_alloc
      Src: /src/haproxy/src/ssl_sock.c:5508,1
    - Dst: SSL_set_max_early_data
      Src: /src/haproxy/src/ssl_sock.c:5509,1
    - Dst: b_is_null
      Src: /src/haproxy/src/ssl_sock.c:5513,1
    - Dst: SSL_set_accept_state
      Src: /src/haproxy/src/ssl_sock.c:5518,1
    - Dst: SSL_set_options
      Src: /src/haproxy/src/ssl_sock.c:5530,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5535,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:5538,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:5545,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:5547,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:5548,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5549,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 92
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5551
      start: 5409
    functionDepth: 3
    functionLinenumber: 5409
    functionLinenumberEnd: 5551
    functionName: ssl_sock_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - pool_free
    - __objt_listener
    - pool_alloc
    - increment_sslconn
    - struct ssl_sock_ctx*::xprt::init
    - _HA_ATOMIC_INC
    - TRACE_LEAVE
    - SSL_set_options
    - tasklet_free
    - b_is_null
    - ssl_bio_and_sess_init
    - SSL_set_renegotiate_mode
    - _HA_ATOMIC_DEC
    - SSL_set_accept_state
    - __objt_server
    - tasklet_new
    - SSL_set_connect_state
    - objt_server
    - TRACE_ENTER
    - ssl_sock_srv_try_reuse_sess
    - TRACE_ERROR
    - objt_listener
    - SSL_set_max_early_data
    - xprt_get
    - b_alloc
    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:5562,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/ssl_sock.c:5564,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/ssl_sock.c:5569,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5575,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5576,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5580,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:5581,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: 5583
      start: 5557
    functionDepth: 1
    functionLinenumber: 5557
    functionLinenumberEnd: 5583
    functionName: ssl_sock_update_counters
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_session_reused
    - update_freq_ctr
    - HA_ATOMIC_INC
    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: 28
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:5593,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:5602,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/ssl_sock.c:5604,1
    - Dst: obj_type
      Src: /src/haproxy/src/ssl_sock.c:5608,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:5610,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_sock.c:5611,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_sock.c:5612,1
    - Dst: __objt_server
      Src: /src/haproxy/src/ssl_sock.c:5617,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_sock.c:5618,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/ssl_sock.c:5619,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5632,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:5641,1
    - Dst: getsockopt
      Src: /src/haproxy/src/ssl_sock.c:5645,1
    - Dst: SSL_read_early_data
      Src: /src/haproxy/src/ssl_sock.c:5659,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:5660,1
    - Dst: b_room
      Src: /src/haproxy/src/ssl_sock.c:5660,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5663,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5667,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:5669,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:5673,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:5674,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:5675,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:5687,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:5690,1
    - Dst: SSL_peek
      Src: /src/haproxy/src/ssl_sock.c:5692,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:5695,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:5700,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5701,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:5708,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5710,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:5715,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:5716,1
    - Dst: ssl_async_process_fds
      Src: /src/haproxy/src/ssl_sock.c:5721,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5722,1
    - Dst: SSL_get_state
      Src: /src/haproxy/src/ssl_sock.c:5738,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5766,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/ssl_sock.c:5776,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:5780,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:5784,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 118
    argCount: 2
    argNames:
    - conn
    - flag
    argTypes:
    - struct connection*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5787
      start: 5591
    functionDepth: 2
    functionLinenumber: 5591
    functionLinenumberEnd: 5787
    functionName: ssl_sock_handshake
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - obj_type
    - __objt_listener
    - b_tail
    - SSL_get_error
    - EXTRA_COUNTERS_GET
    - conn_get_ssl_sock_ctx
    - SSL_renegotiate_pending
    - b_free
    - b_data
    - SSL_get_state
    - __objt_server
    - BUG_ON
    - b_room
    - ssl_async_process_fds
    - getsockopt
    - TRACE_STATE
    - TRACE_ENTER
    - SSL_read_early_data
    - TRACE_ERROR
    - conn_ctrl_ready
    - SSL_peek
    - conn_ctrl_drain
    - struct ssl_sock_ctx*::xprt::subscribe
    - b_add
    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:5974,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:5975,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:5983,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: 5985
      start: 5967
    functionDepth: 0
    functionLinenumber: 5967
    functionLinenumberEnd: 5985
    functionName: ssl_subscribe
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - struct ssl_sock_ctx*::xprt::subscribe
    - BUG_ON
    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:5995,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:5996,1
    - Dst: conn_unsubscribe
      Src: /src/haproxy/src/ssl_sock.c:6009,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: 6012
      start: 5991
    functionDepth: 2
    functionLinenumber: 5991
    functionLinenumberEnd: 6012
    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:6025,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/ssl_sock.c:6031,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: 6040
      start: 6019
    functionDepth: 1
    functionLinenumber: 6019
    functionLinenumberEnd: 6040
    functionName: ssl_takeover
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup_on
    - tasklet_new
    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:6053,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/ssl_sock.c:6055,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6056
      start: 6046
    functionDepth: 1
    functionLinenumber: 6046
    functionLinenumberEnd: 6056
    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:6068,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/ssl_sock.c:6070,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6071
      start: 6061
    functionDepth: 1
    functionLinenumber: 6061
    functionLinenumberEnd: 6071
    functionName: ssl_set_used
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - xprt_set_used
    - HA_ATOMIC_AND
    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: 6087
      start: 6076
    functionDepth: 0
    functionLinenumber: 6076
    functionLinenumberEnd: 6087
    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:6102,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: 6103
      start: 6093
    functionDepth: 0
    functionLinenumber: 6093
    functionLinenumberEnd: 6103
    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:6118,1
    - Dst: SSL_CIPHER_get_handshake_digest
      Src: /src/haproxy/src/ssl_sock.c:6120,1
    - Dst: SSL_get_current_cipher
      Src: /src/haproxy/src/ssl_sock.c:6120,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6122,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6132,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6134,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6135,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6136,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6138,1
    - Dst: HKDF_expand
      Src: /src/haproxy/src/ssl_sock.c:6140,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: 6141
      start: 6107
    functionDepth: 0
    functionLinenumber: 6107
    functionLinenumberEnd: 6141
    functionName: ssl_sock_hkdf_expand_label
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - HKDF_expand
    - htons
    - BUG_ON
    - SSL_CIPHER_get_handshake_digest
    - memcpy
    - SSL_get_current_cipher
    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:6175,1
    - Dst: defined
      Src: /src/haproxy/src/ssl_sock.c:6178,1
    - Dst: defined
      Src: /src/haproxy/src/ssl_sock.c:6181,1
    - Dst: defined
      Src: /src/haproxy/src/ssl_sock.c:6184,1
    - Dst: SSL_version
      Src: /src/haproxy/src/ssl_sock.c:6201,1
    - Dst: SSL_CIPHER_get_cipher_nid
      Src: /src/haproxy/src/ssl_sock.c:6224,1
    - Dst: SSL_get_current_cipher
      Src: /src/haproxy/src/ssl_sock.c:6224,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6245,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6259,1
    - Dst: SSL_get_key_block_len
      Src: /src/haproxy/src/ssl_sock.c:6261,1
    - Dst: SSL_generate_key_block
      Src: /src/haproxy/src/ssl_sock.c:6266,1
    - Dst: SSL_get_read_sequence
      Src: /src/haproxy/src/ssl_sock.c:6283,1
    - Dst: my_htonll
      Src: /src/haproxy/src/ssl_sock.c:6284,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/ssl_sock.c:6286,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6288,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:6290,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6292,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6294,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6297,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6299,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6302,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:6303,1
    - Dst: SSL_get_write_sequence
      Src: /src/haproxy/src/ssl_sock.c:6310,1
    - Dst: my_htonll
      Src: /src/haproxy/src/ssl_sock.c:6311,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/ssl_sock.c:6313,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6314,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:6315,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6317,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6319,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6322,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6324,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6326,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:6327,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6349,1
    - Dst: SSL_get_read_traffic_secret
      Src: /src/haproxy/src/ssl_sock.c:6350,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6358,1
    - Dst: SSL_get_read_traffic_secret
      Src: /src/haproxy/src/ssl_sock.c:6360,1
    - Dst: ssl_sock_hkdf_expand_label
      Src: /src/haproxy/src/ssl_sock.c:6365,1
    - Dst: ssl_sock_hkdf_expand_label
      Src: /src/haproxy/src/ssl_sock.c:6369,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6377,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6378,1
    - Dst: SSL_get_read_sequence
      Src: /src/haproxy/src/ssl_sock.c:6379,1
    - Dst: my_htonll
      Src: /src/haproxy/src/ssl_sock.c:6380,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6381,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:6382,1
    - Dst: SSL_get_write_traffic_secret
      Src: /src/haproxy/src/ssl_sock.c:6386,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6390,1
    - Dst: SSL_get_write_traffic_secret
      Src: /src/haproxy/src/ssl_sock.c:6392,1
    - Dst: ssl_sock_hkdf_expand_label
      Src: /src/haproxy/src/ssl_sock.c:6397,1
    - Dst: ssl_sock_hkdf_expand_label
      Src: /src/haproxy/src/ssl_sock.c:6401,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6409,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6410,1
    - Dst: SSL_get_write_sequence
      Src: /src/haproxy/src/ssl_sock.c:6411,1
    - Dst: my_htonll
      Src: /src/haproxy/src/ssl_sock.c:6412,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6413,1
    - Dst: ktls_set_key
      Src: /src/haproxy/src/ssl_sock.c:6414,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 150
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ssl_sock_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6424
      start: 6145
    functionDepth: 1
    functionLinenumber: 6145
    functionLinenumberEnd: 6424
    functionName: ssl_sock_setup_ktls
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_get_write_traffic_secret
    - ssl_sock_hkdf_expand_label
    - defined
    - statistical_prng_range
    - my_htonll
    - BUG_ON
    - SSL_get_read_sequence
    - SSL_get_write_sequence
    - SSL_get_read_traffic_secret
    - memcpy
    - SSL_get_key_block_len
    - conn_is_back
    - SSL_version
    - SSL_generate_key_block
    - ktls_set_key
    - SSL_CIPHER_get_cipher_nid
    - SSL_get_current_cipher
    linkageType: ''
    returnType: void
    signature: void ssl_sock_setup_ktls(struct ssl_sock_ctx *ctx)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_sock.c:6441,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6443,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:6444,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/ssl_sock.c:6456,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/ssl_sock.c:6460,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6464,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_sock.c:6471,1
    - Dst: ssl_sock_handshake
      Src: /src/haproxy/src/ssl_sock.c:6475,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/ssl_sock.c:6478,1
    - Dst: ssl_sock_setup_ktls
      Src: /src/haproxy/src/ssl_sock.c:6482,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6495,1
    - Dst: objt_listener
      Src: /src/haproxy/src/ssl_sock.c:6496,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/ssl_sock.c:6497,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:6504,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/ssl_sock.c:6519,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/ssl_sock.c:6528,1
    - Dst: ssl_sock_get_alpn
      Src: /src/haproxy/src/ssl_sock.c:6533,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:6534,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6536,1
    - Dst: struct ssl_sock_ctx*::conn::mux::wake
      Src: /src/haproxy/src/ssl_sock.c:6544,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6555,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:6557,1
    - Dst: objt_server
      Src: /src/haproxy/src/ssl_sock.c:6565,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:6568,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6572,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/ssl_sock.c:6573,1
    - Dst: struct connection*::mux::destroy
      Src: /src/haproxy/src/ssl_sock.c:6575,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/ssl_sock.c:6580,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6581,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_sock.c:6582,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/ssl_sock.c:6583,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_sock.c:6584,1
    - Dst: struct connection*::mux::destroy
      Src: /src/haproxy/src/ssl_sock.c:6589,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:6593,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 95
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6595
      start: 6429
    functionDepth: 3
    functionLinenumber: 6429
    functionLinenumberEnd: 6595
    functionName: ssl_sock_io_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __objt_listener
    - struct connection*::mux::destroy
    - ASSUME_NONNULL
    - HA_SPIN_LOCK
    - session_detach_idle_conn
    - TRACE_LEAVE
    - tasklet_free
    - b_data
    - conn_create_mux
    - _srv_add_idle
    - HA_SPIN_UNLOCK
    - ssl_sock_get_alpn
    - tasklet_wakeup
    - BUG_ON
    - ssl_sock_setup_ktls
    - conn_delete_from_tree
    - ssl_sock_handshake
    - _HA_ATOMIC_AND
    - objt_server
    - TRACE_ENTER
    - objt_listener
    - conn_is_back
    - struct ssl_sock_ctx*::conn::mux::wake
    - session_reinsert_idle_conn
    - memcpy
    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:6611,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ssl_sock.c:6616,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6619,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/ssl_sock.c:6620,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6621,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6622,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sock.c:6623,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:6623,1
    - Dst: b_head
      Src: /src/haproxy/src/ssl_sock.c:6623,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:6624,1
    - Dst: b_del
      Src: /src/haproxy/src/ssl_sock.c:6625,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_sock.c:6626,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:6627,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:6628,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:6640,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/ssl_sock.c:6650,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:6660,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/ssl_sock.c:6661,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/ssl_sock.c:6662,1
    - Dst: struct ssl_sock_ctx*::xprt::rcv_buf
      Src: /src/haproxy/src/ssl_sock.c:6664,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/ssl_sock.c:6669,1
    - Dst: b_del
      Src: /src/haproxy/src/ssl_sock.c:6678,1
    - Dst: b_del
      Src: /src/haproxy/src/ssl_sock.c:6688,1
    - Dst: SSL_read
      Src: /src/haproxy/src/ssl_sock.c:6701,1
    - Dst: b_tail
      Src: /src/haproxy/src/ssl_sock.c:6701,1
    - Dst: b_add
      Src: /src/haproxy/src/ssl_sock.c:6717,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6720,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/ssl_sock.c:6735,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:6739,1
    - Dst: SSL_set_mode
      Src: /src/haproxy/src/ssl_sock.c:6743,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6745,1
    - Dst: SSL_renegotiate_pending
      Src: /src/haproxy/src/ssl_sock.c:6749,1
    - Dst: struct ssl_sock_ctx*::xprt::subscribe
      Src: /src/haproxy/src/ssl_sock.c:6750,1
    - Dst: SSL_set_mode
      Src: /src/haproxy/src/ssl_sock.c:6758,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:6762,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_sock.c:6765,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:6768,1
    - Dst: ERR_peek_error
      Src: /src/haproxy/src/ssl_sock.c:6770,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/ssl_sock.c:6777,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6781,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:6786,1
    - Dst: ssl_sock_dump_errors
      Src: /src/haproxy/src/ssl_sock.c:6791,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:6792,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/ssl_sock.c:6794,1
    - Dst: conn_sock_read0
      Src: /src/haproxy/src/ssl_sock.c:6795,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:6799,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/ssl_sock.c:6800,1
    - Dst: ssl_sock_dump_errors
      Src: /src/haproxy/src/ssl_sock.c:6803,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:6804,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: 6806
      start: 6605
    functionDepth: 2
    functionLinenumber: 6605
    functionLinenumberEnd: 6806
    functionName: ssl_sock_to_buf
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - ERR_peek_error
    - b_tail
    - SSL_get_error
    - conn_get_ssl_sock_ctx
    - b_head
    - CMSG_SPACE
    - SSL_renegotiate_pending
    - conn_sock_read0
    - b_free
    - TRACE_LEAVE
    - SSL_set_mode
    - ssl_sock_dump_errors
    - b_data
    - struct ssl_sock_ctx*::xprt::rcv_buf
    - CMSG_DATA
    - conn_report_term_evt
    - CMSG_LEN
    - SSL_read
    - TRACE_PROTO
    - b_contig_space
    - ERR_clear_error
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - BUG_ON_HOT
    - b_del
    - struct ssl_sock_ctx*::xprt::subscribe
    - memcpy
    - b_add
    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:7025,1
    - Dst: struct ssl_sock_ctx*::xprt::unsubscribe
      Src: /src/haproxy/src/ssl_sock.c:7029,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/ssl_sock.c:7034,1
    - Dst: struct ssl_sock_ctx*::xprt::close
      Src: /src/haproxy/src/ssl_sock.c:7038,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:7045,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_sock.c:7047,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_sock.c:7048,1
    - Dst: SSL_get_all_async_fds
      Src: /src/haproxy/src/ssl_sock.c:7052,1
    - Dst: SSL_waiting_for_async
      Src: /src/haproxy/src/ssl_sock.c:7057,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/ssl_sock.c:7065,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/ssl_sock.c:7069,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:7071,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7072,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/ssl_sock.c:7073,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/ssl_sock.c:7074,1
    - Dst: fd_delete
      Src: /src/haproxy/src/ssl_sock.c:7089,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_sock.c:7093,1
    - Dst: b_free
      Src: /src/haproxy/src/ssl_sock.c:7094,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/ssl_sock.c:7095,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7096,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/ssl_sock.c:7097,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:7099,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 45
    argCount: 2
    argNames:
    - conn
    - xprt_ctx
    argTypes:
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7100
      start: 7021
    functionDepth: 1
    functionLinenumber: 7021
    functionLinenumberEnd: 7100
    functionName: ssl_sock_close
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - fd_delete
    - SSL_get_all_async_fds
    - pool_free
    - _HA_ATOMIC_INC
    - b_free
    - TRACE_LEAVE
    - fd_cant_recv
    - tasklet_free
    - SSL_free
    - SSL_waiting_for_async
    - _HA_ATOMIC_DEC
    - tasklet_wakeup
    - fd_want_recv
    - struct ssl_sock_ctx*::xprt::close
    - TRACE_ENTER
    - send_log
    - TRACE_ERROR
    - struct ssl_sock_ctx*::xprt::unsubscribe
    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:7109,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/ssl_sock.c:7114,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/ssl_sock.c:7118,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/ssl_sock.c:7126,1
    - Dst: struct ssl_sock_ctx*::xprt::snd_buf
      Src: /src/haproxy/src/ssl_sock.c:7133,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/ssl_sock.c:7140,1
    - Dst: SSL_set_quiet_shutdown
      Src: /src/haproxy/src/ssl_sock.c:7143,1
    - Dst: SSL_shutdown
      Src: /src/haproxy/src/ssl_sock.c:7145,1
    - Dst: ssl_sock_dump_errors
      Src: /src/haproxy/src/ssl_sock.c:7147,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_sock.c:7148,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_sock.c:7151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - conn
    - xprt_ctx
    - clean
    argTypes:
    - struct connection*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7152
      start: 7105
    functionDepth: 2
    functionLinenumber: 7105
    functionLinenumberEnd: 7152
    functionName: ssl_sock_shutw
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ERR_clear_error
    - ssl_sock_dump_errors
    - CMSG_LEN
    - SSL_shutdown
    - CMSG_DATA
    - TRACE_ENTER
    - SSL_set_quiet_shutdown
    - CMSG_SPACE
    - conn_report_term_evt
    - struct ssl_sock_ctx*::xprt::snd_buf
    - TRACE_LEAVE
    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:7158,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sock.c:7163,1
    - Dst: cert_get_pkey_algo
      Src: /src/haproxy/src/ssl_sock.c:7167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - conn
    - out
    argTypes:
    - struct connection*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7168
      start: 7156
    functionDepth: 1
    functionLinenumber: 7156
    functionLinenumberEnd: 7168
    functionName: ssl_sock_get_pkey_algo
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - conn_get_ssl_sock_ctx
    - SSL_get_certificate
    - cert_get_pkey_algo
    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:7173,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sock.c:7180,1
    - Dst: X509_ALGOR_get0
      Src: /src/haproxy/src/ssl_sock.c:7183,1
    - Dst: X509_get0_tbs_sigalg
      Src: /src/haproxy/src/ssl_sock.c:7183,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_sock.c:7184,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_sock.c:7184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7185
      start: 7171
    functionDepth: 1
    functionLinenumber: 7171
    functionLinenumberEnd: 7185
    functionName: ssl_sock_get_cert_sig
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - SSL_get_certificate
    - X509_get0_tbs_sigalg
    - conn_get_ssl_sock_ctx
    - X509_ALGOR_get0
    - OBJ_nid2sn
    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:7191,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sock.c:7195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7199
      start: 7188
    functionDepth: 1
    functionLinenumber: 7188
    functionLinenumberEnd: 7199
    functionName: ssl_sock_get_sni
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - conn_get_ssl_sock_ctx
    - SSL_get_servername
    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:7204,1
    - Dst: SSL_get_cipher_name
      Src: /src/haproxy/src/ssl_sock.c:7208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7209
      start: 7202
    functionDepth: 1
    functionLinenumber: 7202
    functionLinenumberEnd: 7209
    functionName: ssl_sock_get_cipher_name
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - conn_get_ssl_sock_ctx
    - SSL_get_cipher_name
    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:7214,1
    - Dst: SSL_get_version
      Src: /src/haproxy/src/ssl_sock.c:7218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7219
      start: 7212
    functionDepth: 1
    functionLinenumber: 7212
    functionLinenumberEnd: 7219
    functionName: ssl_sock_get_proto_version
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - conn_get_ssl_sock_ctx
    - SSL_get_version
    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:7224,1
    - Dst: SSL_set_alpn_protos
      Src: /src/haproxy/src/ssl_sock.c:7228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - alpn
    - len
    argTypes:
    - struct connection*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7230
      start: 7221
    functionDepth: 1
    functionLinenumber: 7221
    functionLinenumberEnd: 7230
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sock.c:7238,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:7244,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ssl_sock.c:7245,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sock.c:7255,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sock.c:7258,1
    - Dst: SSL_set_session
      Src: /src/haproxy/src/ssl_sock.c:7259,1
    - Dst: SSL_set_tlsext_host_name
      Src: /src/haproxy/src/ssl_sock.c:7260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - conn
    - hostname
    argTypes:
    - struct connection*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7263
      start: 7235
    functionDepth: 1
    functionLinenumber: 7235
    functionLinenumberEnd: 7263
    functionName: ssl_sock_set_servername
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 2
    functionsReached:
    - SSL_set_tlsext_host_name
    - strcmp
    - BUG_ON
    - conn_get_ssl_sock_ctx
    - SSL_get_servername
    - SSL_set_session
    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:7274,1
    - Dst: SSL_get_peer_certificate
      Src: /src/haproxy/src/ssl_sock.c:7288,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:7292,1
    - Dst: ssl_sock_get_dn_entry
      Src: /src/haproxy/src/ssl_sock.c:7296,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:7299,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - conn
    - dest
    argTypes:
    - struct connection*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7302
      start: 7271
    functionDepth: 1
    functionLinenumber: 7271
    functionLinenumberEnd: 7302
    functionName: ssl_sock_get_remote_common_name
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - X509_get_subject_name
    - ssl_sock_get_dn_entry
    - conn_get_ssl_sock_ctx
    - X509_free
    - 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:7307,1
    - Dst: SSL_get_peer_certificate
      Src: /src/haproxy/src/ssl_sock.c:7314,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:7318,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7320
      start: 7305
    functionDepth: 1
    functionLinenumber: 7305
    functionLinenumberEnd: 7320
    functionName: ssl_sock_get_cert_used_sess
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - X509_free
    - conn_get_ssl_sock_ctx
    - SSL_get_peer_certificate
    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:7325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7330
      start: 7323
    functionDepth: 1
    functionLinenumber: 7323
    functionLinenumberEnd: 7330
    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:7335,1
    - Dst: SSL_get_verify_result
      Src: /src/haproxy/src/ssl_sock.c:7339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7340
      start: 7333
    functionDepth: 1
    functionLinenumber: 7333
    functionLinenumberEnd: 7340
    functionName: ssl_sock_get_verify_result
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    functionsReached:
    - conn_get_ssl_sock_ctx
    - SSL_get_verify_result
    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:7359,1
    - Dst: SSL_get0_next_proto_negotiated
      Src: /src/haproxy/src/ssl_sock.c:7364,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: 7370
      start: 7348
    functionDepth: 0
    functionLinenumber: 7348
    functionLinenumberEnd: 7370
    functionName: ssl_sock_get_alpn
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 1
    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:7378,1
    - Dst: PEM_read_bio_X509
      Src: /src/haproxy/src/ssl_sock.c:7385,1
    - Dst: sk_X509_new_null
      Src: /src/haproxy/src/ssl_sock.c:7387,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_sock.c:7388,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:7389,1
    - Dst: sk_X509_push
      Src: /src/haproxy/src/ssl_sock.c:7391,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sock.c:7392,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:7397,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:7401,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:7405,1
    - Dst: XXH3
      Src: /src/haproxy/src/ssl_sock.c:7408,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_sock.c:7408,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_sock.c:7408,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/ssl_sock.c:7409,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:7409,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:7410,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:7410,1
    - Dst: X509_NAME_cmp
      Src: /src/haproxy/src/ssl_sock.c:7411,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sock.c:7411,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sock.c:7411,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:7412,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:7416,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:7417,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7419,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7420,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_sock.c:7427,1
    - Dst: ASN1_OCTET_STRING_free
      Src: /src/haproxy/src/ssl_sock.c:7431,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:7433,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    argCount: 3
    argNames:
    - in
    - fp
    - err
    argTypes:
    - BIO*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7435
      start: 7373
    functionDepth: 1
    functionLinenumber: 7373
    functionLinenumberEnd: 7435
    functionName: ssl_load_global_issuer_from_BIO
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - X509_NAME_cmp
    - X509_get_ext_d2i
    - eb64_next
    - sk_X509_value
    - ASN1_OCTET_STRING_free
    - container_of
    - XXH3
    - sk_X509_pop_free
    - STACK_OF
    - calloc
    - strdup
    - ASN1_STRING_get0_data
    - eb64_insert
    - sk_X509_new_null
    - typeof
    - memprintf
    - X509_free
    - ASN1_STRING_length
    - eb64_lookup
    - X509_get_subject_name
    - sk_X509_push
    - free
    - PEM_read_bio_X509
    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:7442,1
    - Dst: XXH3
      Src: /src/haproxy/src/ssl_sock.c:7446,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_sock.c:7446,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_sock.c:7446,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/ssl_sock.c:7447,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:7447,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:7448,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:7448,1
    - Dst: X509_check_issued
      Src: /src/haproxy/src/ssl_sock.c:7449,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sock.c:7449,1
    - Dst: AUTHORITY_KEYID_free
      Src: /src/haproxy/src/ssl_sock.c:7455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7457
      start: 7437
    functionDepth: 1
    functionLinenumber: 7437
    functionLinenumberEnd: 7457
    functionName: ssl_get0_issuer_chain
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_length
    - eb64_lookup
    - X509_check_issued
    - X509_get_ext_d2i
    - ASN1_STRING_get0_data
    - eb64_next
    - AUTHORITY_KEYID_free
    - container_of
    - typeof
    - XXH3
    - sk_X509_value
    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:7464,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_sock.c:7466,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_sock.c:7466,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_sock.c:7467,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_sock.c:7468,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7469,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_sock.c:7470,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7474
      start: 7459
    functionDepth: 1
    functionLinenumber: 7459
    functionLinenumberEnd: 7474
    functionName: ssl_free_global_issuers
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - eb64_next
    - eb64_delete
    - container_of
    - eb64_first
    - free
    - typeof
    - sk_X509_pop_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:7481,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7485
      start: 7477
    functionDepth: 1
    functionLinenumber: 7477
    functionLinenumberEnd: 7485
    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:7500,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7503,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7506,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7508,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7511,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7522,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7524,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7527,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/ssl_sock.c:7530,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7531,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7533,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7534,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - buf
    - conn
    - ctx
    argTypes:
    - struct buffer*
    - struct connection*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7536
      start: 7491
    functionDepth: 1
    functionLinenumber: 7491
    functionLinenumberEnd: 7536
    functionName: ssl_sock_show_fd
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - resolve_sym_name
    - chunk_appendf
    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:7553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ref
    - end
    argTypes:
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7554
      start: 7543
    functionDepth: 1
    functionLinenumber: 7543
    functionLinenumberEnd: 7554
    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:7565,1
    - Dst: tlskeys_ref_lookupid
      Src: /src/haproxy/src/ssl_sock.c:7570,1
    - Dst: tlskeys_ref_lookup
      Src: /src/haproxy/src/ssl_sock.c:7574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - reference
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7575
      start: 7556
    functionDepth: 1
    functionLinenumber: 7556
    functionLinenumberEnd: 7575
    functionName: tlskeys_ref_lookup_ref
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - tlskeys_ref_lookup
    - tlskeys_ref_lookupid
    - 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:7592,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7595,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7597,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_sock.c:7599,1
    - Dst: tlskeys_list_get_next
      Src: /src/haproxy/src/ssl_sock.c:7608,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_sock.c:7617,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7619,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7622,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_sock.c:7627,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sock.c:7630,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_sock.c:7632,1
    - Dst: a2base64
      Src: /src/haproxy/src/ssl_sock.c:7635,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7638,1
    - Dst: a2base64
      Src: /src/haproxy/src/ssl_sock.c:7642,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7645,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7650,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_sock.c:7653,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:7657,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_sock.c:7662,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_sock.c:7665,1
    - Dst: tlskeys_list_get_next
      Src: /src/haproxy/src/ssl_sock.c:7676,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7685
      start: 7582
    functionDepth: 2
    functionLinenumber: 7582
    functionLinenumberEnd: 7685
    functionName: cli_io_handler_tlskeys_files
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - chunk_appendf
    - chunk_reset
    - tlskeys_list_get_next
    - a2base64
    - HA_RWLOCK_RDUNLOCK
    - applet_putchk
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_tlskeys_files(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_sock.c:7690,1
    - Dst: tlskeys_ref_lookup_ref
      Src: /src/haproxy/src/ssl_sock.c:7702,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:7704,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: 7709
      start: 7688
    functionDepth: 2
    functionLinenumber: 7688
    functionLinenumberEnd: 7709
    functionName: cli_parse_show_tlskeys
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:7718,1
    - Dst: tlskeys_ref_lookup_ref
      Src: /src/haproxy/src/ssl_sock.c:7720,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:7722,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sock.c:7724,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sock.c:7724,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:7726,1
    - Dst: ssl_sock_update_tlskey_ref
      Src: /src/haproxy/src/ssl_sock.c:7729,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_sock.c:7730,1
    - Dst: cli_msg
      Src: /src/haproxy/src/ssl_sock.c:7732,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7733
      start: 7711
    functionDepth: 2
    functionLinenumber: 7711
    functionLinenumberEnd: 7733
    functionName: cli_parse_set_tlskeys
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - cli_err
    - strlen
    - tlskeys_ref_lookup_ref
    - ssl_sock_update_tlskey_ref
    - cli_msg
    - base64dec
    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:7748,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_sock.c:7753,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_sock.c:7759,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - provider
    - cbdata
    argTypes:
    - OSSL_PROVIDER*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7762
      start: 7744
    functionDepth: 1
    functionLinenumber: 7744
    functionLinenumberEnd: 7762
    functionName: ssl_provider_get_name_cb
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - OSSL_PROVIDER_get0_name
    - calloc
    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:7769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - provider_names
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7770
      start: 7764
    functionDepth: 0
    functionLinenumber: 7764
    functionLinenumberEnd: 7770
    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:7778,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7779,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - provider_names
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7782
      start: 7772
    functionDepth: 1
    functionLinenumber: 7772
    functionLinenumberEnd: 7782
    functionName: ssl_provider_clear_name_list
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - free
    - LIST_DELETE
    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:7778,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7780
      start: 7777
    functionDepth: 1
    functionLinenumber: 7777
    functionLinenumberEnd: 7780
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 13
    functionsReached:
    - free
    - LIST_DELETE
    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:7786,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_sock.c:7790,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7792,1
    - Dst: ssl_provider_get_name_list
      Src: /src/haproxy/src/ssl_sock.c:7794,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:7796,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sock.c:7797,1
    - Dst: ssl_provider_clear_name_list
      Src: /src/haproxy/src/ssl_sock.c:7800,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_sock.c:7802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7809
      start: 7784
    functionDepth: 2
    functionLinenumber: 7784
    functionLinenumberEnd: 7809
    functionName: cli_io_handler_show_providers
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - get_trash_chunk
    - chunk_appendf
    - LIST_INIT
    - ssl_provider_get_name_list
    - applet_putchk
    - ssl_provider_clear_name_list
    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:7828,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: 7844
      start: 7812
    functionDepth: 0
    functionLinenumber: 7812
    functionLinenumberEnd: 7844
    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:7896,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/ssl_sock.c:7900,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: 7906
      start: 7891
    functionDepth: 1
    functionLinenumber: 7891
    functionLinenumberEnd: 7906
    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: 7913
      start: 7908
    functionDepth: 0
    functionLinenumber: 7908
    functionLinenumberEnd: 7913
    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:7927,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:7928,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: 7930
      start: 7924
    functionDepth: 1
    functionLinenumber: 7924
    functionLinenumberEnd: 7930
    functionName: ssl_sock_sctl_free_func
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - free
    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:7937,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: 7938
      start: 7935
    functionDepth: 1
    functionLinenumber: 7935
    functionLinenumberEnd: 7938
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7950,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7951,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7952,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7953,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7954,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7955,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7956,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7957,1
    - Dst: pool_free
      Src: /src/haproxy/src/ssl_sock.c:7959,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: 7960
      start: 7941
    functionDepth: 1
    functionLinenumber: 7941
    functionLinenumberEnd: 7960
    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:7968,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: 7969
      start: 7963
    functionDepth: 0
    functionLinenumber: 7963
    functionLinenumberEnd: 7969
    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:7973,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: 7974
      start: 7971
    functionDepth: 1
    functionLinenumber: 7971
    functionLinenumberEnd: 7974
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7978,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7979,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7980,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7982,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7984,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7985,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7988,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7989,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7993,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7994,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7998,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:7999,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8001,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_sock.c:8002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8004
      start: 7976
    functionDepth: 1
    functionLinenumber: 7976
    functionLinenumberEnd: 8004
    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:8009,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:8014,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:8016,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:8019,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_sock.c:8021,1
    - Dst: xprt_register
      Src: /src/haproxy/src/ssl_sock.c:8024,1
    - Dst: SSL_library_init
      Src: /src/haproxy/src/ssl_sock.c:8026,1
    - Dst: OPENSSL_init_ssl
      Src: /src/haproxy/src/ssl_sock.c:8028,1
    - Dst: SSL_COMP_get_compression_methods
      Src: /src/haproxy/src/ssl_sock.c:8031,1
    - Dst: sk_SSL_COMP_num
      Src: /src/haproxy/src/ssl_sock.c:8032,1
    - Dst: sk_SSL_COMP_pop
      Src: /src/haproxy/src/ssl_sock.c:8034,1
    - Dst: ssl_locking_init
      Src: /src/haproxy/src/ssl_sock.c:8039,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8042,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8046,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8049,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8050,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8052,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8055,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8057,1
    - Dst: SSL_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8058,1
    - Dst: ENGINE_load_builtin_engines
      Src: /src/haproxy/src/ssl_sock.c:8060,1
    - Dst: hap_register_post_check
      Src: /src/haproxy/src/ssl_sock.c:8061,1
    - Dst: hap_register_post_check
      Src: /src/haproxy/src/ssl_sock.c:8064,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8070,1
    - Dst: SSL_CTX_get_ex_new_index
      Src: /src/haproxy/src/ssl_sock.c:8073,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8074,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8077,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8080,1
    - Dst: ERR_load_SSL_strings
      Src: /src/haproxy/src/ssl_sock.c:8084,1
    - Dst: BIO_meth_new
      Src: /src/haproxy/src/ssl_sock.c:8086,1
    - Dst: BIO_meth_set_write
      Src: /src/haproxy/src/ssl_sock.c:8088,1
    - Dst: BIO_meth_set_read
      Src: /src/haproxy/src/ssl_sock.c:8089,1
    - Dst: BIO_meth_set_ctrl
      Src: /src/haproxy/src/ssl_sock.c:8090,1
    - Dst: BIO_meth_set_create
      Src: /src/haproxy/src/ssl_sock.c:8091,1
    - Dst: BIO_meth_set_destroy
      Src: /src/haproxy/src/ssl_sock.c:8092,1
    - Dst: BIO_meth_set_puts
      Src: /src/haproxy/src/ssl_sock.c:8093,1
    - Dst: BIO_meth_set_gets
      Src: /src/haproxy/src/ssl_sock.c:8094,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/ssl_sock.c:8097,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/ssl_sock.c:8100,1
    - Dst: hap_register_post_check
      Src: /src/haproxy/src/ssl_sock.c:8106,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8111,1
    - Dst: hap_register_post_deinit
      Src: /src/haproxy/src/ssl_sock.c:8113,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8114
      start: 8006
    functionDepth: 2
    functionLinenumber: 8006
    functionLinenumberEnd: 8114
    functionName: __ssl_sock_init
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - SSL_COMP_get_compression_methods
    - BIO_meth_set_ctrl
    - sk_SSL_COMP_pop
    - BIO_meth_set_write
    - SSL_get_ex_new_index
    - BIO_meth_set_create
    - BIO_meth_set_read
    - SSL_CTX_get_ex_new_index
    - ERR_load_SSL_strings
    - BIO_meth_new
    - ssl_locking_init
    - BIO_meth_set_puts
    - STACK_OF
    - strdup
    - xprt_register
    - hap_register_post_check
    - BIO_meth_set_destroy
    - BIO_meth_set_gets
    - OPENSSL_init_ssl
    - HA_SPIN_INIT
    - sk_SSL_COMP_num
    - ENGINE_load_builtin_engines
    - hap_register_post_deinit
    - SSL_library_init
    linkageType: ''
    returnType: void
    signature: void __ssl_sock_init(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8123,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/ssl_sock.c:8129,1
    - Dst: OpenSSL_version_num
      Src: /src/haproxy/src/ssl_sock.c:8130,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8132,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8154,1
    - Dst: FIPS_mode
      Src: /src/haproxy/src/ssl_sock.c:8154,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8156,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8159,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_sock.c:8165,1
    - Dst: ssl_provider_get_name_list
      Src: /src/haproxy/src/ssl_sock.c:8166,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8168,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_sock.c:8170,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sock.c:8171,1
    - Dst: ssl_provider_clear_name_list
      Src: /src/haproxy/src/ssl_sock.c:8174,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/ssl_sock.c:8178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8179
      start: 8118
    functionDepth: 2
    functionLinenumber: 8118
    functionLinenumberEnd: 8179
    functionName: ssl_register_build_options
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - FIPS_mode
    - list_for_each_entry
    - LIST_INIT
    - ssl_provider_get_name_list
    - memprintf
    - OpenSSL_version_num
    - hap_register_build_opts
    - OpenSSL_version
    - ssl_provider_clear_name_list
    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:8187,1
    - Dst: ENGINE_finish
      Src: /src/haproxy/src/ssl_sock.c:8188,1
    - Dst: ENGINE_free
      Src: /src/haproxy/src/ssl_sock.c:8189,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:8190,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:8191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8193
      start: 8184
    functionDepth: 1
    functionLinenumber: 8184
    functionLinenumberEnd: 8193
    functionName: ssl_free_engines
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - ENGINE_finish
    - list_for_each_entry_safe
    - ENGINE_free
    - free
    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:8199,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/haproxy/src/ssl_sock.c:8200,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_sock.c:8201,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sock.c:8202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8204
      start: 8197
    functionDepth: 1
    functionLinenumber: 8197
    functionLinenumberEnd: 8204
    functionName: ssl_unload_providers
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - free
    - OSSL_PROVIDER_unload
    - LIST_DELETE
    linkageType: ''
    returnType: void
    signature: void ssl_unload_providers(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:8210,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:8214,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:8218,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_sock.c:8222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8225
      start: 8208
    functionDepth: 0
    functionLinenumber: 8208
    functionLinenumberEnd: 8225
    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:8232,1
    - Dst: ERR_free_strings
      Src: /src/haproxy/src/ssl_sock.c:8233,1
    - Dst: EVP_cleanup
      Src: /src/haproxy/src/ssl_sock.c:8235,1
    - Dst: CRYPTO_cleanup_all_ex_data
      Src: /src/haproxy/src/ssl_sock.c:8239,1
    - Dst: BIO_meth_free
      Src: /src/haproxy/src/ssl_sock.c:8241,1
    - Dst: ssl_destroy_ocsp_update_task
      Src: /src/haproxy/src/ssl_sock.c:8244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8246
      start: 8228
    functionDepth: 1
    functionLinenumber: 8228
    functionLinenumberEnd: 8246
    functionName: __ssl_sock_deinit
    functionSourceFile: /src/haproxy/src/ssl_sock.c
    functionUses: 0
    functionsReached:
    - ERR_free_strings
    - BIO_meth_free
    - EVP_cleanup
    - ERR_remove_state
    - CRYPTO_cleanup_all_ex_data
    - ssl_destroy_ocsp_update_task
    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:
    - now_mono_time
    - clock_gettime
    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:
    - now_mono_time_fast
    - unlikely
    - 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_getcpuclockid
    - pthread_self
    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:
    - sigaddset
    - ha_sigmask
    - timer_create
    - 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
    - now_mono_time
    - _tv_ms_add
    - __tv_islt
    - HA_ATOMIC_STORE
    - tv_to_ns
    - ns_to_ms
    - HA_ATOMIC_LOAD
    - MAX
    - gettimeofday
    - ms_to_ns
    linkageType: ''
    returnType: void
    signature: void clock_update_local_date(int max_wait, int interrupted)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:274,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:275,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/clock.c:293,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:295,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/clock.c:304,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/clock.c:305,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/clock.c:306,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/clock.c:315,1
    - Dst: tv_to_ns
      Src: /src/haproxy/src/clock.c:315,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 317
    functionName: clock_update_global_date
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - unlikely
    - HA_ATOMIC_STORE
    - ns_to_ms
    - __ha_cpu_relax
    - tv_to_ns
    linkageType: ''
    returnType: void
    signature: void clock_update_global_date()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: now_mono_time
      Src: /src/haproxy/src/clock.c:323,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/clock.c:325,1
    - Dst: tv_to_ns
      Src: /src/haproxy/src/clock.c:329,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/clock.c:332,1
    - Dst: sec_to_ns
      Src: /src/haproxy/src/clock.c:340,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/clock.c:343,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/clock.c:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 356
    functionName: clock_init_process_date
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - now_mono_time
    - ns_to_ms
    - tv_to_ns
    - sec_to_ns
    - gettimeofday
    - clock_update_date
    linkageType: ''
    returnType: void
    signature: void clock_init_process_date(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/clock.c:364,1
    - Dst: tv_to_ns
      Src: /src/haproxy/src/clock.c:364,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 365
    functionName: clock_adjust_now_offset
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - tv_to_ns
    linkageType: ''
    returnType: void
    signature: void clock_adjust_now_offset(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/clock.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ofs
    argTypes:
    - llong
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 370
    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:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 375
    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:382,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:385,1
    - Dst: now_cpu_time
      Src: /src/haproxy/src/clock.c:387,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/clock.c:388,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/clock.c:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 392
    functionName: clock_init_thread_date
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    - now_mono_time
    - now_cpu_time
    - gettimeofday
    - clock_update_date
    linkageType: ''
    returnType: void
    signature: void clock_init_thread_date(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/clock.c:405,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 409
    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:445,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 447
    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:456,1
    - Dst: now_cpu_time
      Src: /src/haproxy/src/clock.c:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - timeout
    - interrupted
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: clock_leaving_poll
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - clock_measure_idle
    - now_cpu_time
    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:474,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/clock.c:475,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/clock.c:494,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:496,1
    - Dst: __tv_islt
      Src: /src/haproxy/src/clock.c:496,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:498,1
    - Dst: __tv_ms_elapsed
      Src: /src/haproxy/src/clock.c:498,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/clock.c:499,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:508,1
    - Dst: report_stolen_time
      Src: /src/haproxy/src/clock.c:513,1
    - Dst: activity_count_runtime
      Src: /src/haproxy/src/clock.c:518,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 519
    functionName: clock_entering_poll
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 1
    functionsReached:
    - tv_ms_add
    - __tv_ms_elapsed
    - unlikely
    - now_mono_time
    - __tv_islt
    - report_stolen_time
    - now_cpu_time
    - activity_count_runtime
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void clock_entering_poll(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/haproxy/src/clock.c:536,1
    - Dst: get_localtime
      Src: /src/haproxy/src/clock.c:538,1
    - Dst: get_gmt_offset
      Src: /src/haproxy/src/clock.c:539,1
    - Dst: unlikely
      Src: /src/haproxy/src/clock.c:540,1
    - Dst: strftime
      Src: /src/haproxy/src/clock.c:540,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/clock.c:541,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/clock.c:552,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - pad
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 559
    functionName: timeofday_as_iso_us
    functionSourceFile: /src/haproxy/src/clock.c
    functionUses: 0
    functionsReached:
    - unlikely
    - strftime
    - strlcpy2
    - get_gmt_offset
    - utoa_pad
    - gettimeofday
    - 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:191,1
    - Dst: sock_inet6_make_foreign
      Src: /src/haproxy/src/proto_quic.c:199,1
    - Dst: memset
      Src: /src/haproxy/src/proto_quic.c:208,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:229,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_quic.c:231,1
    - Dst: bind
      Src: /src/haproxy/src/proto_quic.c:232,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_quic.c:232,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_quic.c:238,1
    - Dst: bind
      Src: /src/haproxy/src/proto_quic.c:239,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_quic.c:239,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: 253
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 253
    functionName: quic_bind_socket
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - bind
    - sock_inet6_make_foreign
    - memset
    - sock_inet4_make_foreign
    - setsockopt
    - get_addr_len
    - is_inet_addr
    linkageType: ''
    returnType: int
    signature: int quic_bind_socket(int fd, int flags, struct sockaddr_storage *local,
      struct sockaddr_storage *remote)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_quic.c:291,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proto_quic.c:292,1
    - Dst: obj_type
      Src: /src/haproxy/src/proto_quic.c:294,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/proto_quic.c:296,1
    - Dst: __objt_server
      Src: /src/haproxy/src/proto_quic.c:300,1
    - Dst: sock_create_server_socket
      Src: /src/haproxy/src/proto_quic.c:309,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/proto_quic.c:328,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/proto_quic.c:331,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/proto_quic.c:338,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:347,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_quic.c:355,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_quic.c:361,1
    - Dst: port_range_alloc_port
      Src: /src/haproxy/src/proto_quic.c:368,1
    - Dst: set_host_port
      Src: /src/haproxy/src/proto_quic.c:375,1
    - Dst: quic_bind_socket
      Src: /src/haproxy/src/proto_quic.c:377,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:385,1
    - Dst: quic_bind_socket
      Src: /src/haproxy/src/proto_quic.c:387,1
    - Dst: unlikely
      Src: /src/haproxy/src/proto_quic.c:392,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_quic.c:393,1
    - Dst: close
      Src: /src/haproxy/src/proto_quic.c:395,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:398,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_quic.c:400,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:404,1
    - Dst: send_log
      Src: /src/haproxy/src/proto_quic.c:406,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:416,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:419,1
    - Dst: connect
      Src: /src/haproxy/src/proto_quic.c:422,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/proto_quic.c:422,1
    - Dst: port_range_release_port
      Src: /src/haproxy/src/proto_quic.c:423,1
    - Dst: close
      Src: /src/haproxy/src/proto_quic.c:425,1
    - Dst: fd_insert
      Src: /src/haproxy/src/proto_quic.c:431,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/proto_quic.c:432,1
    - Dst: conn_ctrl_init
      Src: /src/haproxy/src/proto_quic.c:434,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 100
    argCount: 2
    argNames:
    - conn
    - flags
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 436
    functionName: quic_connect_server
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - obj_type
    - set_host_port
    - unlikely
    - __objt_proxy
    - close
    - setsockopt
    - port_range_release_port
    - connect
    - is_inet_addr
    - conn_set_private
    - fd_insert
    - get_addr_len
    - __objt_server
    - BUG_ON
    - conn_ctrl_init
    - quic_bind_socket
    - ha_alert
    - fd_want_recv
    - port_range_alloc_port
    - send_log
    - sock_create_server_socket
    - memcpy
    linkageType: ''
    returnType: int
    signature: int quic_connect_server(struct connection *conn, int flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/proto_quic.c:446,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/proto_quic.c:447,1
    - Dst: calloc
      Src: /src/haproxy/src/proto_quic.c:451,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/proto_quic.c:455,1
    - Dst: free
      Src: /src/haproxy/src/proto_quic.c:457,1
    - Dst: b_make
      Src: /src/haproxy/src/proto_quic.c:461,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proto_quic.c:462,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/proto_quic.c:463,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/proto_quic.c:469,1
    - Dst: typeof
      Src: /src/haproxy/src/proto_quic.c:469,1
    - Dst: pool_free
      Src: /src/haproxy/src/proto_quic.c:470,1
    - Dst: free
      Src: /src/haproxy/src/proto_quic.c:471,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 474
    functionName: quic_alloc_rxbufs_listener
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - MT_LIST_POP
    - my_popcountl
    - MT_LIST_APPEND
    - pool_free
    - free
    - pool_alloc
    - LIST_INIT
    - typeof
    - MT_LIST_INIT
    - calloc
    - b_make
    linkageType: ''
    returnType: int
    signature: int quic_alloc_rxbufs_listener(struct listener *l)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:517,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:519,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:524,1
    - Dst: quic_alloc_rxbufs_listener
      Src: /src/haproxy/src/proto_quic.c:531,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:538,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:541,1
    - Dst: listener_set_state
      Src: /src/haproxy/src/proto_quic.c:543,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/proto_quic.c:549,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_quic.c:550,1
    - Dst: get_host_port
      Src: /src/haproxy/src/proto_quic.c:550,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 553
    functionName: quic_bind_listener
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - addr_to_str
    - snprintf
    - setsockopt
    - listener_set_state
    - quic_alloc_rxbufs_listener
    - get_host_port
    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:565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 566
    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:578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 579
    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: 594
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 594
    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:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - conn
    - new_tid
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 604
    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:609,1
    - Dst: objt_listener
      Src: /src/haproxy/src/proto_quic.c:609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 610
    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:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 616
    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:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 623
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/proto_quic.c:630,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:632,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/proto_quic.c:639,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:641,1
    - Dst: tasklet_set_tid
      Src: /src/haproxy/src/proto_quic.c:645,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/proto_quic.c:649,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 653
    functionName: quic_alloc_dghdlrs
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - tasklet_new
    - tasklet_set_tid
    - MT_LIST_INIT
    - ha_alert
    - calloc
    linkageType: ''
    returnType: int
    signature: int quic_alloc_dghdlrs(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_free
      Src: /src/haproxy/src/proto_quic.c:662,1
    - Dst: free
      Src: /src/haproxy/src/proto_quic.c:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 667
    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:682,1
    - Dst: socket
      Src: /src/haproxy/src/proto_quic.c:685,1
    - Dst: socket
      Src: /src/haproxy/src/proto_quic.c:686,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:698,1
    - Dst: bind
      Src: /src/haproxy/src/proto_quic.c:699,1
    - Dst: getsockname
      Src: /src/haproxy/src/proto_quic.c:705,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:711,1
    - Dst: bind
      Src: /src/haproxy/src/proto_quic.c:712,1
    - Dst: close
      Src: /src/haproxy/src/proto_quic.c:724,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 728
    functionName: quic_test_conn_socket_owner
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - bind
    - ntohl
    - getsockname
    - close
    - socket
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int quic_test_conn_socket_owner(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/haproxy/src/proto_quic.c:736,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_quic.c:742,1
    - Dst: close
      Src: /src/haproxy/src/proto_quic.c:753,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 755
    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:771,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/proto_quic.c:776,1
    - Dst: quic_test_gso
      Src: /src/haproxy/src/proto_quic.c:785,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/proto_quic.c:790,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_quic.c:800,1
    - Dst: strerror
      Src: /src/haproxy/src/proto_quic.c:800,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 802
    functionName: quic_test_socketopts
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - ha_diag_warning
    - quic_test_conn_socket_owner
    - strerror
    - ha_alert
    - quic_test_gso
    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:810,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_quic.c:811,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_quic.c:812,1
    - Dst: quic_test_gso
      Src: /src/haproxy/src/proto_quic.c:815,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_quic.c:816,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_quic.c:817,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/proto_quic.c:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 821
    functionName: quic_register_build_options
    functionSourceFile: /src/haproxy/src/proto_quic.c
    functionUses: 0
    functionsReached:
    - hap_register_build_opts
    - quic_test_conn_socket_owner
    - quic_test_gso
    - memprintf
    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:
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - hap_fd_set
    - hap_fd_clr
    - _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:
    - _HA_ATOMIC_CAS
    - done_update_polling
    - compute_poll_timeout
    - clock_entering_poll
    - thread_harmless_now
    - _HA_ATOMIC_AND
    - fd_update_events
    - _HA_ATOMIC_OR
    - _HA_ATOMIC_INC
    - fd_leaving_poll
    - _update_fd
    - thread_idle_now
    - poll
    - clock_update_date
    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
    - hap_register_per_thread_deinit
    - free
    - hap_register_per_thread_init
    - calloc
    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: 7
    argCount: 2
    argNames:
    - set
    - cpu
    argTypes:
    - struct hap_cpuset*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 31
    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:35,1
    - Dst: CPU_CLR
      Src: /src/haproxy/src/cpuset.c:39,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - set
    - cpu
    argTypes:
    - struct hap_cpuset*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    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:51,1
    - Dst: CPU_AND
      Src: /src/haproxy/src/cpuset.c:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct hap_cpuset*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 59
    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:64,1
    - Dst: CPU_OR
      Src: /src/haproxy/src/cpuset.c:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct hap_cpuset*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 72
    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:76,1
    - Dst: CPU_ISSET
      Src: /src/haproxy/src/cpuset.c:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - set
    - cpu
    argTypes:
    - struct hap_cpuset*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 90
    functionName: ha_cpuset_isset
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_ISSET
    - ha_cpuset_size
    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:95,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/cpuset.c:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: ha_cpuset_count
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - my_popcountl
    - CPU_COUNT
    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:107,1
    - Dst: CPU_ISSET
      Src: /src/haproxy/src/cpuset.c:110,1
    - Dst: CPU_FFS
      Src: /src/haproxy/src/cpuset.c:116,1
    - Dst: my_ffsl
      Src: /src/haproxy/src/cpuset.c:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 124
    functionName: ha_cpuset_ffs
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_ISSET
    - CPU_FFS
    - my_ffsl
    - CPU_COUNT
    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:129,1
    - Dst: CPU_OR
      Src: /src/haproxy/src/cpuset.c:130,1
    - Dst: CPU_COPY
      Src: /src/haproxy/src/cpuset.c:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct hap_cpuset*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: ha_cpuset_assign
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_OR
    - CPU_ZERO
    - CPU_COPY
    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:144,1
    - Dst: CPU_CMP
      Src: /src/haproxy/src/cpuset.c:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct hap_cpuset*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: ha_cpuset_isequal
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - CPU_CMP
    - CPU_EQUAL
    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: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    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:177,1
    - Dst: isdigit
      Src: /src/haproxy/src/cpuset.c:184,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpuset.c:185,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpuset.c:189,1
    - Dst: strchr
      Src: /src/haproxy/src/cpuset.c:191,1
    - Dst: strchr
      Src: /src/haproxy/src/cpuset.c:192,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpuset.c:195,1
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:195,1
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:203,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpuset.c:204,1
    - Dst: ha_cpuset_size
      Src: /src/haproxy/src/cpuset.c:205,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpuset.c:210,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: 217
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 217
    functionName: parse_cpu_set
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_zero
    - str2uic
    - isdigit
    - memprintf
    - strchr
    - ha_cpuset_set
    - ha_cpuset_size
    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:228,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpuset.c:234,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpuset.c:237,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpuset.c:242,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpuset.c:247,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpuset.c:255,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpuset.c:257,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpuset.c:263,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: 271
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 271
    functionName: print_cpu_set
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_size
    - snprintf
    - ha_cpuset_isset
    - ha_cpuset_count
    - 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:283,1
    - Dst: strrchr
      Src: /src/haproxy/src/cpuset.c:290,1
    - Dst: strtoul
      Src: /src/haproxy/src/cpuset.c:293,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpuset.c:296,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - cpumap_str
    - cpu_set
    argTypes:
    - char*
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 303
    functionName: parse_cpumap
    functionSourceFile: /src/haproxy/src/cpuset.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_set
    - ha_cpuset_zero
    - strrchr
    - strtoul
    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:
    - MAX
    - MIN
    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:
    - bbr_min_pipe_cwnd
    - MAX
    - 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:
    - bbr_min_pipe_cwnd
    - MAX
    - 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_inflight_with_headroom
    - MIN
    - bbr_is_in_a_probe_bw_state
    - MAX
    - bbr_min_pipe_cwnd
    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_update_max_inflight
    - MIN
    - bbr_bound_cwnd_for_model
    - bbr_bound_cwnd_for_probe_rtt
    - MAX
    - quic_cc_path_set
    - bbr_min_pipe_cwnd
    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_drs_init
    - bbr_enter_startup
    - bbr_reset_full_bw
    - bbr_init_pacing_rate
    - bbr_reset_lower_bounds
    - quic_cc_priv
    - wf_init
    - bbr_reset_congestion_signals
    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
    - MAX
    - bbr_bdp_multiple
    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:
    - MAX
    - MIN
    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_start_round
    - bbr_pick_probe_wait
    - bbr_reset_congestion_signals
    - bbr_advance_max_bw_filter
    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_reset_full_bw
    - bbr_start_round
    - bbr_raise_inflight_hi_slope
    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_enter_startup
    - bbr_reset_lower_bounds
    - bbr_start_probe_bw_cruise
    - bbr_start_probe_bw_down
    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_target_inflight
    - MAX
    - bbr_start_probe_bw_down
    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:
    - bbr_handle_inflight_too_high
    - is_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:
    - bbr_target_inflight
    - MIN
    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_has_elapsed_in_phase
    - bbr_is_reno_coexistence_probe_time
    - bbr_start_probe_bw_refill
    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_with_headroom
    - bbr_inflight
    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_restore_cwnd
    - tick_is_lt
    - bbr_exit_probe_rtt
    - tick_isset
    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:
    - wf_max_update
    - bbr_update_round
    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_loss_lower_bounds
    - bbr_is_probing_bw
    - bbr_init_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_check_startup_high_loss
    - bbr_enter_drain
    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_is_time_to_cruise
    - bbr_start_probe_bw_down
    - bbr_start_probe_bw_up
    - bbr_start_probe_bw_cruise
    - bbr_is_in_a_probe_bw_state
    - bbr_is_time_to_go_down
    - bbr_adapt_upper_bounds
    - 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:
    - tick_add
    - bbr_check_probe_rtt_done
    - bbr_probe_rtt_cwnd
    - tick_isset
    - bbr_start_round
    - bbr_mark_connection_app_limited
    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_save_cwnd
    - bbr_handle_probe_rtt
    - 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_probe_rtt
    - bbr_advance_latest_delivery_signals
    - bbr_check_startup_done
    - bbr_check_full_bw_reached
    - bbr_check_drain_done
    - bbr_update_ack_aggregation
    - bbr_update_min_rtt
    - bbr_update_latest_delivery_signals
    - bbr_bound_bw_for_model
    - bbr_update_congestion_signals
    - 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_pacing_rate
    - bbr_set_cwnd
    - bbr_set_send_quantum
    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_is_le
    - tick_isset
    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_restore_cwnd
    - tick_isset
    - bbr_save_cwnd
    - quic_cc_path_set
    - MAX
    - in_recovery_period
    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:
    - bbr_update_control_parameters
    - bbr_handle_recovery
    - container_of
    - bbr_update_model_and_state
    - quic_cc_priv
    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_handle_inflight_too_high
    - is_inflight_too_high
    - bbr_note_loss
    - bbr_inflight_hi_from_lost_packet
    - BUG_ON
    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:
    - bbr_handle_lost_packet
    - container_of
    - quic_cc_priv
    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
    - quic_cc_priv
    - bbr_handle_restart_from_idle
    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:
    - quic_cc_drs_on_pkt_sent
    - container_of
    - 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:
    - in_recovery_period
    - container_of
    - quic_cc_priv
    - tick_isset
    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:
    - chunk_appendf
    - bbr_state_str
    - 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: 0
    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:
    - ring_init
    - ha_aligned_alloc
    - ha_aligned_alloc_typed
    - ha_aligned_free
    - typeof
    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:
    - thread_release
    - thread_isolate
    - vp_peek_ofs
    - vp_size
    - HA_ATOMIC_XCHG::HA_ATOMIC_XCHG
    - vp_ring_to_data
    - ring_data
    - ha_aligned_alloc::ha_aligned_alloc
    - area::area
    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:
    - appctx_wakeup
    - HA_ATOMIC_INC
    - HA_ATOMIC_STORE
    - vp_size
    - vp_ring_to_data
    - HA_ATOMIC_XCHG
    - vp_ring_to_room
    - DISGUISE
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - likely
    - vp_putchr
    - vp_put_varint
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_CAS
    - _vp_head
    - _HA_ATOMIC_STORE
    - varint_bytes
    - __ha_cpu_relax_for_read
    - __ha_cpu_relax
    - vp_skip
    - vp_data_to_ring
    - BUG_ON_HOT
    - vp_peek_varint_ofs
    - HA_ATOMIC_FETCH_OR
    - vp_putblk
    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
    - HA_ATOMIC_DEC
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - ring_area
    - ring_size
    - BUG_ON
    - __ha_cpu_relax
    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
    - ring_attach
    - cli_err
    - TOSTR
    - applet_reserve_svcctx
    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:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - thread_release
    - unlikely
    - thread_isolate
    - __ha_cpu_relax
    - ring_tail
    - BUG_ON
    - vp_skip
    - HA_ATOMIC_LOAD
    - vp_data_to_ring
    - vp_size
    - vp_ring_to_data
    - _vp_addr
    - vp_peek_varint_ofs
    - msg_handler
    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:
    - MT_LIST_DELETE
    - applet_fl_clr
    - b_reset
    - applet_will_consume
    - MT_LIST_APPEND
    - b_data
    - se_fl_test
    - ring_tail
    - applet_have_no_more_data
    - applet_expect_no_data
    - applet_have_more_data
    - ring_dispatch_messages
    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:
    - varint_bytes
    - ring_size
    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:
    - memprintf
    - too_many_args
    - atoi
    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_idx_to_name
    - hpack_idx_to_value
    - istpad
    - fprintf
    - hpack_get_dte
    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:
    - dht::dht
    - hpack_dht_get_tail
    - hpack_dht_alloc
    - hpack_dht_free
    - memcpy
    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_defrag
    - hpack_dht_make_room
    - hpack_dht_get_tail
    - memcpy
    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_pushnumber
    - lua_pushnil
    - lua_pushinteger
    - lua_pushstring
    - field_format
    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
    - HTTP_IS_LWS
    - lua_pushlstring
    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_upvalueindex
    - lua_pushfstring
    - lua_tostring
    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_pushcclosure
    - lua_pushvalue
    - luaL_ref
    - lua_setfield
    - luaL_error
    - lua_type
    - lua_rawset
    - lua_pushstring
    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_istable
    - lua_touserdata
    - lua_rawequal
    - luaL_argerror
    - lua_getmetatable
    - lua_rawgeti
    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_pushinteger
    - NS_TO_TV
    - lua_newtable
    - lua_rawset
    - tv_add
    - lua_pushstring
    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:
    - lua_pushnil
    - my_timegm
    - lua_pushinteger
    - fcn
    - luaL_checklstring
    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
    - lua_newtable
    - lua_settable
    - stats_fill_info
    - lua_pushstring
    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
    - lua_pop
    - lua_touserdata
    - luaL_checklstring
    - buffer::buffer
    - hlua_check_concat
    - lua_newuserdata::lua_newuserdata
    - memcpy
    - lua_rawgeti
    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_pop
    - lua_touserdata
    - hlua_check_concat
    - lua_pushlstring
    - lua_rawgeti
    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_newuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawgeti
    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_pushfstring
    - lua_topointer
    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_pushcclosure
    - luaL_ref
    - lua_newtable
    - lua_settable
    - lua_pushstring
    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_gethlua
    - HLUA_CANT_YIELD
    - BUG_ON
    - luaL_error
    - hlua_check_queue
    - notification_new
    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:
    - lua_isnoneornil
    - HA_ATOMIC_INC
    - MT_LIST_APPEND
    - lua_gettop
    - BUG_ON
    - lua_pushboolean
    - luaL_error
    - hlua_check_queue
    - notification_wake
    - pool_alloc
    - MT_LIST_INIT
    - hlua_ref
    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:
    - MT_LIST_POP
    - HA_ATOMIC_DEC
    - hlua_unref
    - pool_free
    - hlua_pushref
    - typeof
    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_check_queue
    - _hlua_queue_pop
    - 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_gethlua
    - hlua_yieldk
    - lua_pushnil
    - hlua_check_queue
    - notification_new
    - _hlua_queue_pop
    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_gethlua
    - HLUA_CANT_YIELD
    - BUG_ON
    - luaL_error
    - hlua_check_queue
    - _hlua_queue_pop_wait
    - _hlua_queue_pop
    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
    - lua_newuserdata
    - lua_newtable
    - hlua_class_function
    - MT_LIST_INIT
    - lua_setmetatable
    - lua_rawgeti
    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
    - MT_LIST_POP
    - typeof
    - pool_free
    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_register_metatable
    - lua_newtable
    - hlua_class_function
    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_rawseti
    - lua_pushlightuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawgeti
    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_check_stktable
    - hlua_fcn_pushunsigned
    - lua_pushnil
    - lua_pushinteger
    - lua_pushboolean
    - lua_newtable
    - lua_settable
    - lua_pushstring
    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:
    - hlua_fcn_pushunsigned
    - lua_pushinteger
    - read_freq_ctr_period
    - stktable_data_ptr
    - stktable_data_cast
    - lua_settable
    - hlua_fcn_pushunsigned_ll
    - lua_pushstring
    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:
    - HA_ATOMIC_DEC
    - hlua_check_stktable
    - hlua_stktable_entry
    - lua_pushnil
    - lua_pushinteger
    - tick_remain
    - HA_ATOMIC_LOAD
    - lua_newtable
    - smp_to_stkey
    - lua_settable
    - stktable_lookup_key
    - lua_tolstring
    - lua_pushstring
    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:
    - lua_pushnil
    - va_start
    - vsnprintf
    - ha_alert
    - lua_pushstring
    - va_end
    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_ATOMIC_DEC
    - hlua_check_stktable
    - HA_ATOMIC_INC
    - lua_tostring
    - lua_pop
    - get_std_op
    - lua_pushinteger
    - ebmb_entry
    - lua_pushstring
    - hlua_stktable_entry
    - lua_pushnil
    - HA_RWLOCK_WRLOCK
    - ebmb_first
    - HA_RWLOCK_WRUNLOCK
    - inet_ntop
    - stktable_data_ptr
    - lua_newtable
    - lua_rawlen
    - hlua_error
    - lua_next
    - read_freq_ctr_period
    - stktable_data_cast
    - stktable_get_data_type
    - lua_tointeger
    - lua_type
    - ebmb_next
    - lua_settable
    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_rawseti
    - lua_pushlightuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawgeti
    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:
    - lua_pushnil
    - hlua_yield_asap
    - lua_newtable
    - stats_fill_li_line
    - hlua_check_listener
    - hlua_fcn_pushfield
    - lua_settable
    - lua_pushstring
    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:
    - hlua_checkudata
    - srv_drop
    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:
    - lua_pushnil
    - hlua_check_server
    - stats_fill_sv_line
    - hlua_yield_asap
    - lua_newtable
    - lua_settable
    - hlua_fcn_pushfield
    - lua_pushstring
    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_fcn_new_proxy
    - lua_pushnil
    - hlua_check_server
    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:
    - lua_pushnil
    - hlua_check_server
    - inet_ntop
    - snprintf
    - luaL_addstring
    - real_family
    - luaL_pushresult
    - luaL_buffinit
    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:
    - snprintf
    - lua_pushstring
    - lua_pushnil
    - hlua_check_server
    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:
    - snprintf
    - lua_pushstring
    - lua_pushnil
    - hlua_check_server
    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:
    - lua_pushstring
    - lua_pushnil
    - hlua_check_server
    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:
    - ha_warning
    - lua_tostring
    - hlua_server_get_puid
    - strcmp
    - ONLY_ONCE
    - lua_pushvalue
    - hlua_traceback
    - hlua_server_get_name
    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:
    - lua_pushboolean
    - server_is_draining
    - lua_pushnil
    - hlua_check_server
    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:
    - lua_pushboolean
    - lua_pushnil
    - hlua_check_server
    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:
    - lua_pushboolean
    - lua_pushnil
    - hlua_check_server
    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:
    - lua_pushinteger
    - lua_pushnil
    - hlua_check_server
    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:
    - lua_pushinteger
    - lua_pushnil
    - hlua_check_server
    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:
    - server_parse_maxconn_change_request
    - lua_pushnil
    - hlua_check_server
    - luaL_checkstring
    - hlua_pushstrippedstring
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:
    - lua_pushinteger
    - lua_pushnil
    - hlua_check_server
    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:
    - server_parse_weight_change_request
    - lua_pushnil
    - hlua_check_server
    - luaL_checkstring
    - hlua_pushstrippedstring
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:
    - lua_pushinteger
    - lua_pushnil
    - hlua_check_server
    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:
    - lua_pushnil
    - hlua_check_server
    - lua_gettop
    - luaL_checkstring
    - srv_update_addr_port
    - hlua_pushstrippedstring
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:
    - srv_shutdown_streams
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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:
    - srv_adm_set_drain
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_adm_set_maint
    - hlua_check_server
    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:
    - srv_adm_set_ready
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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:
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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:
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_set_running
    - hlua_check_server
    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:
    - srv_set_stopping
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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:
    - srv_set_stopped
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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:
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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:
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - srv_set_running
    - hlua_check_server
    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:
    - srv_set_stopped
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - hlua_check_server
    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_fcn_new_server
    - lua_pushnil
    - hlua_check_server
    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_checkstack
    - lua_rawseti
    - hlua_check_server
    - luaL_error
    - lua_newtable
    - hlua_fcn_new_server
    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_event_sub
    - lua_remove
    - hlua_check_server
    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:
    - srv_take
    - lua_rawseti
    - lua_pushlightuserdata
    - lua_newtable
    - hlua_class_function
    - lua_setmetatable
    - lua_rawgeti
    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:
    - lua_pushnil
    - server_find
    - luaL_checkstring
    - hlua_check_server_list
    - hlua_fcn_new_server
    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:
    - lua_pushnil
    - watcher_attach
    - lua_touserdata
    - lua_upvalueindex
    - watcher_next
    - hlua_fcn_new_server
    - lua_pushstring
    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:
    - watcher_detach
    - lua_touserdata
    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:
    - lua_pushcclosure
    - watcher_init
    - lua_newuserdata
    - hlua_check_server_list
    - lua_newtable
    - hlua_class_function
    - lua_setmetatable
    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_newuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawgeti
    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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1969
    functionDepth: 1
    functionLinenumber: 1969
    functionLinenumberEnd: 1972
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:1978,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1974
    functionDepth: 2
    functionLinenumber: 1974
    functionLinenumberEnd: 1981
    functionName: hlua_proxy_get_name
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - lua_pushstring
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_name(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:1988,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua_fcn.c:1989,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:1990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1983
    functionDepth: 2
    functionLinenumber: 1983
    functionLinenumberEnd: 1992
    functionName: hlua_proxy_get_uuid
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - snprintf
    - hlua_check_proxy
    - lua_pushstring
    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:2002,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua_fcn.c:2004,1
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/hlua_fcn.c:2005,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua_fcn.c:2006,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua_fcn.c:2006,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:2007,1
    - Dst: hlua_proxy_get_name
      Src: /src/haproxy/src/hlua_fcn.c:2008,1
    - Dst: strcmp
      Src: /src/haproxy/src/hlua_fcn.c:2011,1
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/hlua_fcn.c:2012,1
    - Dst: ha_warning
      Src: /src/haproxy/src/hlua_fcn.c:2013,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/hlua_fcn.c:2013,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:2014,1
    - Dst: hlua_proxy_get_uuid
      Src: /src/haproxy/src/hlua_fcn.c:2015,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 2000
    functionDepth: 3
    functionLinenumber: 2000
    functionLinenumberEnd: 2020
    functionName: hlua_proxy_index
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - lua_tostring
    - strcmp
    - ONLY_ONCE
    - hlua_proxy_get_name
    - lua_pushvalue
    - hlua_traceback
    - hlua_proxy_get_uuid
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_index(struct lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2026,1
    - Dst: pause_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2022
    functionDepth: 2
    functionLinenumber: 2022
    functionLinenumberEnd: 2030
    functionName: hlua_proxy_pause
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - pause_proxy
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_pause(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2036,1
    - Dst: resume_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2032
    functionDepth: 2
    functionLinenumber: 2032
    functionLinenumberEnd: 2040
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2046,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2042
    functionDepth: 2
    functionLinenumber: 2042
    functionLinenumberEnd: 2050
    functionName: hlua_proxy_stop
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - stop_proxy
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_stop(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2057,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/hlua_fcn.c:2058,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2052
    functionDepth: 2
    functionLinenumber: 2052
    functionLinenumberEnd: 2061
    functionName: hlua_proxy_get_cap
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - lua_pushstring
    - proxy_cap_str
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_cap(lua_State *L)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2068,1
    - Dst: stats_fill_be_line
      Src: /src/haproxy/src/hlua_fcn.c:2070,1
    - Dst: stats_fill_fe_line
      Src: /src/haproxy/src/hlua_fcn.c:2072,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2073,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2075,1
    - Dst: hlua_fcn_pushfield
      Src: /src/haproxy/src/hlua_fcn.c:2076,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2077,1
    - Dst: hlua_yield_asap
      Src: /src/haproxy/src/hlua_fcn.c:2079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2081
      start: 2063
    functionDepth: 2
    functionLinenumber: 2063
    functionLinenumberEnd: 2081
    functionName: hlua_proxy_get_stats
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - stats_fill_fe_line
    - hlua_fcn_pushfield
    - hlua_yield_asap
    - lua_newtable
    - lua_settable
    - stats_fill_be_line
    - lua_pushstring
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_stats(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2088,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/hlua_fcn.c:2089,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2083
    functionDepth: 2
    functionLinenumber: 2083
    functionLinenumberEnd: 2092
    functionName: hlua_proxy_get_mode
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - lua_pushstring
    - proxy_mode_str
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_mode(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2098,1
    - Dst: srv_shutdown_backup_streams
      Src: /src/haproxy/src/hlua_fcn.c:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2101
      start: 2094
    functionDepth: 2
    functionLinenumber: 2094
    functionLinenumberEnd: 2101
    functionName: hlua_proxy_shut_bcksess
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - srv_shutdown_backup_streams
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_shut_bcksess(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2107,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2103
    functionDepth: 2
    functionLinenumber: 2103
    functionLinenumberEnd: 2110
    functionName: hlua_proxy_get_srv_act
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_srv_act(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2116,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2112
    functionDepth: 2
    functionLinenumber: 2112
    functionLinenumberEnd: 2119
    functionName: hlua_proxy_get_srv_bck
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - lua_pushinteger
    linkageType: ''
    returnType: int
    signature: int hlua_proxy_get_srv_bck(lua_State *L)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2130,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2135,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2138,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2139,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2140,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2143,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2144,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2145,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2148,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2149,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2154,1
    - Dst: sa2str
      Src: /src/haproxy/src/hlua_fcn.c:2164,1
    - Dst: get_host_port
      Src: /src/haproxy/src/hlua_fcn.c:2164,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2166,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua_fcn.c:2167,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2168,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2171,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2174,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2175,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2176,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2179,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2180,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2181,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2184,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2185,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2186,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2189,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2190,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2124
    functionDepth: 2
    functionLinenumber: 2124
    functionLinenumberEnd: 2194
    functionName: hlua_proxy_get_mailers
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_proxy
    - lua_pushinteger
    - ha_free
    - lua_pushboolean
    - sa2str
    - lua_newtable
    - lua_settable
    - lua_pushstring
    - get_host_port
    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:2202,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:2205,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2206,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2208,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2209,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2212,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2213,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2214,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2215,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2216,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2217,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2218,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2219,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2220,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2221,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2222,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2223,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2226,1
    - Dst: hlua_listable_servers
      Src: /src/haproxy/src/hlua_fcn.c:2227,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2228,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2231,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2232,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/hlua_fcn.c:2234,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2236,1
    - Dst: snprintf
      Src: /src/haproxy/src/hlua_fcn.c:2238,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2240,1
    - Dst: hlua_fcn_new_listener
      Src: /src/haproxy/src/hlua_fcn.c:2242,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2243,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2245,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2248,1
    - Dst: hlua_fcn_new_stktable
      Src: /src/haproxy/src/hlua_fcn.c:2249,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:2250,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 2
    argNames:
    - L
    - px
    argTypes:
    - lua_State*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2196
    functionDepth: 1
    functionLinenumber: 2196
    functionLinenumberEnd: 2254
    functionName: hlua_fcn_new_proxy
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - hlua_fcn_new_listener
    - lua_rawseti
    - list_for_each_entry
    - snprintf
    - hlua_listable_servers
    - hlua_fcn_new_stktable
    - lua_pushlightuserdata
    - lua_newtable
    - hlua_class_function
    - lua_setmetatable
    - lua_settable
    - lua_pushstring
    - lua_rawgeti
    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:2258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - L
    - ud
    argTypes:
    - lua_State*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2256
    functionDepth: 1
    functionLinenumber: 2256
    functionLinenumberEnd: 2259
    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: 2266
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2266
    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:2277,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2278,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/hlua_fcn.c:2282,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/hlua_fcn.c:2285,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2288,1
    - Dst: hlua_fcn_new_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2292,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2271
    functionDepth: 2
    functionLinenumber: 2271
    functionLinenumberEnd: 2294
    functionName: hlua_listable_proxies_index
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_new_proxy
    - lua_pushnil
    - luaL_checkstring
    - proxy_find_by_name
    - 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: 2298
      start: 2296
    functionDepth: 0
    functionLinenumber: 2296
    functionLinenumberEnd: 2298
    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:2308,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:2309,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2312,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2316,1
    - Dst: hlua_fcn_new_proxy
      Src: /src/haproxy/src/hlua_fcn.c:2317,1
    - Dst: hlua_listable_proxies_match
      Src: /src/haproxy/src/hlua_fcn.c:2320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2303
    functionDepth: 2
    functionLinenumber: 2303
    functionLinenumberEnd: 2324
    functionName: hlua_listable_proxies_pairs_iterator
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_fcn_new_proxy
    - lua_pushnil
    - lua_touserdata
    - lua_upvalueindex
    - hlua_listable_proxies_match
    - lua_pushstring
    linkageType: ''
    returnType: int
    signature: int hlua_listable_proxies_pairs_iterator(lua_State *L)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hlua_check_proxy_list
      Src: /src/haproxy/src/hlua_fcn.c:2335,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2337,1
    - Dst: hlua_listable_proxies_match
      Src: /src/haproxy/src/hlua_fcn.c:2341,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:2343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2345
      start: 2330
    functionDepth: 2
    functionLinenumber: 2330
    functionLinenumberEnd: 2345
    functionName: hlua_listable_proxies_pairs
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_newuserdata
    - hlua_listable_proxies_match
    - hlua_check_proxy_list
    - lua_pushcclosure
    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:2351,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2352,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2354,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:2355,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - L
    - capabilities
    argTypes:
    - lua_State*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2347
    functionDepth: 0
    functionLinenumber: 2347
    functionLinenumberEnd: 2357
    functionName: hlua_listable_proxies
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - lua_newuserdata
    - lua_newtable
    - lua_setmetatable
    - lua_rawgeti
    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:2361,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2363,1
    - Dst: event_hdl_take
      Src: /src/haproxy/src/hlua_fcn.c:2364,1
    - Dst: event_hdl_unsubscribe
      Src: /src/haproxy/src/hlua_fcn.c:2365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2359
    functionDepth: 1
    functionLinenumber: 2359
    functionLinenumberEnd: 2367
    functionName: hlua_event_sub_unsub
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - event_hdl_take
    - hlua_checkudata
    - BUG_ON
    - event_hdl_unsubscribe
    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:2371,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2373,1
    - Dst: event_hdl_drop
      Src: /src/haproxy/src/hlua_fcn.c:2374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2376
    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:2380,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:2383,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2384,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2386,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2387,1
    - Dst: event_hdl_take
      Src: /src/haproxy/src/hlua_fcn.c:2390,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - L
    - sub
    argTypes:
    - lua_State*
    - struct event_hdl_sub*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2378
    functionDepth: 1
    functionLinenumber: 2378
    functionLinenumberEnd: 2396
    functionName: hlua_fcn_new_event_sub
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 2
    functionsReached:
    - lua_rawseti
    - lua_pushlightuserdata
    - lua_newtable
    - hlua_class_function
    - lua_setmetatable
    - event_hdl_take
    - lua_rawgeti
    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:2416,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2417,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua_fcn.c:2418,1
    - Dst: hlua_checkboolean
      Src: /src/haproxy/src/hlua_fcn.c:2419,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2421,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua_fcn.c:2431,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2432,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2443
    functionName: hlua_tokenize
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - lua_gettop
    - luaL_checkstring
    - lua_newtable
    - lua_pushlstring
    - 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:2448,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2451,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2453,1
    - Dst: str2net
      Src: /src/haproxy/src/hlua_fcn.c:2457,1
    - Dst: str62net
      Src: /src/haproxy/src/hlua_fcn.c:2462,1
    - Dst: len2mask6
      Src: /src/haproxy/src/hlua_fcn.c:2463,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:2468,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2471
      start: 2445
    functionDepth: 1
    functionLinenumber: 2445
    functionLinenumberEnd: 2471
    functionName: hlua_parse_addr
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - len2mask6
    - lua_pushnil
    - lua_pop
    - str62net
    - luaL_checkstring
    - lua_newuserdata
    - str2net
    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:2478,1
    - Dst: lua_isuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2479,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2480,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:2484,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:2485,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2488,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2495,1
    - Dst: read_u32
      Src: /src/haproxy/src/hlua_fcn.c:2502,1
    - Dst: read_u32
      Src: /src/haproxy/src/hlua_fcn.c:2503,1
    - Dst: read_u32
      Src: /src/haproxy/src/hlua_fcn.c:2504,1
    - Dst: read_u32
      Src: /src/haproxy/src/hlua_fcn.c:2505,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2509,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2514,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2473
    functionDepth: 1
    functionLinenumber: 2473
    functionLinenumberEnd: 2516
    functionName: hlua_match_addr
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_touserdata
    - lua_isuserdata
    - lua_pushboolean
    - read_u32
    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:2520,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2518
    functionDepth: 1
    functionLinenumber: 2518
    functionLinenumberEnd: 2521
    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:2530,1
    - Dst: luaL_argcheck
      Src: /src/haproxy/src/hlua_fcn.c:2531,1
    - Dst: lua_isboolean
      Src: /src/haproxy/src/hlua_fcn.c:2531,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua_fcn.c:2532,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2534,1
    - Dst: regex_comp
      Src: /src/haproxy/src/hlua_fcn.c:2537,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2538,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2539,1
    - Dst: free
      Src: /src/haproxy/src/hlua_fcn.c:2540,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2544,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2547,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:2548,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2549,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:2550,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2523
    functionDepth: 2
    functionLinenumber: 2523
    functionLinenumberEnd: 2553
    functionName: hlua_regex_comp
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushvalue
    - lua_rawseti
    - regex_comp
    - luaL_checkstring
    - lua_pushboolean
    - lua_newuserdata
    - free
    - lua_newtable
    - lua_setmetatable
    - luaL_argcheck
    - lua_pushstring
    - lua_isboolean
    - lua_toboolean
    - lua_rawgeti
    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:2562,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua_fcn.c:2563,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2566,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua_fcn.c:2573,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2575,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua_fcn.c:2578,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2580,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/hlua_fcn.c:2580,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2583
      start: 2555
    functionDepth: 2
    functionLinenumber: 2555
    functionLinenumberEnd: 2583
    functionName: hlua_regex_exec
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_check_regex
    - get_trash_chunk
    - lua_pushboolean
    - luaL_checklstring
    - regex_exec2
    - memcpy
    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:2595,1
    - Dst: luaL_checklstring
      Src: /src/haproxy/src/hlua_fcn.c:2596,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2599,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/hlua_fcn.c:2606,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2608,1
    - Dst: memcpy
      Src: /src/haproxy/src/hlua_fcn.c:2611,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/hlua_fcn.c:2613,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2614,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:2615,1
    - Dst: lua_pushlstring
      Src: /src/haproxy/src/hlua_fcn.c:2618,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2623
      start: 2585
    functionDepth: 2
    functionLinenumber: 2585
    functionLinenumberEnd: 2623
    functionName: hlua_regex_match
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_rawseti
    - hlua_check_regex
    - get_trash_chunk
    - lua_pushboolean
    - luaL_checklstring
    - regex_exec_match2
    - lua_newtable
    - lua_pushlstring
    - memcpy
    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:2629,1
    - Dst: regex_free
      Src: /src/haproxy/src/hlua_fcn.c:2630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - struct lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2633
      start: 2625
    functionDepth: 2
    functionLinenumber: 2625
    functionLinenumberEnd: 2633
    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:2640,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2641,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:2643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2645
      start: 2635
    functionDepth: 1
    functionLinenumber: 2635
    functionLinenumberEnd: 2645
    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:2651,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2652,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2647
    functionDepth: 1
    functionLinenumber: 2647
    functionLinenumberEnd: 2656
    functionName: hlua_patref_is_map
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    - BUG_ON
    - lua_pushboolean
    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:2663,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua_fcn.c:2664,1
    - Dst: lua_tointeger
      Src: /src/haproxy/src/hlua_fcn.c:2665,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2669,1
    - Dst: pat_ref_purge_range
      Src: /src/haproxy/src/hlua_fcn.c:2670,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2671,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua_fcn.c:2673,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2661
    functionDepth: 2
    functionLinenumber: 2661
    functionLinenumberEnd: 2683
    functionName: _hlua_patref_clear
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_yieldk
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_purge_range
    - HA_RWLOCK_WRLOCK
    - lua_tointeger
    - lua_pushboolean
    - hlua_checkudata
    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:2690,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2691,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:2694,1
    - Dst: pat_ref_commit
      Src: /src/haproxy/src/hlua_fcn.c:2697,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:2700,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2706,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2707,1
    - Dst: _hlua_patref_clear
      Src: /src/haproxy/src/hlua_fcn.c:2708,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2685
    functionDepth: 3
    functionLinenumber: 2685
    functionLinenumberEnd: 2709
    functionName: hlua_patref_commit
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - BUG_ON
    - _hlua_patref_clear
    - pat_ref_commit
    - hlua_checkudata
    - hlua_error
    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:2715,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2716,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2723,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2724,1
    - Dst: _hlua_patref_clear
      Src: /src/haproxy/src/hlua_fcn.c:2725,1
    - Dst: pat_ref_giveup
      Src: /src/haproxy/src/hlua_fcn.c:2728,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2731
      start: 2711
    functionDepth: 3
    functionLinenumber: 2711
    functionLinenumberEnd: 2731
    functionName: hlua_patref_giveup
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushinteger
    - BUG_ON
    - pat_ref_giveup
    - hlua_checkudata
    - _hlua_patref_clear
    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:2737,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2738,1
    - Dst: pat_ref_newgen
      Src: /src/haproxy/src/hlua_fcn.c:2739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2733
    functionDepth: 1
    functionLinenumber: 2733
    functionLinenumberEnd: 2742
    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:2748,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2749,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2751,1
    - Dst: lua_pushinteger
      Src: /src/haproxy/src/hlua_fcn.c:2752,1
    - Dst: _hlua_patref_clear
      Src: /src/haproxy/src/hlua_fcn.c:2753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2754
      start: 2744
    functionDepth: 3
    functionLinenumber: 2744
    functionLinenumberEnd: 2754
    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:2764,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2766,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2768,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua_fcn.c:2769,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2770,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2772,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:2774,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/hlua_fcn.c:2775,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/hlua_fcn.c:2777,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2778,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:2782,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua_fcn.c:2783,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2786,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2756
    functionDepth: 2
    functionLinenumber: 2756
    functionLinenumberEnd: 2788
    functionName: hlua_patref_add
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_error
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - lua_gettop
    - luaL_checkstring
    - BUG_ON
    - lua_pushboolean
    - pat_ref_may_commit
    - pat_ref_load
    - hlua_checkudata
    - pat_ref_add
    linkageType: ''
    returnType: int
    signature: int hlua_patref_add(lua_State *L)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: hlua_checkudata
      Src: /src/haproxy/src/hlua_fcn.c:2793,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:2800,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2805,1
    - Dst: lua_next
      Src: /src/haproxy/src/hlua_fcn.c:2807,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua_fcn.c:2814,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2816,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua_fcn.c:2817,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua_fcn.c:2824,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:2825,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua_fcn.c:2826,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:2827,1
    - Dst: luaL_checktype
      Src: /src/haproxy/src/hlua_fcn.c:2831,1
    - Dst: lua_tostring
      Src: /src/haproxy/src/hlua_fcn.c:2832,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/hlua_fcn.c:2835,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2836,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:2837,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua_fcn.c:2838,1
    - Dst: lua_pop
      Src: /src/haproxy/src/hlua_fcn.c:2844,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2847,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2848,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2791
    functionDepth: 2
    functionLinenumber: 2791
    functionLinenumberEnd: 2850
    functionName: _hlua_patref_add_bulk
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - lua_next
    - hlua_yieldk
    - lua_tostring
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - lua_pop
    - ha_free
    - lua_pushboolean
    - luaL_checktype
    - pat_ref_may_commit
    - pat_ref_load
    - hlua_checkudata
    - hlua_error
    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:2855,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2857,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:2860,1
    - Dst: _hlua_patref_add_bulk
      Src: /src/haproxy/src/hlua_fcn.c:2861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2862
      start: 2851
    functionDepth: 3
    functionLinenumber: 2851
    functionLinenumberEnd: 2862
    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:2870,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2872,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2874,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2876,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:2878,1
    - Dst: pat_ref_gen_delete
      Src: /src/haproxy/src/hlua_fcn.c:2879,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/hlua_fcn.c:2881,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2882,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2884,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2886
      start: 2864
    functionDepth: 1
    functionLinenumber: 2864
    functionLinenumberEnd: 2886
    functionName: hlua_patref_del
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_gen_delete
    - luaL_checkstring
    - BUG_ON
    - lua_pushboolean
    - pat_ref_may_commit
    - pat_ref_delete
    - hlua_checkudata
    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:2898,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2900,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2902,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:2903,1
    - Dst: lua_gettop
      Src: /src/haproxy/src/hlua_fcn.c:2905,1
    - Dst: lua_toboolean
      Src: /src/haproxy/src/hlua_fcn.c:2906,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2908,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:2910,1
    - Dst: pat_ref_gen_find_elt
      Src: /src/haproxy/src/hlua_fcn.c:2918,1
    - Dst: pat_ref_set_elt_duplicate
      Src: /src/haproxy/src/hlua_fcn.c:2920,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/hlua_fcn.c:2922,1
    - Dst: pat_ref_gen_set
      Src: /src/haproxy/src/hlua_fcn.c:2925,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:2927,1
    - Dst: hlua_error
      Src: /src/haproxy/src/hlua_fcn.c:2930,1
    - Dst: ha_free
      Src: /src/haproxy/src/hlua_fcn.c:2931,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:2934,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2888
    functionDepth: 2
    functionLinenumber: 2888
    functionLinenumberEnd: 2936
    functionName: hlua_patref_set
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_gen_set
    - lua_gettop
    - luaL_checkstring
    - BUG_ON
    - pat_ref_gen_find_elt
    - pat_ref_set_elt_duplicate
    - ha_free
    - lua_pushboolean
    - pat_ref_may_commit
    - pat_ref_load
    - hlua_checkudata
    - lua_toboolean
    - hlua_error
    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:2948,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/hlua_fcn.c:2950,1
    - Dst: lua_remove
      Src: /src/haproxy/src/hlua_fcn.c:2953,1
    - Dst: hlua_event_sub
      Src: /src/haproxy/src/hlua_fcn.c:2956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2957
      start: 2944
    functionDepth: 4
    functionLinenumber: 2944
    functionLinenumberEnd: 2957
    functionName: hlua_patref_event_sub
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_checkudata
    - BUG_ON
    - lua_remove
    - hlua_event_sub
    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:2963,1
    - Dst: lua_rawgeti
      Src: /src/haproxy/src/hlua_fcn.c:2968,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:2969,1
    - Dst: malloc
      Src: /src/haproxy/src/hlua_fcn.c:2973,1
    - Dst: luaL_error
      Src: /src/haproxy/src/hlua_fcn.c:2975,1
    - Dst: lua_pushlightuserdata
      Src: /src/haproxy/src/hlua_fcn.c:2979,1
    - Dst: lua_rawseti
      Src: /src/haproxy/src/hlua_fcn.c:2980,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2984,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2985,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2986,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2987,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2988,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2989,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2990,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2991,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2992,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2993,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:2994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 2
    argNames:
    - L
    - ref
    argTypes:
    - lua_State*
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2959
    functionDepth: 1
    functionLinenumber: 2959
    functionLinenumberEnd: 2995
    functionName: hlua_fcn_new_patref
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - lua_rawseti
    - lua_pushlightuserdata
    - luaL_error
    - malloc
    - lua_newtable
    - hlua_class_function
    - lua_setmetatable
    - lua_rawgeti
    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:2999,1
    - Dst: free
      Src: /src/haproxy/src/hlua_fcn.c:3001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3003
      start: 2997
    functionDepth: 1
    functionLinenumber: 2997
    functionLinenumberEnd: 3003
    functionName: hlua_patref_gc
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - free
    - hlua_checkudata
    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: 3008
      start: 3005
    functionDepth: 0
    functionLinenumber: 3005
    functionLinenumberEnd: 3008
    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:3020,1
    - Dst: luaL_checkstring
      Src: /src/haproxy/src/hlua_fcn.c:3021,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3024,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:3026,1
    - Dst: pat_ref_gen_find_elt
      Src: /src/haproxy/src/hlua_fcn.c:3027,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/hlua_fcn.c:3029,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3031,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:3032,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3037,1
    - Dst: lua_pushboolean
      Src: /src/haproxy/src/hlua_fcn.c:3039,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3040,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3043
      start: 3014
    functionDepth: 1
    functionLinenumber: 3014
    functionLinenumberEnd: 3043
    functionName: hlua_listable_patref_index
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - lua_pushnil
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_find_elt
    - luaL_checkstring
    - pat_ref_gen_find_elt
    - lua_pushboolean
    - pat_ref_may_commit
    - hlua_checkudata
    - lua_pushstring
    linkageType: ''
    returnType: int
    signature: int hlua_listable_patref_index(lua_State *L)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: lua_upvalueindex
      Src: /src/haproxy/src/hlua_fcn.c:3053,1
    - Dst: lua_touserdata
      Src: /src/haproxy/src/hlua_fcn.c:3054,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3056,1
    - Dst: pat_ref_may_commit
      Src: /src/haproxy/src/hlua_fcn.c:3059,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/hlua_fcn.c:3064,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/hlua_fcn.c:3069,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3074,1
    - Dst: lua_pushnil
      Src: /src/haproxy/src/hlua_fcn.c:3075,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/hlua_fcn.c:3079,1
    - Dst: hlua_gethlua
      Src: /src/haproxy/src/hlua_fcn.c:3085,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua_fcn.c:3087,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3088,1
    - Dst: hlua_yieldk
      Src: /src/haproxy/src/hlua_fcn.c:3089,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/hlua_fcn.c:3098,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/hlua_fcn.c:3099,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3103,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3105,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 3
    argNames:
    - L
    - status
    - ctx
    argTypes:
    - lua_State*
    - int
    - lua_KContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3045
    functionDepth: 2
    functionLinenumber: 3045
    functionLinenumberEnd: 3110
    functionName: _hlua_listable_patref_pairs_iterator
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 0
    functionsReached:
    - hlua_gethlua
    - hlua_yieldk
    - lua_pushnil
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - lua_touserdata
    - LIST_DEL_INIT
    - LIST_APPEND
    - lua_upvalueindex
    - pat_ref_may_commit
    - LIST_ISEMPTY
    - LIST_ELEM
    - lua_pushstring
    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:3120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3121
      start: 3118
    functionDepth: 3
    functionLinenumber: 3118
    functionLinenumberEnd: 3121
    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:3132,1
    - Dst: lua_newuserdata
      Src: /src/haproxy/src/hlua_fcn.c:3134,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/hlua_fcn.c:3136,1
    - Dst: lua_pushcclosure
      Src: /src/haproxy/src/hlua_fcn.c:3138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3140
      start: 3127
    functionDepth: 1
    functionLinenumber: 3127
    functionLinenumberEnd: 3140
    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:3144,1
    - Dst: hlua_queue_init
      Src: /src/haproxy/src/hlua_fcn.c:3145,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3147,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3148,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3149,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3150,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3151,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3152,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3153,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3154,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3155,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3156,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3157,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3160,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3161,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3163,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3164,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3165,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3166,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3167,1
    - Dst: lua_rawset
      Src: /src/haproxy/src/hlua_fcn.c:3168,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3169,1
    - Dst: lua_pushvalue
      Src: /src/haproxy/src/hlua_fcn.c:3171,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3172,1
    - Dst: lua_setmetatable
      Src: /src/haproxy/src/hlua_fcn.c:3174,1
    - Dst: lua_setglobal
      Src: /src/haproxy/src/hlua_fcn.c:3175,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3178,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3179,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3180,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3181,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3182,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3183,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3184,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3185,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3188,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3189,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3190,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3191,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3192,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3193,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3196,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3197,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3198,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3201,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3202,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3203,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3204,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3205,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3206,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3209,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3210,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3211,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3212,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3215,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3216,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3217,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3229,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_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3233,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3236,1
    - Dst: hlua_listable_proxies
      Src: /src/haproxy/src/hlua_fcn.c:3237,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3238,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3241,1
    - Dst: hlua_listable_proxies
      Src: /src/haproxy/src/hlua_fcn.c:3242,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3243,1
    - Dst: lua_pushstring
      Src: /src/haproxy/src/hlua_fcn.c:3246,1
    - Dst: hlua_listable_proxies
      Src: /src/haproxy/src/hlua_fcn.c:3247,1
    - Dst: lua_settable
      Src: /src/haproxy/src/hlua_fcn.c:3248,1
    - Dst: lua_newtable
      Src: /src/haproxy/src/hlua_fcn.c:3253,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3254,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3255,1
    - Dst: hlua_class_function
      Src: /src/haproxy/src/hlua_fcn.c:3256,1
    - Dst: hlua_register_metatable
      Src: /src/haproxy/src/hlua_fcn.c:3257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 1
    argNames:
    - L
    argTypes:
    - lua_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3258
      start: 3142
    functionDepth: 2
    functionLinenumber: 3142
    functionLinenumberEnd: 3258
    functionName: hlua_fcn_reg_core_fcn
    functionSourceFile: /src/haproxy/src/hlua_fcn.c
    functionUses: 1
    functionsReached:
    - lua_pushvalue
    - hlua_register_metatable
    - hlua_listable_proxies
    - hlua_concat_init
    - lua_newtable
    - hlua_class_function
    - lua_setglobal
    - lua_setmetatable
    - lua_rawset
    - lua_settable
    - hlua_queue_init
    - lua_pushstring
    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: 141
    EdgeCount: 141
    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:
    - HA_ATOMIC_STORE
    - srv_set_stopping
    - srv_update_check_addr_port
    - free_trash_chunk
    - srv_set_running
    - HA_SPIN_LOCK
    - alloc_trash_chunk
    - strl2uic
    - srv_update_agent_addr_port
    - ha_warning
    - strcmp
    - srv_set_fqdn
    - chunk_appendf
    - strlen
    - srv_adm_set_ready
    - HA_SPIN_UNLOCK
    - strdup
    - LIST_DEL_INIT
    - cebis_item_insert
    - task_schedule
    - tick_add
    - srv_adm_set_maint
    - srv_set_stopped
    - invalid_domainchar
    - ns_to_sec
    - srv_adm_set_drain
    - srv_prepare_for_resolution
    - srv_set_ssl
    - server_recalc_eweight
    - strtol
    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:
    - eb64_lookup
    - chunk_printf
    - srv_state_srv_update
    - eb64_delete
    - eb64_entry
    - free
    - typeof
    - XXH3
    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:
    - fgets
    - strtol
    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:
    - strlen
    - memset
    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:
    - strdup
    - srv_state_parse_line
    - ha_warning
    - strcmp
    - chunk_printf
    - eb64_insert
    - atoi
    - send_log
    - free
    - XXH3
    - calloc
    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:
    - snprintf
    - strlcpy2
    - 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:
    - srv_state_px_update
    - ha_warning
    - eb64_next
    - fclose
    - eb64_delete
    - fgets
    - BUG_ON
    - eb64_first
    - eb64_entry
    - send_log
    - ha_notice
    - srv_state_get_version
    - free
    - srv_state_parse_and_store_line
    - strerror
    - srv_state_get_filepath
    - typeof
    - fopen
    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:
    - obj_type
    - HA_ATOMIC_INC
    - SSL_get_SSL_CTX
    - SSL_get_ex_data
    - __objt_listener
    - ssl_sock_get_ocsp_arg_kt_index
    - SSL_set_tlsext_status_ocsp_resp
    - TRACE_ENTER
    - EXTRA_COUNTERS_GET
    - TRACE_ERROR
    - EVP_PKEY_base_id
    - SSL_CTX_get_ex_data
    - SSL_get_privatekey
    - OPENSSL_malloc
    - memcpy
    - TRACE_LEAVE
    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:295,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:298,1
    - Dst: OCSP_response_status
      Src: /src/haproxy/src/ssl_ocsp.c:302,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:304,1
    - Dst: OCSP_response_get1_basic
      Src: /src/haproxy/src/ssl_ocsp.c:308,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:310,1
    - Dst: OCSP_resp_count
      Src: /src/haproxy/src/ssl_ocsp.c:314,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:316,1
    - Dst: OCSP_resp_get0
      Src: /src/haproxy/src/ssl_ocsp.c:320,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:322,1
    - Dst: OCSP_SINGLERESP_get0_id
      Src: /src/haproxy/src/ssl_ocsp.c:326,1
    - Dst: OCSP_single_get0_status
      Src: /src/haproxy/src/ssl_ocsp.c:328,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:330,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:335,1
    - Dst: OCSP_check_validity
      Src: /src/haproxy/src/ssl_ocsp.c:339,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:341,1
    - Dst: OCSP_id_cmp
      Src: /src/haproxy/src/ssl_ocsp.c:346,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:347,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:356,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:358,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:363,1
    - Dst: memset
      Src: /src/haproxy/src/ssl_ocsp.c:368,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:369,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:370,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:371,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:373,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:374,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:377,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ocsp.c:382,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:383,1
    - Dst: ASN1_TIME_to_tm
      Src: /src/haproxy/src/ssl_ocsp.c:388,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:389,1
    - Dst: my_timegm
      Src: /src/haproxy/src/ssl_ocsp.c:392,1
    - Dst: asn1_generalizedtime_to_epoch
      Src: /src/haproxy/src/ssl_ocsp.c:394,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:396,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:402,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ocsp.c:408,1
    - Dst: OCSP_BASICRESP_free
      Src: /src/haproxy/src/ssl_ocsp.c:411,1
    - Dst: OCSP_RESPONSE_free
      Src: /src/haproxy/src/ssl_ocsp.c:414,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 112
    argCount: 4
    argNames:
    - ocsp_response
    - ocsp
    - cid
    - err
    argTypes:
    - struct buffer*
    - struct certificate_ocsp*
    - OCSP_CERTID*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 417
    functionName: ssl_sock_load_ocsp_response
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - OCSP_single_get0_status
    - OCSP_BASICRESP_free
    - HA_SPIN_LOCK
    - ebmb_lookup
    - my_timegm
    - OCSP_resp_get0
    - asn1_generalizedtime_to_epoch
    - HA_SPIN_UNLOCK
    - OCSP_id_cmp
    - memset
    - OCSP_SINGLERESP_get0_id
    - OCSP_response_status
    - memprintf
    - OCSP_check_validity
    - OCSP_resp_count
    - ERR_clear_error
    - chunk_dup
    - ASN1_TIME_to_tm
    - d2i_OCSP_RESPONSE
    - OCSP_response_get1_basic
    - i2d_OCSP_CERTID
    - OCSP_RESPONSE_free
    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:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ocsp_response
    - err
    argTypes:
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 3
    functionLinenumber: 425
    functionLinenumberEnd: 428
    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:438,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:439,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ocsp.c:440,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_ocsp.c:442,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:444,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:446,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:447,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:449,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ocsp.c:450,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 451
    functionName: ssl_sock_free_ocsp_data
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - eb64_delete
    - ha_free
    - chunk_destroy
    - free
    - ebmb_delete
    - sk_X509_pop_free
    - X509_free
    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:462,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:465,1
    - Dst: ssl_sock_free_ocsp_data
      Src: /src/haproxy/src/ssl_ocsp.c:472,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 475
    functionName: ssl_sock_free_ocsp
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - eb64_delete
    - HA_SPIN_LOCK
    - ssl_sock_free_ocsp_data
    - HA_SPIN_UNLOCK
    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:482,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:485,1
    - Dst: ssl_sock_free_ocsp_data
      Src: /src/haproxy/src/ssl_ocsp.c:492,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 496
    functionName: ssl_sock_free_ocsp_instance
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - eb64_delete
    - HA_SPIN_LOCK
    - ssl_sock_free_ocsp_data
    - HA_SPIN_UNLOCK
    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:509,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ocsp.c:511,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ocsp.c:513,1
    - Dst: i2a_ASN1_STRING
      Src: /src/haproxy/src/ssl_ocsp.c:515,1
    - Dst: wolfSSL_ASN1_STRING_print
      Src: /src/haproxy/src/ssl_ocsp.c:517,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ocsp.c:519,1
    - Dst: i2a_ASN1_STRING
      Src: /src/haproxy/src/ssl_ocsp.c:521,1
    - Dst: wolfSSL_ASN1_STRING_print
      Src: /src/haproxy/src/ssl_ocsp.c:523,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ocsp.c:525,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/haproxy/src/ssl_ocsp.c:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - bp
    - certid
    - indent
    argTypes:
    - BIO*
    - OCSP_CERTID*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 529
    functionName: ocsp_certid_print
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - wolfSSL_ASN1_STRING_print
    - OCSP_id_get0_info
    - i2a_ASN1_STRING
    - BIO_printf
    - i2a_ASN1_INTEGER
    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:634,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:634,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:634,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:635,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:635,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:643,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ocsp_response
    - out
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 646
    functionName: ssl_ocsp_response_print_base64
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - b_orig
    - b_data
    - a2base64
    - chunk_appendf
    - 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:657,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:658,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:660,1
    - Dst: ssl_ocsp_response_print
      Src: /src/haproxy/src/ssl_ocsp.c:664,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ocsp_certid
    - out
    argTypes:
    - unsigned char*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 669
    functionName: ssl_get_ocspresponse_detail
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_ocsp_response_print
    - ebmb_lookup
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:677,1
    - Dst: ssl_ocsp_response_print
      Src: /src/haproxy/src/ssl_ocsp.c:685,1
    - Dst: ssl_ocsp_response_print_base64
      Src: /src/haproxy/src/ssl_ocsp.c:688,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ocsp.c:695,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 703
    functionName: cli_io_handler_show_ocspresponse_detail
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - applet_putchk
    - ssl_ocsp_response_print_base64
    - get_trash_chunk
    - ssl_ocsp_response_print
    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:713,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:719,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ocsp.c:723,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: 725
      start: 705
    functionDepth: 3
    functionLinenumber: 705
    functionLinenumberEnd: 725
    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:734,1
    - Dst: X509_get1_ocsp
      Src: /src/haproxy/src/ssl_ocsp.c:740,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:742,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ocsp.c:746,1
    - Dst: sk_OPENSSL_STRING_value
      Src: /src/haproxy/src/ssl_ocsp.c:746,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:747,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:750,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:751,1
    - Dst: X509_email_free
      Src: /src/haproxy/src/ssl_ocsp.c:758,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 3
    argNames:
    - cert
    - out
    - err
    argTypes:
    - X509*
    - struct buffer*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 760
    functionName: ssl_ocsp_get_uri_from_cert
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - chunk_strcpy
    - b_data
    - X509_email_free
    - X509_get1_ocsp
    - memprintf
    - STACK_OF
    - sk_OPENSSL_STRING_value
    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:776,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:777,1
    - Dst: OCSP_REQUEST_new
      Src: /src/haproxy/src/ssl_ocsp.c:779,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:781,1
    - Dst: OCSP_request_add0_id
      Src: /src/haproxy/src/ssl_ocsp.c:785,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:786,1
    - Dst: i2d_OCSP_REQUEST
      Src: /src/haproxy/src/ssl_ocsp.c:790,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:791,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:792,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:802,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:802,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:803,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ocsp.c:807,1
    - Dst: a2base64
      Src: /src/haproxy/src/ssl_ocsp.c:809,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:809,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:809,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:810,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:810,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:813,1
    - Dst: encode_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:819,1
    - Dst: b_stop
      Src: /src/haproxy/src/ssl_ocsp.c:819,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:819,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:819,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:822,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/ssl_ocsp.c:827,1
    - Dst: OCSP_REQUEST_free
      Src: /src/haproxy/src/ssl_ocsp.c:833,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: 836
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 836
    functionName: ssl_ocsp_create_request_details
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - b_orig
    - OCSP_request_add0_id
    - b_stop
    - get_trash_chunk
    - i2d_OCSP_REQUEST
    - b_data
    - a2base64
    - encode_chunk
    - OCSP_REQUEST_free
    - chunk_cpy
    - chunk_strcat
    - memprintf
    - b_size
    - OCSP_REQUEST_new
    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:973,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - err
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 983
    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:988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 991
    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:1002,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1004,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_ocsp.c:1006,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:1007,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1011,1
    - Dst: task_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:1013,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:1016,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:1020,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1023
    functionName: ssl_destroy_ocsp_update_task
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - httpclient_stop_and_destroy
    - eb64_next
    - eb64_delete
    - eb64_first
    - task_destroy
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - 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:1029,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1036,1
    - Dst: MAX
      Src: /src/haproxy/src/ssl_ocsp.c:1037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1039
    functionName: ssl_ocsp_set_next_update
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - b_data
    - MAX
    - MIN
    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:1057,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_ocsp.c:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1069
    functionName: __ssl_ocsp_update_insert_unlocked
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - eb64_insert
    - ssl_ocsp_set_next_update
    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:1076,1
    - Dst: __ssl_ocsp_update_insert_unlocked
      Src: /src/haproxy/src/ssl_ocsp.c:1077,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1078,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1074
    functionDepth: 3
    functionLinenumber: 1074
    functionLinenumberEnd: 1081
    functionName: ssl_ocsp_update_insert
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 1
    functionsReached:
    - __ssl_ocsp_update_insert_unlocked
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:1098,1
    - Dst: MIN
      Src: /src/haproxy/src/ssl_ocsp.c:1109,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1115,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_ocsp.c:1121,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ocsp
    argTypes:
    - struct certificate_ocsp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1090
    functionDepth: 2
    functionLinenumber: 1090
    functionLinenumberEnd: 1125
    functionName: ssl_ocsp_update_insert_after_error
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - MIN
    - eb64_insert
    - ssl_ocsp_set_next_update
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:1135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1136
    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:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1147
    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:1157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1158
    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:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1169
    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:1185,1
    - Dst: istlen
      Src: /src/haproxy/src/ssl_ocsp.c:1191,1
    - Dst: istptr
      Src: /src/haproxy/src/ssl_ocsp.c:1192,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ocsp.c:1196,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1201,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1203,1
    - Dst: send_log
      Src: /src/haproxy/src/ssl_ocsp.c:1206,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1206,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1207
      start: 1179
    functionDepth: 2
    functionLinenumber: 1179
    functionLinenumberEnd: 1207
    functionName: ssl_ocsp_send_log
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - b_orig
    - istlen
    - get_trash_chunk
    - chunk_printf
    - b_data
    - chunk_appendf
    - istptr
    - send_log
    linkageType: ''
    returnType: void
    signature: void ssl_ocsp_send_log()
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: isttest
      Src: /src/haproxy/src/ssl_ocsp.c:1258,1
    - Dst: isteqi
      Src: /src/haproxy/src/ssl_ocsp.c:1259,1
    - Dst: ist
      Src: /src/haproxy/src/ssl_ocsp.c:1259,1
    - Dst: isteqi
      Src: /src/haproxy/src/ssl_ocsp.c:1260,1
    - Dst: ist
      Src: /src/haproxy/src/ssl_ocsp.c:1260,1
    - Dst: ssl_ocsp_check_response
      Src: /src/haproxy/src/ssl_ocsp.c:1282,1
    - Dst: ssl_sock_update_ocsp_response
      Src: /src/haproxy/src/ssl_ocsp.c:1287,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:1301,1
    - Dst: ssl_ocsp_send_log
      Src: /src/haproxy/src/ssl_ocsp.c:1303,1
    - Dst: ssl_ocsp_update_insert
      Src: /src/haproxy/src/ssl_ocsp.c:1306,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:1308,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1311,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1313,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1320,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1331,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1333,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1335,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1341,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/ssl_ocsp.c:1345,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:1349,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1356,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1358,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1362,1
    - Dst: d2i_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:1369,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/ssl_ocsp.c:1374,1
    - Dst: ssl_ocsp_create_request_details
      Src: /src/haproxy/src/ssl_ocsp.c:1377,1
    - Dst: httpclient_new_from_proxy
      Src: /src/haproxy/src/ssl_ocsp.c:1384,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1385,1
    - Dst: ist2
      Src: /src/haproxy/src/ssl_ocsp.c:1386,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1386,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1386,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/ssl_ocsp.c:1394,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ocsp.c:1395,1
    - Dst: httpclient_req_gen
      Src: /src/haproxy/src/ssl_ocsp.c:1400,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1401,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1402,1
    - Dst: ist2
      Src: /src/haproxy/src/ssl_ocsp.c:1402,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1402,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1402,1
    - Dst: httpclient_start
      Src: /src/haproxy/src/ssl_ocsp.c:1411,1
    - Dst: ssl_ocsp_update_insert_after_error
      Src: /src/haproxy/src/ssl_ocsp.c:1426,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:1428,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:1432,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1434,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1435,1
    - Dst: tick_add
      Src: /src/haproxy/src/ssl_ocsp.c:1436,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1440,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1441,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ocsp.c:1450,1
    - Dst: ssl_ocsp_update_insert_after_error
      Src: /src/haproxy/src/ssl_ocsp.c:1452,1
    - Dst: ssl_ocsp_send_log
      Src: /src/haproxy/src/ssl_ocsp.c:1454,1
    - Dst: httpclient_stop_and_destroy
      Src: /src/haproxy/src/ssl_ocsp.c:1457,1
    - Dst: ssl_sock_free_ocsp_instance
      Src: /src/haproxy/src/ssl_ocsp.c:1459,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1460,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1462,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1469,1
    - Dst: tick_add
      Src: /src/haproxy/src/ssl_ocsp.c:1473,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 181
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1229
    functionDepth: 4
    functionLinenumber: 1229
    functionLinenumberEnd: 1475
    functionName: ssl_ocsp_update_responses
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_ocsp_update_insert_after_error
    - httpclient_req_gen
    - sockaddr_alloc
    - free_trash_chunk
    - eb64_entry
    - httpclient_start
    - HA_SPIN_LOCK
    - ssl_sock_free_ocsp_instance
    - d2i_OCSP_CERTID
    - alloc_trash_chunk
    - ssl_ocsp_send_log
    - httpclient_new_from_proxy
    - b_data
    - ha_free
    - eb64_first
    - ssl_ocsp_check_response
    - ist2
    - HA_SPIN_UNLOCK
    - httpclient_stop_and_destroy
    - ssl_sock_update_ocsp_response
    - ssl_ocsp_create_request_details
    - chunk_cpy
    - isteqi
    - ha_alert
    - ist
    - b_orig
    - tick_add
    - eb64_delete
    - ssl_ocsp_update_insert
    - 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:1490,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1482
    functionDepth: 1
    functionLinenumber: 1482
    functionLinenumberEnd: 1497
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1514,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ocsp.c:1515,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1520,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1521,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:1525,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1528,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1529,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:1534,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1536,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1539,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:1540,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1542,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1543,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/ssl_ocsp.c:1550,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/ssl_ocsp.c:1562,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1566,1
    - Dst: ssl_create_ocsp_update_task
      Src: /src/haproxy/src/ssl_ocsp.c:1569,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/ssl_ocsp.c:1571,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ocsp.c:1573,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ocsp.c:1578,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1578,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1504
    functionDepth: 2
    functionLinenumber: 1504
    functionLinenumberEnd: 1579
    functionName: cli_parse_update_ocsp_response
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - eb64_delete
    - eb64_insert
    - ssl_create_ocsp_update_task
    - ckchs_lookup
    - task_wakeup
    - cli_dynerr
    - free
    - i2d_OCSP_CERTID
    - memprintf
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - ebmb_lookup
    linkageType: ''
    returnType: int
    signature: int cli_parse_update_ocsp_response(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1598,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_ocsp.c:1608,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1610,1
    - Dst: ssl_sock_update_ocsp_response
      Src: /src/haproxy/src/ssl_ocsp.c:1613,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ocsp.c:1615,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1615,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1617,1
    - Dst: cli_msg
      Src: /src/haproxy/src/ssl_ocsp.c:1620,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1622,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1625
      start: 1587
    functionDepth: 4
    functionLinenumber: 1587
    functionLinenumberEnd: 1625
    functionName: cli_parse_set_ocspresponse
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - ssl_sock_update_ocsp_response
    - cli_err
    - cli_dynerr
    - memprintf
    - cli_msg
    - base64dec
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_ocspresponse(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ocsp.c:1634,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:1645,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:1648,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1654,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ocsp.c:1658,1
    - Dst: parse_binary
      Src: /src/haproxy/src/ssl_ocsp.c:1659,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1666,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1667,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:1670,1
    - Dst: i2d_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:1674,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1676,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1680,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1683,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ocsp.c:1684,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1687,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1688,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1691,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1700,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: 1702
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1702
    functionName: cli_parse_show_ocspresponse
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - parse_binary
    - strcmp
    - cli_err
    - ckchs_lookup
    - strlen
    - i2d_OCSP_CERTID
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - ebmb_lookup
    - applet_reserve_svcctx
    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:1712,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1723,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1725,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ocsp.c:1729,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_ocsp.c:1729,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1733,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ocsp.c:1734,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ocsp.c:1744,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1747,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1749,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1751,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1754,1
    - Dst: d2i_OCSP_CERTID
      Src: /src/haproxy/src/ssl_ocsp.c:1759,1
    - Dst: ocsp_certid_print
      Src: /src/haproxy/src/ssl_ocsp.c:1764,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/ssl_ocsp.c:1765,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ocsp.c:1766,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1772,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ocsp.c:1774,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ocsp.c:1775,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1780,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1781,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1782,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ocsp.c:1783,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1787,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ocsp.c:1788,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ocsp.c:1789,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1793,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1796,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1798
    functionName: cli_io_handler_show_ocspresponse
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - OCSP_CERTID_free
    - ebmb_first
    - BIO_new
    - chunk_appendf
    - free_trash_chunk
    - cli_err
    - ocsp_certid_print
    - BIO_read
    - ebmb_next
    - HA_SPIN_LOCK
    - applet_putchk
    - ebmb_entry
    - d2i_OCSP_CERTID
    - HA_SPIN_UNLOCK
    - BIO_free
    - alloc_trash_chunk
    - BIO_s_mem
    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:1805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1800
    functionDepth: 3
    functionLinenumber: 1800
    functionLinenumberEnd: 1806
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ocsp.c:1818,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ocsp.c:1820,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ocsp.c:1824,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1815
    functionDepth: 1
    functionLinenumber: 1815
    functionLinenumberEnd: 1826
    functionName: cli_parse_show_ocsp_updates
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - cli_err
    - applet_reserve_svcctx
    - HA_SPIN_LOCK
    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:1843,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1846,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1849,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1851,1
    - Dst: get_localtime
      Src: /src/haproxy/src/ssl_ocsp.c:1856,1
    - Dst: get_localtime
      Src: /src/haproxy/src/ssl_ocsp.c:1859,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/ssl_ocsp.c:1861,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1861,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1861,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:1861,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1861,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1868,1
    - Dst: get_localtime
      Src: /src/haproxy/src/ssl_ocsp.c:1872,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/ssl_ocsp.c:1873,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ocsp.c:1873,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1873,1
    - Dst: b_size
      Src: /src/haproxy/src/ssl_ocsp.c:1873,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ocsp.c:1873,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1880,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1882,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1885,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1887,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1890,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1892,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1895,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1897,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1901,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1903,1
    - Dst: istptr
      Src: /src/haproxy/src/ssl_ocsp.c:1903,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1905,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1908,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 2
    argNames:
    - ocsp
    - out
    argTypes:
    - struct certificate_ocsp*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1834
    functionDepth: 1
    functionLinenumber: 1834
    functionLinenumberEnd: 1911
    functionName: dump_ocsp_update_info
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - b_orig
    - b_data
    - chunk_appendf
    - istptr
    - b_size
    - get_localtime
    - localdate2str_log
    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:1918,1
    - Dst: eb64_first
      Src: /src/haproxy/src/ssl_ocsp.c:1921,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ocsp.c:1922,1
    - Dst: dump_ocsp_update_info
      Src: /src/haproxy/src/ssl_ocsp.c:1927,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ocsp.c:1931,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/ssl_ocsp.c:1939,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_ocsp.c:1941,1
    - Dst: dump_ocsp_update_info
      Src: /src/haproxy/src/ssl_ocsp.c:1942,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ocsp.c:1945,1
    - Dst: eb64_next
      Src: /src/haproxy/src/ssl_ocsp.c:1950,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1913
    functionDepth: 2
    functionLinenumber: 1913
    functionLinenumberEnd: 1958
    functionName: cli_io_handler_show_ocsp_updates
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - eb64_next
    - chunk_appendf
    - chunk_reset
    - eb64_first
    - eb64_entry
    - applet_putchk
    - dump_ocsp_update_info
    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:1962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1960
    functionDepth: 1
    functionLinenumber: 1960
    functionLinenumberEnd: 1963
    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:1972,1
    - Dst: atoi
      Src: /src/haproxy/src/ssl_ocsp.c:1976,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1978,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:1983,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: 1990
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 1990
    functionName: ssl_parse_global_ocsp_maxdelay
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:1999,1
    - Dst: atoi
      Src: /src/haproxy/src/ssl_ocsp.c:2003,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2005,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2010,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: 2017
      start: 1992
    functionDepth: 1
    functionLinenumber: 1992
    functionLinenumberEnd: 2017
    functionName: ssl_parse_global_ocsp_mindelay
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:2024,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:2028,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:2030,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2033,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: 2038
      start: 2019
    functionDepth: 1
    functionLinenumber: 2019
    functionLinenumberEnd: 2038
    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:2045,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:2049,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ocsp.c:2051,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ocsp.c:2054,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: 2059
      start: 2040
    functionDepth: 1
    functionLinenumber: 2040
    functionLinenumberEnd: 2059
    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:2068,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/ssl_ocsp.c:2071,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/ssl_ocsp.c:2073,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ocsp.c:2077,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ocsp.c:2078,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/ssl_ocsp.c:2082,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ocsp.c:2083,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: 2088
      start: 2061
    functionDepth: 2
    functionLinenumber: 2061
    functionLinenumberEnd: 2088
    functionName: ocsp_update_parse_global_http_proxy
    functionSourceFile: /src/haproxy/src/ssl_ocsp.c
    functionUses: 0
    functionsReached:
    - sockaddr_alloc
    - too_many_args
    - sockaddr_free
    - free
    - ha_alert
    - str2sa_range
    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:2100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 7
    argNames:
    - value
    - buf
    - d
    - cli
    - filename
    - linenum
    - err
    argTypes:
    - void*
    - char*
    - struct ckch_data*
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2090
    functionDepth: 2
    functionLinenumber: 2090
    functionLinenumberEnd: 2104
    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_data *d, 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:2116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2106
    functionDepth: 2
    functionLinenumber: 2106
    functionLinenumberEnd: 2120
    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: 5
    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:107,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/session.c:109,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:112,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/session.c:113,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 3
    argNames:
    - fe
    - li
    - origin
    argTypes:
    - struct proxy*
    - struct listener*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 115
    functionName: session_new
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 3
    functionsReached:
    - TRACE_DEVEL
    - memset
    - pool_free
    - vars_init_head
    - TRACE_STATE
    - TRACE_ENTER
    - pool_alloc
    - LIST_INIT
    - _HA_ATOMIC_INC
    - TRACE_LEAVE
    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:121,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/session.c:123,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/session.c:124,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:128,1
    - Dst: listener_release
      Src: /src/haproxy/src/session.c:129,1
    - Dst: session_store_counters
      Src: /src/haproxy/src/session.c:132,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:133,1
    - Dst: vars_prune_per_sess
      Src: /src/haproxy/src/session.c:134,1
    - Dst: objt_conn
      Src: /src/haproxy/src/session.c:135,1
    - Dst: struct connection*::mux::destroy
      Src: /src/haproxy/src/session.c:137,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/session.c:139,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/session.c:140,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/session.c:141,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:142,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/session.c:144,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/session.c:146,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:147,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:149,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:152,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/session.c:153,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:155,1
    - Dst: conn_release
      Src: /src/haproxy/src/session.c:156,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/session.c:159,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/session.c:160,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:161,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/session.c:162,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/session.c:164,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 117
    functionDepth: 6
    functionLinenumber: 117
    functionLinenumberEnd: 165
    functionName: session_free
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 3
    functionsReached:
    - pool_free
    - struct connection*::mux::destroy
    - HA_SPIN_LOCK
    - TRACE_LEAVE
    - objt_conn
    - list_for_each_entry_safe
    - session_store_counters
    - vars_prune_per_sess
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - listener_release
    - _HA_ATOMIC_DEC
    - sockaddr_free
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_APPEND
    - LIST_ELEM
    - MT_LIST_DELETE
    - TRACE_STATE
    - TRACE_ENTER
    - conn_release
    - LIST_HEAD_INIT
    linkageType: ''
    returnType: void
    signature: void session_free(struct session *sess)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: session_free
      Src: /src/haproxy/src/session.c:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 7
    functionLinenumber: 170
    functionLinenumberEnd: 174
    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:183,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/session.c:187,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/session.c:190,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/session.c:190,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/session.c:192,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/session.c:192,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: update_freq_ctr_period
      Src: /src/haproxy/src/session.c:196,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/session.c:196,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 199
    functionName: session_count_new
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - HA_ATOMIC_INC
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    - proxy_inc_fe_sess_ctr
    linkageType: ''
    returnType: void
    signature: void session_count_new(struct session *sess)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: __objt_listener
      Src: /src/haproxy/src/session.c:212,1
    - Dst: conn_prepare
      Src: /src/haproxy/src/session.c:227,1
    - Dst: conn_ctrl_init
      Src: /src/haproxy/src/session.c:230,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/session.c:242,1
    - Dst: session_new
      Src: /src/haproxy/src/session.c:249,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/session.c:253,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:262,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:263,1
    - Dst: tcp_exec_l4_rules
      Src: /src/haproxy/src/session.c:263,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:266,1
    - Dst: conn_xprt_start
      Src: /src/haproxy/src/session.c:271,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:282,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:285,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:289,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:294,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:299,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/session.c:304,1
    - Dst: getsockopt
      Src: /src/haproxy/src/session.c:311,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:313,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:320,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:324,1
    - Dst: setsockopt
      Src: /src/haproxy/src/session.c:328,1
    - Dst: unlikely
      Src: /src/haproxy/src/session.c:352,1
    - Dst: task_new_here
      Src: /src/haproxy/src/session.c:352,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/session.c:360,1
    - Dst: task_queue
      Src: /src/haproxy/src/session.c:361,1
    - Dst: conn_complete_session
      Src: /src/haproxy/src/session.c:370,1
    - Dst: session_free
      Src: /src/haproxy/src/session.c:387,1
    - Dst: xprt_get
      Src: /src/haproxy/src/session.c:390,1
    - Dst: send
      Src: /src/haproxy/src/session.c:394,1
    - Dst: strlen
      Src: /src/haproxy/src/session.c:394,1
    - Dst: conn_release
      Src: /src/haproxy/src/session.c:399,1
    - Dst: listener_release
      Src: /src/haproxy/src/session.c:400,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 97
    argCount: 1
    argNames:
    - cli_conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 210
    functionDepth: 7
    functionLinenumber: 210
    functionLinenumberEnd: 402
    functionName: session_accept_fd
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - unlikely
    - __objt_listener
    - tcp_exec_l4_rules
    - setsockopt
    - conn_xprt_start
    - conn_complete_session
    - conn_set_owner
    - strlen
    - tick_add_ifset
    - LIST_ISEMPTY
    - send
    - listener_release
    - HA_ATOMIC_OR
    - conn_ctrl_init
    - xprt_add_hs
    - session_free
    - task_new_here
    - getsockopt
    - task_queue
    - xprt_get
    - conn_release
    - session_new
    - conn_prepare
    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:417,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/session.c:418,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/session.c:420,1
    - Dst: real_family
      Src: /src/haproxy/src/session.c:421,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/session.c:422,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/session.c:424,1
    - Dst: get_host_port
      Src: /src/haproxy/src/session.c:424,1
    - Dst: get_localtime
      Src: /src/haproxy/src/session.c:426,1
    - Dst: date2str_log
      Src: /src/haproxy/src/session.c:427,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:431,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - sess
    - out
    argTypes:
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 434
    functionName: session_prepare_log_prefix
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - sess_src
    - addr_to_str
    - chunk_printf
    - chunk_appendf
    - date2str_log
    - real_family
    - get_localtime
    - get_host_port
    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:447,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:451,1
    - Dst: conn_err_code_str
      Src: /src/haproxy/src/session.c:453,1
    - Dst: session_prepare_log_prefix
      Src: /src/haproxy/src/session.c:454,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/session.c:457,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:462,1
    - Dst: ERR_error_string_n
      Src: /src/haproxy/src/session.c:463,1
    - Dst: b_orig
      Src: /src/haproxy/src/session.c:463,1
    - Dst: b_data
      Src: /src/haproxy/src/session.c:463,1
    - Dst: b_room
      Src: /src/haproxy/src/session.c:463,1
    - Dst: strlen
      Src: /src/haproxy/src/session.c:464,1
    - Dst: b_orig
      Src: /src/haproxy/src/session.c:464,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:465,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:472,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/session.c:474,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sess
    - out
    argTypes:
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 445
    functionDepth: 2
    functionLinenumber: 445
    functionLinenumberEnd: 478
    functionName: session_embryonic_build_legacy_err
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - b_orig
    - objt_conn
    - b_data
    - chunk_appendf
    - BUG_ON
    - ERR_error_string_n
    - session_prepare_log_prefix
    - conn_get_ssl_sock_ctx
    - b_room
    - strlen
    - conn_err_code_str
    linkageType: ''
    returnType: void
    signature: void session_embryonic_build_legacy_err(struct session *sess, struct
      buffer *out)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __objt_conn
      Src: /src/haproxy/src/session.c:489,1
    - Dst: sess_log_embryonic
      Src: /src/haproxy/src/session.c:512,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/session.c:516,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/session.c:517,1
    - Dst: conn_free
      Src: /src/haproxy/src/session.c:518,1
    - Dst: task_destroy
      Src: /src/haproxy/src/session.c:521,1
    - Dst: session_free
      Src: /src/haproxy/src/session.c:522,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 22
    argCount: 2
    argNames:
    - sess
    - state
    argTypes:
    - struct session*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 487
    functionDepth: 7
    functionLinenumber: 487
    functionLinenumberEnd: 523
    functionName: session_kill_embryonic
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - __objt_conn
    - sess_log_embryonic
    - conn_full_close
    - conn_stop_tracking
    - task_destroy
    - conn_free
    - session_free
    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:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 529
    functionDepth: 8
    functionLinenumber: 529
    functionLinenumberEnd: 538
    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:550,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:560,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:561,1
    - Dst: tcp_exec_l5_rules
      Src: /src/haproxy/src/session.c:561,1
    - Dst: session_count_new
      Src: /src/haproxy/src/session.c:564,1
    - Dst: conn_install_mux_fe
      Src: /src/haproxy/src/session.c:566,1
    - Dst: task_destroy
      Src: /src/haproxy/src/session.c:571,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/session.c:573,1
    - Dst: session_kill_embryonic
      Src: /src/haproxy/src/session.c:579,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 546
    functionDepth: 8
    functionLinenumber: 546
    functionLinenumberEnd: 581
    functionName: conn_complete_session
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 2
    functionsReached:
    - conn_install_mux_fe
    - session_count_new
    - ns_to_ms
    - task_destroy
    - session_kill_embryonic
    - tcp_exec_l5_rules
    - LIST_ISEMPTY
    - conn_set_owner
    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:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sess
    - inc
    argTypes:
    - struct session*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 593
    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:610,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/session.c:615,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/session.c:616,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/session.c:618,1
    - Dst: objt_server
      Src: /src/haproxy/src/session.c:620,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/session.c:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - sess
    - target
    argTypes:
    - struct session*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 626
    functionName: sess_alloc_sess_conns
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - MT_LIST_APPEND
    - objt_server
    - LIST_APPEND
    - pool_alloc
    - LIST_INIT
    - MT_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:640,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sess
    - target
    argTypes:
    - struct session*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 646
    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:661,1
    - Dst: objt_listener
      Src: /src/haproxy/src/session.c:661,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:672,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/session.c:674,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:677,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:682,1
    - Dst: sess_alloc_sess_conns
      Src: /src/haproxy/src/session.c:684,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/session.c:689,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:697,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 699
    functionName: session_add_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 4
    functionsReached:
    - sess_get_sess_conns
    - BUG_ON
    - LIST_APPEND
    - objt_listener
    - sess_alloc_sess_conns
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    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:713,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/session.c:715,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:717,1
    - Dst: sess_alloc_sess_conns
      Src: /src/haproxy/src/session.c:719,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/session.c:724,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 731
    functionName: session_reinsert_idle_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 3
    functionsReached:
    - sess_get_sess_conns
    - BUG_ON
    - LIST_APPEND
    - sess_alloc_sess_conns
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:744,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:747,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:754,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/session.c:758,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/session.c:766,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 742
    functionDepth: 1
    functionLinenumber: 742
    functionLinenumberEnd: 770
    functionName: session_check_idle_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    - objt_server
    - BUG_ON
    - session_unown_conn
    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:782,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:784,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/session.c:789,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/session.c:792,1
    - Dst: objt_server
      Src: /src/haproxy/src/session.c:798,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/session.c:800,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:809,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - sess
    - target
    - hash
    argTypes:
    - struct session*
    - void*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 811
    functionName: session_get_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_DEC
    - list_for_each_entry
    - sess_get_sess_conns
    - objt_server
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - struct connection*::mux::avail_streams
    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:820,1
    - Dst: objt_listener
      Src: /src/haproxy/src/session.c:820,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/session.c:822,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/session.c:831,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:836,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:839,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:840,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:841,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/session.c:842,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/session.c:843,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:844,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/session.c:848,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 816
    functionDepth: 1
    functionLinenumber: 816
    functionLinenumberEnd: 849
    functionName: session_unown_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 2
    functionsReached:
    - MT_LIST_DELETE
    - LIST_DELETE
    - pool_free
    - sess_get_sess_conns
    - BUG_ON
    - LIST_DEL_INIT
    - objt_listener
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - LIST_INLIST
    - LIST_ISEMPTY
    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:867,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:871,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:874,1
    - Dst: sess_get_sess_conns
      Src: /src/haproxy/src/session.c:876,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/session.c:877,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/session.c:878,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/session.c:880,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/session.c:881,1
    - Dst: pool_free
      Src: /src/haproxy/src/session.c:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - sess
    - conn
    argTypes:
    - struct session*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 886
    functionName: session_detach_idle_conn
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 3
    functionsReached:
    - MT_LIST_DELETE
    - LIST_INLIST
    - LIST_DELETE
    - pool_free
    - sess_get_sess_conns
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_ISEMPTY
    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:900,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/session.c:907,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/session.c:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sess_conns
    argTypes:
    - struct sess_priv_conns*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 914
    functionName: sess_conns_cleanup_all_idle
    functionSourceFile: /src/haproxy/src/session.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - LIST_DEL_INIT
    - 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:45,1
    - Dst: quic_transport_params_encode
      Src: /src/haproxy/src/quic_ssl.c:46,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:48,1
    - Dst: SSL_set_quic_transport_params
      Src: /src/haproxy/src/quic_ssl.c:52,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:53,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:59,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: 61
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 61
    functionName: qc_ssl_set_quic_transport_params
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_quic_transport_params
    - quic_transport_params_encode
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_LEAVE
    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:84,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_ssl.c:93,1
    - Dst: realloc
      Src: /src/haproxy/src/quic_ssl.c:104,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_ssl.c:109,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:111,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_ssl.c:134,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_ssl.c:147,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:149,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_ssl.c:156,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:161,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: 163
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 163
    functionName: qc_ssl_crypto_data_cpy
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - TRACE_ENTER
    - LIST_APPEND
    - TRACE_ERROR
    - pool_alloc
    - realloc
    - qc_frm_alloc
    - memcpy
    - TRACE_LEAVE
    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: 27
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:171,1
    - Dst: ssl_to_qel_addr
      Src: /src/haproxy/src/quic_ssl.c:172,1
    - Dst: ssl_to_quic_pktns
      Src: /src/haproxy/src/quic_ssl.c:173,1
    - Dst: SSL_get_current_cipher
      Src: /src/haproxy/src/quic_ssl.c:175,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:180,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:181,1
    - Dst: qc_enc_level_alloc
      Src: /src/haproxy/src/quic_ssl.c:183,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:184,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:191,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:196,1
    - Dst: tls_aead
      Src: /src/haproxy/src/quic_ssl.c:204,1
    - Dst: tls_md
      Src: /src/haproxy/src/quic_ssl.c:205,1
    - Dst: tls_hp
      Src: /src/haproxy/src/quic_ssl.c:206,1
    - Dst: quic_tls_secrets_keys_alloc
      Src: /src/haproxy/src/quic_ssl.c:210,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:211,1
    - Dst: quic_tls_derive_keys
      Src: /src/haproxy/src/quic_ssl.c:215,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:218,1
    - Dst: quic_tls_rx_ctx_init
      Src: /src/haproxy/src/quic_ssl.c:222,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:223,1
    - Dst: quic_tls_dec_hp_ctx_init
      Src: /src/haproxy/src/quic_ssl.c:227,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:228,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:236,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:242,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:245,1
    - Dst: quic_accept_push_qc
      Src: /src/haproxy/src/quic_ssl.c:246,1
    - Dst: tls_aead
      Src: /src/haproxy/src/quic_ssl.c:256,1
    - Dst: tls_md
      Src: /src/haproxy/src/quic_ssl.c:257,1
    - Dst: tls_hp
      Src: /src/haproxy/src/quic_ssl.c:258,1
    - Dst: quic_tls_secrets_keys_alloc
      Src: /src/haproxy/src/quic_ssl.c:262,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:263,1
    - Dst: quic_tls_derive_keys
      Src: /src/haproxy/src/quic_ssl.c:267,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:270,1
    - Dst: quic_tls_tx_ctx_init
      Src: /src/haproxy/src/quic_ssl.c:274,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:275,1
    - Dst: quic_tls_enc_hp_ctx_init
      Src: /src/haproxy/src/quic_ssl.c:279,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:280,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:285,1
    - Dst: qc_ssl_set_quic_transport_params
      Src: /src/haproxy/src/quic_ssl.c:286,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:296,1
    - Dst: SSL_get_peer_quic_transport_params
      Src: /src/haproxy/src/quic_ssl.c:300,1
    - Dst: quic_transport_params_store
      Src: /src/haproxy/src/quic_ssl.c:301,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:302,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_ssl.c:311,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:312,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_ssl.c:316,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_ssl.c:321,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:322,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_ssl.c:326,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_ssl.c:341,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_ssl.c:342,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_ssl.c:343,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_ssl.c:344,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:347,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 136
    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: 349
      start: 166
    functionDepth: 5
    functionLinenumber: 166
    functionLinenumberEnd: 349
    functionName: ha_quic_set_encryption_secrets
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_tls_enc_hp_ctx_init
    - tls_aead
    - pool_alloc
    - SSL_get_current_cipher
    - TRACE_LEAVE
    - quic_tls_derive_keys
    - ssl_to_qel_addr
    - quic_tls_secrets_keys_alloc
    - ssl_to_quic_pktns
    - tls_md
    - quic_set_tls_alert
    - quic_tls_rx_ctx_init
    - quic_accept_push_qc
    - BUG_ON
    - tls_hp
    - qc_ssl_set_quic_transport_params
    - TRACE_PROTO
    - quic_transport_params_store
    - quic_tls_tx_ctx_init
    - qc_release_pktns_frms
    - SSL_get_peer_quic_transport_params
    - SSL_get_ex_data
    - qc_is_back
    - quic_tls_dec_hp_ctx_init
    - TRACE_ENTER
    - TRACE_ERROR
    - qc_enc_level_alloc
    - memcpy
    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:359,1
    - Dst: ssl_to_qel_addr
      Src: /src/haproxy/src/quic_ssl.c:360,1
    - Dst: ssl_to_quic_pktns
      Src: /src/haproxy/src/quic_ssl.c:361,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:363,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:365,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:368,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:373,1
    - Dst: qc_enc_level_alloc
      Src: /src/haproxy/src/quic_ssl.c:377,1
    - Dst: qc_ssl_crypto_data_cpy
      Src: /src/haproxy/src/quic_ssl.c:380,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:381,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:385,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:390,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: 392
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 392
    functionName: ha_quic_add_handshake_data
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - ssl_to_qel_addr
    - SSL_get_ex_data
    - ssl_to_quic_pktns
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_PROTO
    - qc_enc_level_alloc
    - qc_ssl_crypto_data_cpy
    - TRACE_LEAVE
    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:409,1
    - Dst: ssl_prot_level_to_enc_level
      Src: /src/haproxy/src/quic_ssl.c:410,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:412,1
    - Dst: ha_quic_add_handshake_data
      Src: /src/haproxy/src/quic_ssl.c:414,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:418,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:422,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:426,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: 428
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 428
    functionName: ha_quic_ossl_crypto_send
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - ha_quic_add_handshake_data
    - TRACE_DEVEL
    - SSL_get_ex_data
    - TRACE_ENTER
    - ssl_prot_level_to_enc_level
    - TRACE_LEAVE
    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:440,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:446,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_ssl.c:448,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:454,1
    - Dst: ncbmb_data
      Src: /src/haproxy/src/quic_ssl.c:457,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:465,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:465,1
    - Dst: ncbmb_head
      Src: /src/haproxy/src/quic_ssl.c:467,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:469,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:479,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: 481
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 481
    functionName: ha_quic_ossl_crypto_recv_rcd
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - ncbmb_is_null
    - list_for_each_entry
    - SSL_get_ex_data
    - ncbmb_head
    - BUG_ON
    - TRACE_ENTER
    - ncbmb_data
    - TRACE_LEAVE
    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:492,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:495,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_ssl.c:497,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:506,1
    - Dst: ncbmb_data
      Src: /src/haproxy/src/quic_ssl.c:509,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/quic_ssl.c:514,1
    - Dst: ncbmb_is_empty
      Src: /src/haproxy/src/quic_ssl.c:516,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:517,1
    - Dst: quic_free_ncbuf
      Src: /src/haproxy/src/quic_ssl.c:518,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:529,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:532,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 3
    argNames:
    - ssl
    - bytes_read
    - arg
    argTypes:
    - SSL*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 534
    functionName: ha_quic_ossl_crypto_release_rcd
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - ncbmb_is_null
    - list_for_each_entry
    - ncbmb_advance
    - SSL_get_ex_data
    - TRACE_ENTER
    - ncbmb_data
    - quic_free_ncbuf
    - ncbmb_is_empty
    - TRACE_LEAVE
    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:546,1
    - Dst: ssl_prot_level_to_enc_level
      Src: /src/haproxy/src/quic_ssl.c:547,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:549,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:551,1
    - Dst: ha_quic_set_encryption_secrets
      Src: /src/haproxy/src/quic_ssl.c:555,1
    - Dst: ha_quic_set_encryption_secrets
      Src: /src/haproxy/src/quic_ssl.c:560,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:568,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:571,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: 573
      start: 541
    functionDepth: 6
    functionLinenumber: 541
    functionLinenumberEnd: 573
    functionName: ha_quic_ossl_yield_secret
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - SSL_get_ex_data
    - ha_quic_set_encryption_secrets
    - BUG_ON
    - TRACE_ENTER
    - ssl_prot_level_to_enc_level
    - TRACE_LEAVE
    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:583,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:585,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:588,1
    - Dst: quic_transport_params_store
      Src: /src/haproxy/src/quic_ssl.c:592,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:592,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:598,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - ssl
    - params
    - params_len
    - arg
    argTypes:
    - SSL*
    - unsigned char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 579
    functionDepth: 5
    functionLinenumber: 579
    functionLinenumberEnd: 603
    functionName: ha_quic_ossl_got_transport_params
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - SSL_get_ex_data
    - qc_is_back
    - TRACE_ENTER
    - quic_transport_params_store
    - TRACE_PROTO
    - TRACE_LEAVE
    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: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:612,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:614,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:616,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_ssl.c:617,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ssl
    - alert_code
    - arg
    argTypes:
    - SSL*
    - unsigned char
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 622
    functionName: ha_quic_ossl_alert
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - TRACE_ENTER
    - TRACE_PROTO
    - quic_set_tls_alert
    - TRACE_LEAVE
    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:661,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: 663
      start: 657
    functionDepth: 6
    functionLinenumber: 657
    functionLinenumberEnd: 663
    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:670,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: 672
      start: 665
    functionDepth: 6
    functionLinenumber: 665
    functionLinenumberEnd: 672
    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:677,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:679,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 683
    functionName: ha_quic_flush_flight
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - TRACE_LEAVE
    - TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int ha_quic_flush_flight(SSL *ssl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/quic_ssl.c:687,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:689,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:691,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_ssl.c:693,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ssl
    - level
    - alert
    argTypes:
    - SSL*
    - enum ssl_encryption_level_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 696
    functionName: ha_quic_send_alert
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - TRACE_ENTER
    - TRACE_PROTO
    - quic_set_tls_alert
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int ha_quic_send_alert(SSL *ssl, enum ssl_encryption_level_t level,
      uint8_t alert)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/quic_ssl.c:734,1
    - Dst: TLS_server_method
      Src: /src/haproxy/src/quic_ssl.c:734,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/quic_ssl.c:738,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/quic_ssl.c:739,1
    - Dst: SSL_CTX_set_mode
      Src: /src/haproxy/src/quic_ssl.c:740,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/quic_ssl.c:741,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/haproxy/src/quic_ssl.c:742,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/haproxy/src/quic_ssl.c:743,1
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_ssl.c:744,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/quic_ssl.c:747,1
    - Dst: SSL_CTX_set1_groups_list
      Src: /src/haproxy/src/quic_ssl.c:754,1
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_ssl.c:755,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/quic_ssl.c:758,1
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_ssl.c:766,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/quic_ssl.c:767,1
    - Dst: SSL_CTX_set_early_data_enabled
      Src: /src/haproxy/src/quic_ssl.c:769,1
    - Dst: SSL_CTX_set_options
      Src: /src/haproxy/src/quic_ssl.c:771,1
    - Dst: SSL_CTX_set_max_early_data
      Src: /src/haproxy/src/quic_ssl.c:772,1
    - Dst: SSL_CTX_set_select_certificate_cb
      Src: /src/haproxy/src/quic_ssl.c:778,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/quic_ssl.c:779,1
    - Dst: SSL_CTX_set_client_hello_cb
      Src: /src/haproxy/src/quic_ssl.c:781,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/quic_ssl.c:782,1
    - Dst: SSL_CTX_set_tlsext_servername_callback
      Src: /src/haproxy/src/quic_ssl.c:784,1
    - Dst: SSL_CTX_set_tlsext_servername_arg
      Src: /src/haproxy/src/quic_ssl.c:786,1
    - Dst: quic_tls_compat_init
      Src: /src/haproxy/src/quic_ssl.c:789,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 794
    functionName: ssl_quic_initial_ctx
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 2
    functionsReached:
    - TLS_server_method
    - SSL_CTX_set_tlsext_servername_arg
    - ha_warning
    - SSL_CTX_set1_groups_list
    - SSL_CTX_set_early_data_enabled
    - SSL_CTX_set_options
    - SSL_CTX_set_client_hello_cb
    - SSL_CTX_set_mode
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_ciphersuites
    - SSL_CTX_set_select_certificate_cb
    - SSL_CTX_set_tlsext_servername_callback
    - SSL_CTX_set_security_level
    - quic_tls_compat_init
    - SSL_CTX_set_max_early_data
    - SSL_CTX_new
    - SSL_CTX_set_min_proto_version
    - proxy_type_str
    linkageType: ''
    returnType: int
    signature: int ssl_quic_initial_ctx(struct bind_conf *bind_conf)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/quic_ssl.c:803,1
    - Dst: TLS_client_method
      Src: /src/haproxy/src/quic_ssl.c:803,1
    - Dst: SSL_CTX_set_min_proto_version
      Src: /src/haproxy/src/quic_ssl.c:807,1
    - Dst: SSL_CTX_set_max_proto_version
      Src: /src/haproxy/src/quic_ssl.c:808,1
    - Dst: SSL_CTX_set_ciphersuites
      Src: /src/haproxy/src/quic_ssl.c:809,1
    - Dst: SSL_CTX_set1_groups_list
      Src: /src/haproxy/src/quic_ssl.c:812,1
    - Dst: quic_tls_compat_init
      Src: /src/haproxy/src/quic_ssl.c:816,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/quic_ssl.c:823,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 826
    functionName: ssl_quic_srv_new_ssl_ctx
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 1
    functionsReached:
    - SSL_CTX_set1_groups_list
    - TLS_client_method
    - SSL_CTX_free
    - quic_tls_compat_init
    - SSL_CTX_set_max_proto_version
    - SSL_CTX_set_ciphersuites
    - SSL_CTX_new
    - SSL_CTX_set_min_proto_version
    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:834,1
    - Dst: ERR_peek_error_func
      Src: /src/haproxy/src/quic_ssl.c:839,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/quic_ssl.c:840,1
    - Dst: fprintf
      Src: /src/haproxy/src/quic_ssl.c:844,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/quic_ssl.c:845,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 848
    functionName: qc_ssl_dump_errors
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - unlikely
    - ERR_peek_error_func
    - fprintf
    - ERR_reason_error_string
    - ERR_get_error
    linkageType: ''
    returnType: forceinline
    signature: forceinline qc_ssl_dump_errors(struct connection *conn)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:860,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:866,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_ssl.c:867,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_ssl.c:868,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_ssl.c:872,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_ssl.c:874,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_ssl.c:875,1
    - Dst: SSL_do_handshake
      Src: /src/haproxy/src/quic_ssl.c:880,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:881,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:884,1
    - Dst: qc_conn_finalize
      Src: /src/haproxy/src/quic_ssl.c:892,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:893,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/quic_ssl.c:898,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:900,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:905,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_ssl.c:906,1
    - Dst: qc_ssl_dump_errors
      Src: /src/haproxy/src/quic_ssl.c:907,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/quic_ssl.c:908,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:919,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_ssl.c:920,1
    - Dst: SSL_in_early_data
      Src: /src/haproxy/src/quic_ssl.c:939,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:940,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:947,1
    - Dst: ssl_sock_update_counters
      Src: /src/haproxy/src/quic_ssl.c:948,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:948,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:958,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:961,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:966,1
    - Dst: ssl_sock_update_counters
      Src: /src/haproxy/src/quic_ssl.c:967,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:967,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:973,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:975,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_ssl.c:976,1
    - Dst: ssl_sock_get_alpn
      Src: /src/haproxy/src/quic_ssl.c:985,1
    - Dst: quic_set_app_ops
      Src: /src/haproxy/src/quic_ssl.c:986,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:987,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/quic_ssl.c:988,1
    - Dst: conn_create_mux
      Src: /src/haproxy/src/quic_ssl.c:992,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:993,1
    - Dst: struct ssl_sock_ctx*::conn::mux::wake
      Src: /src/haproxy/src/quic_ssl.c:998,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:1002,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:1006,1
    - Dst: quic_accept_push_qc
      Src: /src/haproxy/src/quic_ssl.c:1013,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_ssl.c:1020,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:1023,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_ssl.c:1024,1
    - Dst: quic_tls_key_update
      Src: /src/haproxy/src/quic_ssl.c:1031,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1032,1
    - Dst: SSL_process_quic_post_handshake
      Src: /src/haproxy/src/quic_ssl.c:1038,1
    - Dst: SSL_get_error
      Src: /src/haproxy/src/quic_ssl.c:1040,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_ssl.c:1042,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1047,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_ssl.c:1052,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1059,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1062,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 134
    argCount: 2
    argNames:
    - qc
    - ctx
    argTypes:
    - struct quic_conn*
    - struct ssl_sock_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 854
    functionDepth: 2
    functionLinenumber: 854
    functionLinenumberEnd: 1064
    functionName: qc_ssl_do_hanshake
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - SSL_get_error
    - EXTRA_COUNTERS_GET
    - TRACE_LEAVE
    - qc_ssl_dump_errors
    - ssl_sock_update_counters
    - conn_create_mux
    - quic_set_app_ops
    - quic_set_tls_alert
    - ssl_sock_get_alpn
    - qc_conn_finalize
    - quic_accept_push_qc
    - tasklet_wakeup
    - __objt_server
    - BUG_ON
    - TRACE_PROTO
    - SSL_process_quic_post_handshake
    - ERR_clear_error
    - SSL_in_early_data
    - qc_is_back
    - TRACE_STATE
    - SSL_do_handshake
    - TRACE_ENTER
    - TRACE_ERROR
    - struct ssl_sock_ctx*::conn::mux::wake
    - quic_tls_key_update
    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:1085,1
    - Dst: SSL_provide_quic_data
      Src: /src/haproxy/src/quic_ssl.c:1087,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1088,1
    - Dst: qc_ssl_do_hanshake
      Src: /src/haproxy/src/quic_ssl.c:1093,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:1102,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/quic_ssl.c:1104,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_ssl.c:1105,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/quic_ssl.c:1107,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1111,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: 1113
      start: 1072
    functionDepth: 3
    functionLinenumber: 1072
    functionLinenumberEnd: 1113
    functionName: qc_ssl_provide_quic_data
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - ncbmb_is_null
    - ncbmb_advance
    - BUG_ON
    - TRACE_ENTER
    - TRACE_ERROR
    - SSL_provide_quic_data
    - qc_ssl_do_hanshake
    - TRACE_LEAVE
    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:1125,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_ssl.c:1126,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:1133,1
    - Dst: ncbmb_data
      Src: /src/haproxy/src/quic_ssl.c:1137,1
    - Dst: ncbmb_head
      Src: /src/haproxy/src/quic_ssl.c:1138,1
    - Dst: qc_ssl_provide_quic_data
      Src: /src/haproxy/src/quic_ssl.c:1140,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1145,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_ssl.c:1149,1
    - Dst: ncbmb_is_empty
      Src: /src/haproxy/src/quic_ssl.c:1149,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1150,1
    - Dst: quic_free_ncbuf
      Src: /src/haproxy/src/quic_ssl.c:1151,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1157,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: 1159
      start: 1118
    functionDepth: 4
    functionLinenumber: 1118
    functionLinenumberEnd: 1159
    functionName: qc_ssl_provide_all_quic_data
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - ncbmb_is_null
    - list_for_each_entry
    - ncbmb_head
    - TRACE_ENTER
    - ncbmb_data
    - TRACE_LEAVE
    - quic_free_ncbuf
    - ncbmb_is_empty
    - 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:1166,1
    - Dst: SSL_set_quic_method
      Src: /src/haproxy/src/quic_ssl.c:1168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1170
    functionName: quic_ssl_set_tls_cbs
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_quic_tls_cbs
    - SSL_set_quic_method
    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:1185,1
    - Dst: SSL_new
      Src: /src/haproxy/src/quic_ssl.c:1189,1
    - Dst: pool_gc
      Src: /src/haproxy/src/quic_ssl.c:1194,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/quic_ssl.c:1198,1
    - Dst: quic_ssl_set_tls_cbs
      Src: /src/haproxy/src/quic_ssl.c:1199,1
    - Dst: SSL_free
      Src: /src/haproxy/src/quic_ssl.c:1200,1
    - Dst: pool_gc
      Src: /src/haproxy/src/quic_ssl.c:1205,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1211,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1214,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 5
    argNames:
    - qc
    - ssl_ctx
    - ssl
    - conn
    - server
    argTypes:
    - struct quic_conn*
    - SSL_CTX*
    - SSL**
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1216
    functionName: qc_ssl_sess_init
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - SSL_set_ex_data
    - TRACE_DEVEL
    - SSL_new
    - quic_ssl_set_tls_cbs
    - TRACE_ENTER
    - SSL_free
    - pool_gc
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: "int qc_ssl_sess_init(struct quic_conn *qc, SSL_CTX *ssl_ctx, SSL **ssl,\n
      \                           struct connection *conn, int server)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_transport_params_init
      Src: /src/haproxy/src/quic_ssl.c:1231,1
    - Dst: quic_transport_params_encode
      Src: /src/haproxy/src/quic_ssl.c:1234,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1236,1
    - Dst: SSL_set_quic_early_data_context
      Src: /src/haproxy/src/quic_ssl.c:1241,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1242,1
    - Dst: SSL_set_early_data_enabled
      Src: /src/haproxy/src/quic_ssl.c:1246,1
    - Dst: SSL_set_quic_early_data_enabled
      Src: /src/haproxy/src/quic_ssl.c:1248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - qc
    - ssl
    argTypes:
    - struct quic_conn*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1223
    functionDepth: 4
    functionLinenumber: 1223
    functionLinenumberEnd: 1252
    functionName: qc_set_quic_early_data_enabled
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - quic_transport_params_encode
    - SSL_set_quic_early_data_enabled
    - TRACE_ERROR
    - quic_transport_params_init
    - SSL_set_early_data_enabled
    - SSL_set_quic_early_data_context
    linkageType: ''
    returnType: int
    signature: int qc_set_quic_early_data_enabled(struct quic_conn *qc, SSL *ssl)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_ssl.c:1266,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_ssl.c:1268,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_ssl.c:1270,1
    - Dst: memset
      Src: /src/haproxy/src/quic_ssl.c:1278,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_ssl.c:1286,1
    - Dst: qc_ssl_sess_init
      Src: /src/haproxy/src/quic_ssl.c:1289,1
    - Dst: qc_set_quic_early_data_enabled
      Src: /src/haproxy/src/quic_ssl.c:1293,1
    - Dst: SSL_set_accept_state
      Src: /src/haproxy/src/quic_ssl.c:1297,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_ssl.c:1300,1
    - Dst: qc_ssl_sess_init
      Src: /src/haproxy/src/quic_ssl.c:1302,1
    - Dst: qc_ssl_set_quic_transport_params
      Src: /src/haproxy/src/quic_ssl.c:1305,1
    - Dst: ssl_sock_srv_try_reuse_sess
      Src: /src/haproxy/src/quic_ssl.c:1308,1
    - Dst: SSL_set_connect_state
      Src: /src/haproxy/src/quic_ssl.c:1309,1
    - Dst: xprt_get
      Src: /src/haproxy/src/quic_ssl.c:1312,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_ssl.c:1318,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_ssl.c:1322,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_ssl.c:1326,1
    - Dst: qc_free_ssl_sock_ctx
      Src: /src/haproxy/src/quic_ssl.c:1327,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 2
    argNames:
    - qc
    - conn
    argTypes:
    - struct quic_conn*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1329
      start: 1261
    functionDepth: 5
    functionLinenumber: 1261
    functionLinenumberEnd: 1329
    functionName: qc_alloc_ssl_sock_ctx
    functionSourceFile: /src/haproxy/src/quic_ssl.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - memset
    - SSL_set_accept_state
    - __objt_server
    - SSL_set_connect_state
    - qc_is_back
    - TRACE_ENTER
    - ssl_sock_srv_try_reuse_sess
    - TRACE_ERROR
    - pool_alloc
    - qc_ssl_sess_init
    - qc_set_quic_early_data_enabled
    - qc_ssl_set_quic_transport_params
    - xprt_get
    - _HA_ATOMIC_INC
    - qc_free_ssl_sock_ctx
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qc_alloc_ssl_sock_ctx(struct quic_conn *qc, struct connection *conn)
  - 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
    - LIST_APPEND
    - LIST_INIT
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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_INIT
    - LIST_DELETE
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:
    - list_for_each_entry
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:
    - list_for_each_entry
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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
    - _HA_ATOMIC_LOAD
    - _sock_supports_reuseport
    - _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:
    - struct protocol*::fam::bind
    - ha_warning
    - list_for_each_entry
    - ha_free
    - BUG_ON
    - HA_SPIN_LOCK
    - protocol_may_bind_quic
    - ha_alert
    - proxy_type_str
    - struct protocol*::listen
    - HA_SPIN_UNLOCK
    - 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:
    - list_for_each_entry
    - unbind_listener
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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_LOCK
    - HA_SPIN_UNLOCK
    - stop_listener
    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:
    - list_for_each_entry
    - suspend_listener
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:
    - list_for_each_entry
    - resume_listener
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: int
    signature: int protocol_resume_all(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/protocol.c:300,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:301,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/protocol.c:302,1
    - Dst: enable_listener
      Src: /src/haproxy/src/protocol.c:303,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/protocol.c:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 295
    functionDepth: 3
    functionLinenumber: 295
    functionLinenumberEnd: 307
    functionName: protocol_enable_all
    functionSourceFile: /src/haproxy/src/protocol.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - enable_listener
    linkageType: ''
    returnType: int
    signature: int protocol_enable_all(void)
  - 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: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    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: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    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: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    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:206,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: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    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:216,1
    - Dst: parse_binary
      Src: /src/haproxy/src/pattern.c:219,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: 220
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 220
    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: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    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:260,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:261,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/pattern.c:272,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:272,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/pattern.c:282,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/pattern.c:291,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/pattern.c:294,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:294,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:305,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: 307
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 307
    functionName: pat_parse_int
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - strlen
    - strl2llrc
    - memprintf
    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:341,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:342,1
    - Dst: strl2llrc_dotted
      Src: /src/haproxy/src/pattern.c:353,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:353,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:354,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:363,1
    - Dst: strl2llrc_dotted
      Src: /src/haproxy/src/pattern.c:364,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:365,1
    - Dst: strl2llrc_dotted
      Src: /src/haproxy/src/pattern.c:374,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:375,1
    - Dst: strl2llrc_dotted
      Src: /src/haproxy/src/pattern.c:378,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:378,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:379,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:383,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: 389
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 389
    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:398,1
    - Dst: str62net
      Src: /src/haproxy/src/pattern.c:403,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:408,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: 411
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 411
    functionName: pat_parse_ip
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - str62net
    - memprintf
    - str2net
    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: 437
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 437
    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:452,1
    - Dst: smp_dup
      Src: /src/haproxy/src/pattern.c:461,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 465
    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:479,1
    - Dst: pat_match_ensure_str
      Src: /src/haproxy/src/pattern.c:480,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/pattern.c:483,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/pattern.c:486,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/pattern.c:488,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:503,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:506,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:506,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:515,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:525,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:526,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:533,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: 536
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 536
    functionName: pat_match_str
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - eb_is_empty
    - list_for_each_entry
    - strncasecmp
    - strncmp
    - pat_match_ensure_str
    - ebmb_next_dup
    - lru64_commit
    - ebmb_entry
    - ebst_lookup
    - XXH3
    - LIST_ISEMPTY
    - lru64_get
    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:546,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:549,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:549,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:557,1
    - Dst: memcmp
      Src: /src/haproxy/src/pattern.c:566,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:573,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: 576
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 576
    functionName: pat_match_bin
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - memcmp
    - lru64_commit
    - XXH3
    - LIST_ISEMPTY
    - lru64_get
    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:588,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/pattern.c:594,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: 603
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 603
    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:615,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:618,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:618,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:626,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/pattern.c:632,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:639,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: 642
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 642
    functionName: pat_match_reg
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - regex_exec2
    - lru64_commit
    - XXH3
    - LIST_ISEMPTY
    - lru64_get
    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:656,1
    - Dst: pat_match_ensure_str
      Src: /src/haproxy/src/pattern.c:657,1
    - Dst: ebmb_lookup_longest
      Src: /src/haproxy/src/pattern.c:660,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/pattern.c:664,1
    - Dst: ebmb_lookup_shorter
      Src: /src/haproxy/src/pattern.c:666,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pattern.c:681,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:684,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:684,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:692,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:702,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:703,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:711,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: 714
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 714
    functionName: pat_match_beg
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - eb_is_empty
    - list_for_each_entry
    - strncasecmp
    - strncmp
    - pat_match_ensure_str
    - ebmb_lookup_longest
    - ebmb_lookup_shorter
    - lru64_commit
    - ebmb_entry
    - XXH3
    - LIST_ISEMPTY
    - lru64_get
    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:725,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:728,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:728,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:736,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:746,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:747,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:755,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: 758
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 758
    functionName: pat_match_end
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strncasecmp
    - strncmp
    - lru64_commit
    - XXH3
    - LIST_ISEMPTY
    - lru64_get
    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:773,1
    - Dst: lru64_get
      Src: /src/haproxy/src/pattern.c:776,1
    - Dst: XXH3
      Src: /src/haproxy/src/pattern.c:776,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:784,1
    - Dst: tolower
      Src: /src/haproxy/src/pattern.c:797,1
    - Dst: tolower
      Src: /src/haproxy/src/pattern.c:797,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:799,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:808,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/pattern.c:817,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: 820
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 820
    functionName: pat_match_sub
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - tolower
    - list_for_each_entry
    - strncasecmp
    - strncmp
    - lru64_commit
    - XXH3
    - LIST_ISEMPTY
    - lru64_get
    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:838,1
    - Dst: is_delimiter
      Src: /src/haproxy/src/pattern.c:843,1
    - Dst: is_delimiter
      Src: /src/haproxy/src/pattern.c:853,1
    - Dst: tolower
      Src: /src/haproxy/src/pattern.c:862,1
    - Dst: tolower
      Src: /src/haproxy/src/pattern.c:862,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/pattern.c:863,1
    - Dst: is_delimiter
      Src: /src/haproxy/src/pattern.c:864,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:868,1
    - Dst: is_delimiter
      Src: /src/haproxy/src/pattern.c:869,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: 875
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 875
    functionName: match_word
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - tolower
    - strncmp
    - is_delimiter
    - strncasecmp
    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:886,1
    - Dst: match_word
      Src: /src/haproxy/src/pattern.c:892,1
    - Dst: make_4delim
      Src: /src/haproxy/src/pattern.c:892,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: 896
      start: 881
    functionDepth: 2
    functionLinenumber: 881
    functionLinenumberEnd: 896
    functionName: pat_match_dir
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - match_word
    - make_4delim
    - 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:907,1
    - Dst: match_word
      Src: /src/haproxy/src/pattern.c:913,1
    - Dst: make_4delim
      Src: /src/haproxy/src/pattern.c:913,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: 917
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 917
    functionName: pat_match_dom
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - match_word
    - make_4delim
    - 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:925,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: 936
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 936
    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:944,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: 955
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 955
    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:968,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/pattern.c:970,1
    - Dst: ebmb_lookup_shorter
      Src: /src/haproxy/src/pattern.c:972,1
    - Dst: read_u32
      Src: /src/haproxy/src/pattern.c:980,1
    - Dst: cidr2dotted
      Src: /src/haproxy/src/pattern.c:981,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: 987
      start: 960
    functionDepth: 2
    functionLinenumber: 960
    functionLinenumberEnd: 987
    functionName: _pat_match_tree_ipv4
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - cidr2dotted
    - ebmb_lookup_longest
    - ebmb_lookup_shorter
    - read_u32
    - ebmb_entry
    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:1000,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/pattern.c:1002,1
    - Dst: ebmb_lookup_shorter
      Src: /src/haproxy/src/pattern.c:1004,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1012,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: 1018
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1018
    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:1029,1
    - Dst: v4tov6
      Src: /src/haproxy/src/pattern.c:1035,1
    - Dst: _pat_match_tree_ipv6
      Src: /src/haproxy/src/pattern.c:1036,1
    - Dst: _pat_match_tree_ipv6
      Src: /src/haproxy/src/pattern.c:1046,1
    - Dst: v6tov4
      Src: /src/haproxy/src/pattern.c:1052,1
    - Dst: _pat_match_tree_ipv4
      Src: /src/haproxy/src/pattern.c:1053,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1068,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: 1079
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1079
    functionName: pat_match_ip
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - _pat_match_tree_ipv4
    - list_for_each_entry
    - v4tov6
    - _pat_match_tree_ipv6
    - v6tov4
    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: 1093
      start: 1084
    functionDepth: 0
    functionLinenumber: 1084
    functionLinenumberEnd: 1093
    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:1100,1
    - Dst: eb_next
      Src: /src/haproxy/src/pattern.c:1102,1
    - Dst: eb_delete
      Src: /src/haproxy/src/pattern.c:1103,1
    - Dst: container_of
      Src: /src/haproxy/src/pattern.c:1104,1
    - Dst: pat_unlink_from_head
      Src: /src/haproxy/src/pattern.c:1105,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1106,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - root
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1095
    functionDepth: 1
    functionLinenumber: 1095
    functionLinenumberEnd: 1110
    functionName: free_pattern_tree
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - eb_first
    - container_of
    - eb_next
    - eb_delete
    - free
    - pat_unlink_from_head
    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:1116,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:1117,1
    - Dst: pat_unlink_from_head
      Src: /src/haproxy/src/pattern.c:1118,1
    - Dst: regex_free
      Src: /src/haproxy/src/pattern.c:1120,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1122,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1123,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1124,1
    - Dst: free_pattern_tree
      Src: /src/haproxy/src/pattern.c:1127,1
    - Dst: free_pattern_tree
      Src: /src/haproxy/src/pattern.c:1128,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1129,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct pattern_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1132
    functionName: pat_prune_gen
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - free_pattern_tree
    - free
    - LIST_INIT
    - rdtsc
    - pat_unlink_from_head
    - regex_free
    linkageType: ''
    returnType: void
    signature: void pat_prune_gen(struct pattern_expr *expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1145,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1147,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1152,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1155,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1160,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: 1165
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1165
    functionName: pat_idx_list_val
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - rdtsc
    - memprintf
    - calloc
    - memcpy
    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:1172,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1174,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1179,1
    - Dst: malloc
      Src: /src/haproxy/src/pattern.c:1180,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1182,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1183,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1186,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1189,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1194,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: 1199
      start: 1167
    functionDepth: 1
    functionLinenumber: 1167
    functionLinenumberEnd: 1199
    functionName: pat_idx_list_ptr
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - free
    - malloc
    - rdtsc
    - memprintf
    - calloc
    - memcpy
    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:1206,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1208,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1213,1
    - Dst: malloc
      Src: /src/haproxy/src/pattern.c:1214,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1216,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1217,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1220,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1224,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1229,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: 1234
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1234
    functionName: pat_idx_list_str
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - free
    - malloc
    - rdtsc
    - memprintf
    - calloc
    - memcpy
    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:1241,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1243,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1248,1
    - Dst: regex_comp
      Src: /src/haproxy/src/pattern.c:1252,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1254,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1259,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1264,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: 1269
      start: 1236
    functionDepth: 2
    functionLinenumber: 1236
    functionLinenumberEnd: 1269
    functionName: pat_idx_list_reg_cap
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - regex_comp
    - LIST_APPEND
    - free
    - rdtsc
    - memprintf
    - calloc
    - memcpy
    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:1273,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: 1274
      start: 1271
    functionDepth: 3
    functionLinenumber: 1271
    functionLinenumberEnd: 1274
    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:1278,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: 1279
      start: 1276
    functionDepth: 3
    functionLinenumber: 1276
    functionLinenumberEnd: 1279
    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:1293,1
    - Dst: flsnz
      Src: /src/haproxy/src/pattern.c:1295,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1298,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1300,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1309,1
    - Dst: ebmb_insert_prefix
      Src: /src/haproxy/src/pattern.c:1313,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1318,1
    - Dst: pat_idx_list_val
      Src: /src/haproxy/src/pattern.c:1326,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1331,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1333,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1342,1
    - Dst: ebmb_insert_prefix
      Src: /src/haproxy/src/pattern.c:1346,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1351,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: 1359
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1359
    functionName: pat_idx_tree_ip
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - flsnz
    - ntohl
    - rdtsc
    - ebmb_insert_prefix
    - memprintf
    - pat_idx_list_val
    - calloc
    - memcpy
    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:1368,1
    - Dst: pat_idx_list_str
      Src: /src/haproxy/src/pattern.c:1375,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1378,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1381,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1383,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1392,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/pattern.c:1395,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1400,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: 1405
      start: 1361
    functionDepth: 2
    functionLinenumber: 1361
    functionLinenumberEnd: 1405
    functionName: pat_idx_tree_str
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - ebst_insert
    - strlen
    - rdtsc
    - pat_idx_list_str
    - memprintf
    - calloc
    - memcpy
    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:1414,1
    - Dst: pat_idx_list_str
      Src: /src/haproxy/src/pattern.c:1421,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1424,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1427,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1429,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1438,1
    - Dst: ebmb_insert_prefix
      Src: /src/haproxy/src/pattern.c:1442,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1447,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: 1452
      start: 1407
    functionDepth: 2
    functionLinenumber: 1407
    functionLinenumberEnd: 1452
    functionName: pat_idx_tree_pfx
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - strlen
    - rdtsc
    - pat_idx_list_str
    - memprintf
    - ebmb_insert_prefix
    - calloc
    - memcpy
    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:1465,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1467,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/pattern.c:1469,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1470,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1471,1
    - Dst: container_of
      Src: /src/haproxy/src/pattern.c:1476,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1478,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:1481,1
    - Dst: regex_free
      Src: /src/haproxy/src/pattern.c:1483,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1485,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1486,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1487,1
    - Dst: rdtsc
      Src: /src/haproxy/src/pattern.c:1491,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: 1495
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1495
    functionName: pat_delete_gen
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - container_of
    - BUG_ON
    - free
    - rdtsc
    - ebmb_delete
    - regex_free
    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:1499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct pattern_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1502
    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:1506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct pattern_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1507
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1507
    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:1541,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1541,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1543,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1543,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1546,1
    - Dst: strcmp
      Src: /src/haproxy/src/pattern.c:1547,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - reference
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1550
    functionName: pat_ref_lookup
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 5
    functionsReached:
    - strlen
    - strncmp
    - list_for_each_entry
    - strcmp
    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:1559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - unique_id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1555
    functionDepth: 0
    functionLinenumber: 1555
    functionLinenumberEnd: 1563
    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: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:1578,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:1579,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1580,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1582,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/pattern.c:1582,1
    - Dst: typeof
      Src: /src/haproxy/src/pattern.c:1582,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1587,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:1588,1
    - Dst: pat_delete_gen
      Src: /src/haproxy/src/pattern.c:1590,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:1592,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:1593,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:1595,1
    - Dst: cebs_item_delete
      Src: /src/haproxy/src/pattern.c:1596,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1597,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1598,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pattern.c:1599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - ref
    - elt
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1569
    functionDepth: 2
    functionLinenumber: 1569
    functionLinenumberEnd: 1600
    functionName: pat_ref_delete_by_ptr
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - LIST_DELETE
    - list_for_each_entry
    - HA_RWLOCK_WRLOCK
    - pat_delete_gen
    - list_for_each_entry_safe
    - HA_RWLOCK_WRUNLOCK
    - LIST_APPEND
    - free
    - LIST_INIT
    - typeof
    - LIST_ELEM
    - cebs_item_delete
    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:1614,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:1616,1
    - Dst: pat_ref_delete_by_ptr
      Src: /src/haproxy/src/pattern.c:1617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ref
    - refelt
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1609
    functionDepth: 3
    functionLinenumber: 1609
    functionLinenumberEnd: 1622
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: cebs_item_lookup
      Src: /src/haproxy/src/pattern.c:1635,1
    - Dst: cebs_item_next_dup
      Src: /src/haproxy/src/pattern.c:1637,1
    - Dst: pat_ref_delete_by_ptr
      Src: /src/haproxy/src/pattern.c:1639,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:1646,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ref
    - gen_id
    - key
    argTypes:
    - struct pat_ref*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1649
      start: 1629
    functionDepth: 3
    functionLinenumber: 1629
    functionLinenumberEnd: 1649
    functionName: pat_ref_gen_delete
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - cebs_item_lookup
    - event_hdl_publish
    - cebs_item_next_dup
    - pat_ref_delete_by_ptr
    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:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - key
    argTypes:
    - struct pat_ref*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1655
    functionDepth: 4
    functionLinenumber: 1655
    functionLinenumberEnd: 1658
    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: cebs_item_lookup
      Src: /src/haproxy/src/pattern.c:1668,1
    - Dst: cebs_item_next_dup
      Src: /src/haproxy/src/pattern.c:1672,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ref
    - gen_id
    - key
    argTypes:
    - struct pat_ref*
    - unsigned int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1664
    functionDepth: 1
    functionLinenumber: 1664
    functionLinenumberEnd: 1675
    functionName: pat_ref_gen_find_elt
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 2
    functionsReached:
    - cebs_item_lookup
    - cebs_item_next_dup
    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:1683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - key
    argTypes:
    - struct pat_ref*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1681
    functionDepth: 2
    functionLinenumber: 1681
    functionLinenumberEnd: 1684
    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:1704,1
    - Dst: struct pattern_expr*::pat_head::parse_smp
      Src: /src/haproxy/src/pattern.c:1708,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1709,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:1715,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1717,1
    - Dst: container_of
      Src: /src/haproxy/src/pattern.c:1724,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1726,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:1733,1
    - Dst: struct pattern_expr*::pat_head::parse_smp
      Src: /src/haproxy/src/pattern.c:1734,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:1736,1
    - Dst: container_of
      Src: /src/haproxy/src/pattern.c:1741,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pattern.c:1743,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:1750,1
    - Dst: struct pattern_expr*::pat_head::parse_smp
      Src: /src/haproxy/src/pattern.c:1751,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:1753,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1758,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: 1763
      start: 1691
    functionDepth: 1
    functionLinenumber: 1691
    functionLinenumberEnd: 1763
    functionName: pat_ref_set_elt
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - container_of
    - BUG_ON
    - free
    - memprintf
    - struct pattern_expr*::pat_head::parse_smp
    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:1777,1
    - Dst: pat_ref_set_elt
      Src: /src/haproxy/src/pattern.c:1779,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1785,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - ref
    - refelt
    - value
    - err
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1787
      start: 1772
    functionDepth: 2
    functionLinenumber: 1772
    functionLinenumberEnd: 1787
    functionName: pat_ref_set_by_id
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - pat_ref_set_elt
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: cebs_item_next_dup
      Src: /src/haproxy/src/pattern.c:1799,1
    - Dst: pat_ref_set_elt
      Src: /src/haproxy/src/pattern.c:1807,1
    - Dst: ha_free
      Src: /src/haproxy/src/pattern.c:1811,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:1819,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:1824,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 4
    argNames:
    - ref
    - elt
    - value
    - err
    argTypes:
    - struct pat_ref*
    - struct pat_ref_elt*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1789
    functionDepth: 2
    functionLinenumber: 1789
    functionLinenumberEnd: 1827
    functionName: pat_ref_set_from_elt
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - event_hdl_publish
    - ha_free
    - memprintf
    - pat_ref_set_elt
    - cebs_item_next_dup
    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:1833,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: 1834
      start: 1830
    functionDepth: 3
    functionLinenumber: 1830
    functionLinenumberEnd: 1834
    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: cebs_item_lookup
      Src: /src/haproxy/src/pattern.c:1845,1
    - Dst: cebs_item_next_dup
      Src: /src/haproxy/src/pattern.c:1849,1
    - Dst: pat_ref_set_from_elt
      Src: /src/haproxy/src/pattern.c:1851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ref
    - gen_id
    - key
    - value
    - err
    argTypes:
    - struct pat_ref*
    - unsigned int
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1839
    functionDepth: 3
    functionLinenumber: 1839
    functionLinenumberEnd: 1852
    functionName: pat_ref_gen_set
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - cebs_item_lookup
    - pat_ref_set_from_elt
    - cebs_item_next_dup
    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:1859,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: 1860
      start: 1857
    functionDepth: 4
    functionLinenumber: 1857
    functionLinenumberEnd: 1860
    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:1871,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:1878,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1880,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1892,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1894,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/pattern.c:1895,1
    - Dst: event_hdl_sub_list_init
      Src: /src/haproxy/src/pattern.c:1896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - display
    - flags
    argTypes:
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1867
    functionDepth: 1
    functionLinenumber: 1867
    functionLinenumberEnd: 1899
    functionName: _pat_ref_new
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - strdup
    - free
    - malloc
    - LIST_INIT
    - event_hdl_sub_list_init
    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:1904,1
    - Dst: ha_free
      Src: /src/haproxy/src/pattern.c:1905,1
    - Dst: event_hdl_sub_list_destroy
      Src: /src/haproxy/src/pattern.c:1906,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:1907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1902
    functionDepth: 1
    functionLinenumber: 1902
    functionLinenumberEnd: 1908
    functionName: pat_ref_free
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - event_hdl_sub_list_destroy
    - free
    - ha_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:1920,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1924,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1924,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1926,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1926,1
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1934,1
    - Dst: strncmp
      Src: /src/haproxy/src/pattern.c:1934,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:1939,1
    - Dst: pat_ref_free
      Src: /src/haproxy/src/pattern.c:1941,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1945,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - reference
    - display
    - flags
    argTypes:
    - char*
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1916
    functionDepth: 2
    functionLinenumber: 1916
    functionLinenumberEnd: 1947
    functionName: pat_ref_new
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - strdup
    - strncmp
    - LIST_APPEND
    - strlen
    - pat_ref_free
    - _pat_ref_new
    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:1960,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - unique_id
    - display
    - flags
    argTypes:
    - int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1968
      start: 1956
    functionDepth: 2
    functionLinenumber: 1956
    functionLinenumberEnd: 1968
    functionName: pat_ref_newid
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    - _pat_ref_new
    linkageType: ''
    returnType: struct pat_ref
    signature: struct pat_ref *pat_ref_newid(int unique_id, const char *display, unsigned
      int flags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/pattern.c:1978,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:1980,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:1987,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:1990,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:1995,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:1998,1
    - Dst: cebs_item_insert
      Src: /src/haproxy/src/pattern.c:1999,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pattern.c:2000,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2003,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - ref
    - pattern
    - sample
    - line
    argTypes:
    - struct pat_ref*
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1975
    functionDepth: 1
    functionLinenumber: 1975
    functionLinenumberEnd: 2005
    functionName: pat_ref_append
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - strdup
    - HA_ATOMIC_INC
    - cebs_item_insert
    - LIST_APPEND
    - strlen
    - free
    - LIST_INIT
    - calloc
    - memcpy
    linkageType: ''
    returnType: struct pat_ref_elt
    signature: struct pat_ref_elt *pat_ref_append(struct pat_ref *ref, const char
      *pattern, const char *sample, int line)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/pattern.c:2021,1
    - Dst: struct pattern_expr*::pat_head::parse_smp
      Src: /src/haproxy/src/pattern.c:2026,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2027,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2028,1
    - Dst: memset
      Src: /src/haproxy/src/pattern.c:2037,1
    - Dst: struct pattern_expr*::pat_head::parse
      Src: /src/haproxy/src/pattern.c:2042,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2043,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:2047,1
    - Dst: struct pattern_expr*::pat_head::index
      Src: /src/haproxy/src/pattern.c:2049,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:2050,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2051,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:2054,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: 2057
      start: 2012
    functionDepth: 1
    functionLinenumber: 2012
    functionLinenumberEnd: 2057
    functionName: pat_ref_push
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - memset
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - struct pattern_expr*::pat_head::index
    - free
    - malloc
    - memprintf
    - 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:2073,1
    - Dst: pat_ref_push
      Src: /src/haproxy/src/pattern.c:2074,1
    - Dst: pat_ref_delete_by_ptr
      Src: /src/haproxy/src/pattern.c:2075,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: 2080
      start: 2069
    functionDepth: 3
    functionLinenumber: 2069
    functionLinenumberEnd: 2080
    functionName: pat_ref_commit_elt
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - pat_ref_delete_by_ptr
    - pat_ref_push
    - 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:2097,1
    - Dst: pat_ref_commit_elt
      Src: /src/haproxy/src/pattern.c:2100,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2103,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:2107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 6
    argNames:
    - ref
    - gen
    - pattern
    - sample
    - line
    - err
    argTypes:
    - struct pat_ref*
    - unsigned int
    - char*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2091
    functionDepth: 4
    functionLinenumber: 2091
    functionLinenumberEnd: 2110
    functionName: pat_ref_load
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 3
    functionsReached:
    - event_hdl_publish
    - pat_ref_append
    - memprintf
    - pat_ref_commit_elt
    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:2122,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: 2123
      start: 2118
    functionDepth: 5
    functionLinenumber: 2118
    functionLinenumberEnd: 2123
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2141,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:2142,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:2148,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pattern.c:2161,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2162,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:2163,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2165,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/pattern.c:2165,1
    - Dst: typeof
      Src: /src/haproxy/src/pattern.c:2165,1
    - Dst: pat_delete_gen
      Src: /src/haproxy/src/pattern.c:2170,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2172,1
    - Dst: cebs_item_delete
      Src: /src/haproxy/src/pattern.c:2173,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2174,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2175,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pattern.c:2176,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2179,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:2180,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/src/pattern.c:2186,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 4
    argNames:
    - ref
    - from
    - to
    - budget
    argTypes:
    - struct pat_ref*
    - uint
    - uint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2189
      start: 2134
    functionDepth: 2
    functionLinenumber: 2134
    functionLinenumberEnd: 2189
    functionName: pat_ref_purge_range
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    - LIST_DELETE
    - list_for_each_entry
    - HA_RWLOCK_WRLOCK
    - pat_delete_gen
    - list_for_each_entry_safe
    - HA_RWLOCK_WRUNLOCK
    - event_hdl_publish
    - LIST_APPEND
    - free
    - LIST_INIT
    - typeof
    - LIST_ELEM
    - cebs_item_delete
    linkageType: ''
    returnType: int
    signature: int pat_ref_purge_range(struct pat_ref *ref, uint from, uint to, int
      budget)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pat_ref_purge_range
      Src: /src/haproxy/src/pattern.c:2199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2197
    functionDepth: 3
    functionLinenumber: 2197
    functionLinenumberEnd: 2200
    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:2209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - head
    - ref
    argTypes:
    - struct pattern_head*
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2213
    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:2233,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2235,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2244,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:2259,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2261,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2262,1
    - Dst: pattern_init_expr
      Src: /src/haproxy/src/pattern.c:2267,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2277,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pattern.c:2279,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/pattern.c:2283,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pattern.c:2290,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2296,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: 2298
      start: 2223
    functionDepth: 2
    functionLinenumber: 2223
    functionLinenumberEnd: 2298
    functionName: pattern_new_expr
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_INIT
    - HA_ATOMIC_INC
    - list_for_each_entry
    - LIST_APPEND
    - free
    - LIST_INIT
    - pattern_init_expr
    - memprintf
    - calloc
    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:2333,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2340,1
    - Dst: fgets
      Src: /src/haproxy/src/pattern.c:2349,1
    - Dst: pat_ref_append
      Src: /src/haproxy/src/pattern.c:2391,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2392,1
    - Dst: ferror
      Src: /src/haproxy/src/pattern.c:2397,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2398,1
    - Dst: strerror
      Src: /src/haproxy/src/pattern.c:2399,1
    - Dst: fclose
      Src: /src/haproxy/src/pattern.c:2406,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 50
    argCount: 2
    argNames:
    - ref
    - err
    argTypes:
    - struct pat_ref*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2322
    functionDepth: 2
    functionLinenumber: 2322
    functionLinenumberEnd: 2408
    functionName: pat_ref_read_from_file_smp
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - fclose
    - fgets
    - memprintf
    - strerror
    - ferror
    - fopen
    - pat_ref_append
    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:2421,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2428,1
    - Dst: fgets
      Src: /src/haproxy/src/pattern.c:2436,1
    - Dst: pat_ref_append
      Src: /src/haproxy/src/pattern.c:2458,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2459,1
    - Dst: ferror
      Src: /src/haproxy/src/pattern.c:2464,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2465,1
    - Dst: strerror
      Src: /src/haproxy/src/pattern.c:2466,1
    - Dst: fclose
      Src: /src/haproxy/src/pattern.c:2472,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 2
    argNames:
    - ref
    - err
    argTypes:
    - struct pat_ref*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2474
      start: 2413
    functionDepth: 2
    functionLinenumber: 2413
    functionLinenumberEnd: 2474
    functionName: pat_ref_read_from_file
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - fclose
    - fgets
    - memprintf
    - strerror
    - ferror
    - fopen
    - pat_ref_append
    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:2486,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pattern.c:2490,1
    - Dst: pat_ref_new
      Src: /src/haproxy/src/pattern.c:2494,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2496,1
    - Dst: pat_ref_read_from_file_smp
      Src: /src/haproxy/src/pattern.c:2503,1
    - Dst: pat_ref_read_from_file
      Src: /src/haproxy/src/pattern.c:2507,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2522,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2533,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pattern.c:2541,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pattern.c:2542,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2544,1
    - Dst: strdup
      Src: /src/haproxy/src/pattern.c:2545,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2547,1
    - Dst: pattern_lookup_expr
      Src: /src/haproxy/src/pattern.c:2560,1
    - Dst: pattern_new_expr
      Src: /src/haproxy/src/pattern.c:2562,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2582,1
    - Dst: pat_ref_push
      Src: /src/haproxy/src/pattern.c:2583,1
    - Dst: memprintf
      Src: /src/haproxy/src/pattern.c:2585,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 59
    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: 2592
      start: 2476
    functionDepth: 3
    functionLinenumber: 2476
    functionLinenumberEnd: 2592
    functionName: pattern_read_from_file
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - pat_ref_lookup
    - pat_ref_read_from_file
    - strdup
    - list_for_each_entry
    - chunk_printf
    - pattern_lookup_expr
    - chunk_appendf
    - pat_ref_new
    - pattern_new_expr
    - free
    - pat_ref_push
    - memprintf
    - pat_ref_read_from_file_smp
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: sample_convert
      Src: /src/haproxy/src/pattern.c:2617,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2620,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/pattern.c:2621,1
    - Dst: struct pattern_head*::match
      Src: /src/haproxy/src/pattern.c:2622,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:2627,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/pattern.c:2637,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:2641,1
    - Dst: memcpy
      Src: /src/haproxy/src/pattern.c:2650,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/pattern.c:2659,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/pattern.c:2662,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: 2665
      start: 2600
    functionDepth: 2
    functionLinenumber: 2600
    functionLinenumberEnd: 2665
    functionName: pattern_exec_match
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 2
    functionsReached:
    - list_for_each_entry
    - get_trash_chunk
    - sample_convert
    - struct pattern_head*::match
    - HA_RWLOCK_RDUNLOCK
    - memcpy
    - 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:2672,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2673,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/pattern.c:2674,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2675,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/pattern.c:2676,1
    - Dst: struct pattern_head*::prune
      Src: /src/haproxy/src/pattern.c:2677,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/pattern.c:2678,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2679,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct pattern_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2668
    functionDepth: 1
    functionLinenumber: 2668
    functionLinenumberEnd: 2683
    functionName: pattern_prune
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 1
    functionsReached:
    - struct pattern_head*::prune
    - LIST_DELETE
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - list_for_each_entry_safe
    - free
    - HA_ATOMIC_SUB_FETCH
    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: 2698
      start: 2688
    functionDepth: 0
    functionLinenumber: 2688
    functionLinenumberEnd: 2698
    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:2710,1
    - Dst: ha_random
      Src: /src/haproxy/src/pattern.c:2712,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2715,1
    - Dst: calloc
      Src: /src/haproxy/src/pattern.c:2725,1
    - Dst: ha_alert
      Src: /src/haproxy/src/pattern.c:2727,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pattern.c:2733,1
    - Dst: qsort
      Src: /src/haproxy/src/pattern.c:2743,1
    - Dst: bsearch
      Src: /src/haproxy/src/pattern.c:2749,1
    - Dst: qsort
      Src: /src/haproxy/src/pattern.c:2753,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pattern.c:2757,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pattern.c:2760,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pattern.c:2761,1
    - Dst: free
      Src: /src/haproxy/src/pattern.c:2763,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2703
    functionDepth: 1
    functionLinenumber: 2703
    functionLinenumberEnd: 2765
    functionName: pattern_finalize_config
    functionSourceFile: /src/haproxy/src/pattern.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - qsort
    - LIST_INSERT
    - LIST_DELETE
    - bsearch
    - LIST_APPEND
    - free
    - ha_alert
    - LIST_HEAD_INIT
    - calloc
    - ha_random
    linkageType: ''
    returnType: int
    signature: int pattern_finalize_config(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lru64_new
      Src: /src/haproxy/src/pattern.c:2771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2773
      start: 2767
    functionDepth: 1
    functionLinenumber: 2767
    functionLinenumberEnd: 2773
    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:2777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2775
    functionDepth: 1
    functionLinenumber: 2775
    functionLinenumberEnd: 2778
    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: 17
    BranchProfiles: []
    Callsites:
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:384,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:387,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:390,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:393,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:396,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:399,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:402,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:405,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:408,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:411,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:414,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:417,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/mux_h2.c:420,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 3
    argNames:
    - data
    - stats
    - selected_field
    argTypes:
    - void*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 435
    functionName: h2_fill_stats
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - mkf_u64
    linkageType: ''
    returnType: int
    signature: int h2_fill_stats(void *data, 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: 556
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 556
    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:579,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:580,1
    - Dst: h2c_st_to_str
      Src: /src/haproxy/src/mux_h2.c:581,1
    - Dst: conn_append_debug_info
      Src: /src/haproxy/src/mux_h2.c:584,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:587,1
    - Dst: h2_err_str
      Src: /src/haproxy/src/mux_h2.c:587,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:590,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:594,1
    - Dst: h2_ft_str
      Src: /src/haproxy/src/mux_h2.c:594,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_h2.c:597,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:598,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:599,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:600,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:600,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:601,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:601,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_h2.c:602,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_h2.c:602,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_h2.c:602,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:603,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:603,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:604,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:604,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:605,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:605,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:606,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:606,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:610,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:612,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:616,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:617,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:618,1
    - Dst: h2s_st_to_str
      Src: /src/haproxy/src/mux_h2.c:619,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:622,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:623,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:624,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:625,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:626,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:627,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:628,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:629,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:632,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:634,1
    - Dst: h2_err_str
      Src: /src/haproxy/src/mux_h2.c:634,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:638,1
    - Dst: htxbuf
      Src: /src/haproxy/src/mux_h2.c:646,1
    - Dst: htx_get_head
      Src: /src/haproxy/src/mux_h2.c:652,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/mux_h2.c:653,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h2.c:654,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:655,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:658,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/mux_h2.c:660,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/mux_h2.c:660,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/mux_h2.c:661,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/mux_h2.c:661,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/mux_h2.c:662,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/mux_h2.c:662,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:664,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/mux_h2.c:666,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/mux_h2.c:666,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/mux_h2.c:667,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/mux_h2.c:667,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/mux_h2.c:668,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/mux_h2.c:668,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: 670
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 670
    functionName: h2_trace
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - htx_get_head
    - HTX_SL_P2_LEN
    - br_head_idx
    - htx_get_blk_ptr
    - br_tail
    - h2_err_str
    - h2_ft_str
    - h2s_st_to_str
    - b_data
    - chunk_appendf
    - htx_get_blk_type
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - HTX_SL_P2_PTR
    - b_head_ofs
    - htx_get_blk
    - br_tail_idx
    - htxbuf
    - h2s_rxbuf_tail
    - br_head
    - HTX_SL_P1_LEN
    - br_size
    - conn_append_debug_info
    - b_size
    - h2s_rxbuf_head
    - b_orig
    - HTX_SL_P3_LEN
    - conn_is_back
    - h2c_st_to_str
    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:694,1
    - Dst: sc_strm
      Src: /src/haproxy/src/mux_h2.c:695,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:695,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: 697
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 697
    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:705,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: 706
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 706
    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: 717
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 717
    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: 728
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 728
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 744
    functionName: h2c_max_concurrent_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    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: 753
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 753
    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: 762
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 762
    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:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 771
    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:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 780
    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: 786
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 786
    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:797,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 806
    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:817,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:817,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:817,1
    - Dst: bl_put
      Src: /src/haproxy/src/mux_h2.c:819,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 825
    functionName: h2s_put_rxbuf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_size
    - BUG_ON_HOT
    - bl_put
    - h2s_rxbuf_head
    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:836,1
    - Dst: b_is_null
      Src: /src/haproxy/src/mux_h2.c:837,1
    - Dst: htxbuf
      Src: /src/haproxy/src/mux_h2.c:840,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/mux_h2.c:841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 842
    functionName: h2s_may_append_to_rxbuf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - h2s_rxbuf_tail
    - b_is_null
    - htx_free_data_space
    linkageType: ''
    returnType: int
    signature: int h2s_may_append_to_rxbuf(const struct h2s *h2s)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:849,1
    - Dst: h2c_may_expire
      Src: /src/haproxy/src/mux_h2.c:857,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:859,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:861,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:871,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:876,1
    - Dst: tick_first
      Src: /src/haproxy/src/mux_h2.c:877,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:878,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:887,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:889,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:890,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:902,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:903,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:914,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:914,1
    - Dst: tick_first
      Src: /src/haproxy/src/mux_h2.c:916,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:918,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:935,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h2.c:943,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:948,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/mux_h2.c:949,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_h2.c:953,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h2.c:953,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h2.c:960,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:972,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h2.c:972,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h2.c:973,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_h2.c:977,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:979,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 980
    functionName: h2c_update_timeout
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - tick_add
    - br_data
    - h2c_may_expire
    - unlikely
    - statistical_prng_range
    - b_data
    - tick_is_expired
    - task_wakeup
    - tick_remain
    - TRACE_ENTER
    - tick_isset
    - task_queue
    - tick_add_ifset
    - tick_is_le
    - tick_first
    - conn_idle_ping
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void h2c_update_timeout(struct h2c *h2c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:985,1
    - Dst: conn_is_reverse
      Src: /src/haproxy/src/mux_h2.c:989,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:990,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 4
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 982
    functionDepth: 1
    functionLinenumber: 982
    functionLinenumberEnd: 996
    functionName: h2c_is_dead
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - conn_is_reverse
    - br_data
    - eb_is_empty
    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: 1025
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1025
    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:1037,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1047
    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:1054,1
    - Dst: h2_may_demux
      Src: /src/haproxy/src/mux_h2.c:1054,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - h2c
    - consider_buffer
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1057
    functionName: h2c_restart_reading
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_recv_allowed
    - tasklet_wakeup
    - h2_may_demux
    linkageType: ''
    returnType: void
    signature: void h2c_restart_reading(const struct h2c *h2c, int consider_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:1063,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:1064,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:1064,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1065
    functionName: h2_frt_has_too_many_sc
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2c_max_concurrent_streams
    - 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:1077,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:1079,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h2.c:1083,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:1083,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:1088,1
    - Dst: h2c_st_by_id
      Src: /src/haproxy/src/mux_h2.c:1094,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1094,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:1095,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:1095,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h2.c:1097,1
    - Dst: _h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:1097,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:1099,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1072
    functionDepth: 3
    functionLinenumber: 1072
    functionLinenumberEnd: 1105
    functionName: h2_buf_available
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2c_restart_reading
    - h2s_rxbuf_tail
    - h2s_get_rxbuf
    - _h2s_rxbuf_tail
    - h2c_st_by_id
    - br_tail
    - b_alloc
    - h2s_sc
    linkageType: ''
    returnType: int
    signature: int h2_buf_available(void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/mux_h2.c:1111,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:1111,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:1112,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_h2.c:1112,1
    - Dst: b_queue
      Src: /src/haproxy/src/mux_h2.c:1113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - h2c
    - bptr
    argTypes:
    - struct h2c*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1116
    functionName: h2_get_buf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - LIST_INLIST
    - unlikely
    - likely
    - b_alloc
    - b_queue
    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:1121,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:1122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - h2c
    - bptr
    argTypes:
    - struct h2c*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1124
    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:1131,1
    - Dst: br_head_pick
      Src: /src/haproxy/src/mux_h2.c:1131,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:1132,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:1139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1140
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1140
    functionName: h2_release_mbuf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_size
    - offer_buffers
    - br_head_pick
    - b_free
    linkageType: ''
    returnType: void
    signature: void h2_release_mbuf(struct h2c *h2c)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1158
    functionName: h2_streams_left
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    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: 1169
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1169
    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:1174,1
    - Dst: h2_streams_left
      Src: /src/haproxy/src/mux_h2.c:1191,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_h2.c:1192,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_h2.c:1195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1198
      start: 1172
    functionDepth: 1
    functionLinenumber: 1172
    functionLinenumberEnd: 1198
    functionName: h2_avail_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - MIN
    - objt_server
    - h2_streams_left
    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:1210,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/mux_h2.c:1211,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1213,1
    - Dst: h2c_st_to_str
      Src: /src/haproxy/src/mux_h2.c:1214,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/mux_h2.c:1217,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1220,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1221,1
    - Dst: h2s_st_to_str
      Src: /src/haproxy/src/mux_h2.c:1221,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1224,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:1226,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/mux_h2.c:1226,1
    - Dst: istscpy
      Src: /src/haproxy/src/mux_h2.c:1227,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1230,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:1232,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/mux_h2.c:1232,1
    - Dst: istscpy
      Src: /src/haproxy/src/mux_h2.c:1233,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:1236,1
    - Dst: TRACE_PRINTF_LOC
      Src: /src/haproxy/src/mux_h2.c:1238,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: 1243
      start: 1203
    functionDepth: 1
    functionLinenumber: 1203
    functionLinenumberEnd: 1243
    functionName: _h2_trace_header
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - chunk_newstr
    - h2s_st_to_str
    - TRACE_PRINTF_LOC
    - istscpy
    - chunk_appendf
    - ist2
    - h2c_st_to_str
    - 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:1251,1
    - Dst: _h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:1252,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: 1253
      start: 1246
    functionDepth: 2
    functionLinenumber: 1246
    functionLinenumberEnd: 1253
    functionName: h2_trace_header
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - _h2_trace_header
    - TRACE_ENABLED
    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:1271,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/mux_h2.c:1271,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:1273,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/mux_h2.c:1273,1
    - Dst: hpack_encode_header
      Src: /src/haproxy/src/mux_h2.c:1277,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:1279,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: 1282
      start: 1262
    functionDepth: 3
    functionLinenumber: 1262
    functionLinenumberEnd: 1282
    functionName: h2_encode_header
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_trace_header
    - hpack_encode_header
    - HTTP_IS_LWS
    - unlikely
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:1302,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h2.c:1304,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1308,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:1311,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h2.c:1314,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:1319,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h2.c:1322,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:1333,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:1333,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:1333,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h2.c:1334,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_h2.c:1341,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h2.c:1344,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1350,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:1354,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:1355,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h2.c:1360,1
    - Dst: hpack_dht_alloc
      Src: /src/haproxy/src/mux_h2.c:1364,1
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:1371,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:1374,1
    - Dst: bl_init
      Src: /src/haproxy/src/mux_h2.c:1375,1
    - Dst: br_init
      Src: /src/haproxy/src/mux_h2.c:1395,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:1400,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:1401,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:1402,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:1403,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:1407,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_h2.c:1410,1
    - Dst: likely
      Src: /src/haproxy/src/mux_h2.c:1412,1
    - Dst: conn_is_reverse
      Src: /src/haproxy/src/mux_h2.c:1412,1
    - Dst: h2c_bck_stream_new
      Src: /src/haproxy/src/mux_h2.c:1420,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1425,1
    - Dst: proxy_inc_fe_cum_sess_ver_ctr
      Src: /src/haproxy/src/mux_h2.c:1426,1
    - Dst: conn_is_reverse
      Src: /src/haproxy/src/mux_h2.c:1429,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:1430,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:1431,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:1435,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1436,1
    - Dst: hpack_dht_free
      Src: /src/haproxy/src/mux_h2.c:1439,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h2.c:1441,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:1442,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:1443,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1445,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:1446,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:1448,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 120
    argCount: 4
    argNames:
    - conn
    - prx
    - sess
    - input
    argTypes:
    - struct connection*
    - struct proxy*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1294
    functionDepth: 3
    functionLinenumber: 1294
    functionLinenumberEnd: 1450
    functionName: h2_init
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - conn_is_reverse
    - HA_ATOMIC_INC
    - pool_free
    - h2c_restart_reading
    - hpack_dht_alloc
    - EXTRA_COUNTERS_GET
    - pool_alloc
    - task_destroy
    - LIST_INLIST
    - TRACE_LEAVE
    - proxy_inc_fe_cum_sess_ver_ctr
    - tasklet_free
    - tick_isset
    - TRACE_USER
    - LIST_INIT
    - bl_init
    - likely
    - hpack_dht_free
    - h2c_bck_stream_new
    - LIST_DEL_INIT
    - LIST_APPEND
    - MAX
    - task_new_here
    - tick_add
    - tasklet_new
    - h2c_max_concurrent_streams
    - TRACE_ENTER
    - task_queue
    - conn_is_back
    - conn_idle_ping
    - br_init
    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: 1462
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1462
    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:1475,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:1479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - h2c
    - id
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1480
    functionName: h2c_st_by_id
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - eb32_lookup
    - container_of
    linkageType: ''
    returnType: struct h2s
    signature: struct h2s *h2c_st_by_id(struct h2c *h2c, int id)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:1489,1
    - Dst: hpack_dht_free
      Src: /src/haproxy/src/mux_h2.c:1491,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/mux_h2.c:1493,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:1495,1
    - Dst: h2_release_mbuf
      Src: /src/haproxy/src/mux_h2.c:1496,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_h2.c:1500,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:1503,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h2.c:1506,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:1508,1
    - Dst: conn_is_reverse
      Src: /src/haproxy/src/mux_h2.c:1512,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/mux_h2.c:1513,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:1515,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:1516,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:1521,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/mux_h2.c:1523,1
    - Dst: conn_xprt_shutw
      Src: /src/haproxy/src/mux_h2.c:1532,1
    - Dst: conn_xprt_close
      Src: /src/haproxy/src/mux_h2.c:1533,1
    - Dst: conn_sock_shutw
      Src: /src/haproxy/src/mux_h2.c:1534,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:1534,1
    - Dst: conn_ctrl_close
      Src: /src/haproxy/src/mux_h2.c:1535,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/mux_h2.c:1538,1
    - Dst: conn_free
      Src: /src/haproxy/src/mux_h2.c:1539,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1542,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1485
    functionDepth: 3
    functionLinenumber: 1485
    functionLinenumberEnd: 1543
    functionName: h2_release
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - conn_is_reverse
    - HA_ATOMIC_DEC
    - h2c_report_term_evt
    - pool_free
    - conn_sock_shutw
    - task_wakeup
    - conn_ctrl_close
    - TRACE_LEAVE
    - tasklet_free
    - hpack_dht_free
    - b_dequeue
    - conn_xprt_close
    - struct connection*::xprt::unsubscribe
    - conn_free
    - h2_release_buf
    - struct connection*::destroy_cb
    - conn_xprt_shutw
    - TRACE_ENTER
    - conn_stop_tracking
    - conn_is_back
    - h2_release_mbuf
    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: 1554
      start: 1551
    functionDepth: 0
    functionLinenumber: 1551
    functionLinenumberEnd: 1554
    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: 1562
      start: 1559
    functionDepth: 0
    functionLinenumber: 1559
    functionLinenumberEnd: 1562
    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: 1576
      start: 1568
    functionDepth: 0
    functionLinenumber: 1568
    functionLinenumberEnd: 1576
    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:1585,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - h2c
    - err
    argTypes:
    - struct h2c*
    - enum h2_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1583
    functionDepth: 1
    functionLinenumber: 1583
    functionLinenumberEnd: 1590
    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:1598,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:1602,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - h2s
    - err
    argTypes:
    - struct h2s*
    - enum h2_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1595
    functionDepth: 1
    functionLinenumber: 1595
    functionLinenumberEnd: 1604
    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:1610,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/mux_h2.c:1613,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1615,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1607
    functionDepth: 1
    functionLinenumber: 1607
    functionLinenumberEnd: 1620
    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:1626,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1628,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h2.c:1634,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:1635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1637
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:1649,1
    - Dst: __maybe_unused::h2s_notify_recv
      Src: /src/haproxy/src/mux_h2.c:1653,1
    - Dst: __maybe_unused::h2s_notify_send
      Src: /src/haproxy/src/mux_h2.c:1654,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1656,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1656,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_h2.c:1657,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1658,1
    - Dst: wake
      Src: /src/haproxy/src/mux_h2.c:1658,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1658,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1661,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1647
    functionDepth: 2
    functionLinenumber: 1647
    functionLinenumberEnd: 1662
    functionName: __maybe_unused::h2s_alert
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - wake
    - __maybe_unused::h2s_notify_send
    - TRACE_POINT
    - TRACE_LEAVE
    - h2s_sc
    - __maybe_unused::h2s_notify_recv
    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: 1674
      start: 1670
    functionDepth: 0
    functionLinenumber: 1670
    functionLinenumberEnd: 1674
    functionName: h2c_report_glitch
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h2c_report_glitch(h2c, inc, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:1683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - h2c
    - increment
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1687
    functionName: _h2c_report_glitch
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - 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:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - frame
    - len
    argTypes:
    - void*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1696
    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:1707,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1707,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:1707,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1707,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:1707,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: 1708
      start: 1704
    functionDepth: 1
    functionLinenumber: 1704
    functionLinenumberEnd: 1708
    functionName: h2_get_buf_bytes
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_orig
    - readv_bytes
    - b_wrap
    - b_peek
    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:1712,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1712,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:1712,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1712,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:1712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1710
    functionDepth: 1
    functionLinenumber: 1710
    functionLinenumberEnd: 1713
    functionName: h2_get_n16
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_orig
    - readv_n16
    - b_wrap
    - b_peek
    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:1717,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1717,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:1717,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1717,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1715
    functionDepth: 1
    functionLinenumber: 1715
    functionLinenumberEnd: 1718
    functionName: h2_get_n32
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_orig
    - readv_n32
    - b_wrap
    - b_peek
    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:1722,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1722,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:1722,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1722,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:1722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - o
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1723
      start: 1720
    functionDepth: 1
    functionLinenumber: 1720
    functionLinenumberEnd: 1723
    functionName: h2_get_n64
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_orig
    - readv_n64
    - b_wrap
    - b_peek
    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:1747,1
    - Dst: h2_get_n64
      Src: /src/haproxy/src/mux_h2.c:1750,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:1751,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: 1757
      start: 1743
    functionDepth: 2
    functionLinenumber: 1743
    functionLinenumberEnd: 1757
    functionName: h2_peek_frame_hdr
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - b_data
    - h2_get_n64
    - b_peek
    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:1764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1765
      start: 1762
    functionDepth: 1
    functionLinenumber: 1762
    functionLinenumberEnd: 1765
    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:1772,1
    - Dst: h2_skip_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:1774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - b
    - h
    argTypes:
    - struct buffer*
    - struct h2_fh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1776
      start: 1768
    functionDepth: 3
    functionLinenumber: 1768
    functionLinenumberEnd: 1776
    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:1810,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:1814,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:1817,1
    - Dst: read_n32
      Src: /src/haproxy/src/mux_h2.c:1817,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:1821,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - b
    - mfs
    argTypes:
    - struct buffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1787
    functionDepth: 2
    functionLinenumber: 1787
    functionLinenumberEnd: 1823
    functionName: h2_fragment_headers
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - read_n32
    - memmove
    - h2_set_frame_size
    - write_n32
    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:1831,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1828
    functionDepth: 1
    functionLinenumber: 1828
    functionLinenumberEnd: 1835
    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:1843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1840
    functionDepth: 1
    functionLinenumber: 1840
    functionLinenumberEnd: 1847
    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:1858,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:1859,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:1863,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:1864,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:1865,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:1865,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:1865,1
    - Dst: h2s_notify_recv
      Src: /src/haproxy/src/mux_h2.c:1866,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/mux_h2.c:1868,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1870,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:1873,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1874
      start: 1855
    functionDepth: 2
    functionLinenumber: 1855
    functionLinenumberEnd: 1874
    functionName: h2s_close
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - se_fl_test
    - b_data
    - TRACE_STATE
    - TRACE_ENTER
    - h2s_no_longer_receiving
    - h2s_notify_recv
    - h2s_sc
    - h2s_rxbuf_head
    - TRACE_LEAVE
    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:1882,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:1885,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:1886,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:1889,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:1890,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:1891,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:1892,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:1893,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:1896,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:1898,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:1899,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1879
    functionDepth: 1
    functionLinenumber: 1879
    functionLinenumberEnd: 1900
    functionName: h2s_propagate_term_flags
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - se_fl_test
    - h2c_read0_pending
    - se_fl_set
    - 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:1912,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:1914,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_h2.c:1915,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:1918,1
    - Dst: bl_put
      Src: /src/haproxy/src/mux_h2.c:1919,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:1924,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:1928,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:1939,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:1942,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:1943,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:1943,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_h2.c:1944,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:1945,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:1947,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1948
      start: 1907
    functionDepth: 3
    functionLinenumber: 1907
    functionLinenumberEnd: 1948
    functionName: h2s_destroy
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - offer_buffers
    - tasklet_free
    - bl_put
    - pool_free
    - h2c_restart_reading
    - se_fl_test
    - BUG_ON
    - h2s_close
    - TRACE_ENTER
    - eb32_delete
    - TRACE_LEAVE
    - h2_remove_from_list
    - b_free
    - 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:1961,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_h2.c:1963,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h2.c:1967,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_h2.c:1969,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_h2.c:1975,1
    - Dst: memset
      Src: /src/haproxy/src/mux_h2.c:1988,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_h2.c:2006,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2009,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2010,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2012,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:2015,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 47
    argCount: 2
    argNames:
    - h2c
    - id
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1956
    functionDepth: 1
    functionLinenumber: 1956
    functionLinenumberEnd: 2017
    functionName: h2s_new
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - tasklet_new
    - memset
    - pool_free
    - TRACE_ENTER
    - pool_alloc
    - LIST_INIT
    - eb32_insert
    - TRACE_LEAVE
    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:2030,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:2033,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:2033,1
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:2035,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2036,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2037,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h2.c:2038,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h2.c:2039,1
    - Dst: h2s_new
      Src: /src/haproxy/src/mux_h2.c:2043,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/mux_h2.c:2047,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2052,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2055,1
    - Dst: se_expect_no_data
      Src: /src/haproxy/src/mux_h2.c:2061,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2067,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/mux_h2.c:2074,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/mux_h2.c:2076,1
    - Dst: h2_frt_has_too_many_sc
      Src: /src/haproxy/src/mux_h2.c:2092,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:2095,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2096,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:2100,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2102,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:2104,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2105,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: 2107
      start: 2025
    functionDepth: 4
    functionLinenumber: 2025
    functionLinenumberEnd: 2107
    functionName: h2c_frt_stream_new
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - sedesc_new
    - session_inc_http_req_ctr
    - sc_new_from_endp
    - TRACE_LEAVE
    - conn_reverse_in_preconnect
    - ns_to_ms
    - h2c_report_glitch
    - sess_log
    - se_fl_set
    - BUG_ON
    - h2s_destroy
    - h2s_new
    - session_inc_http_err_ctr
    - h2c_max_concurrent_streams
    - h2_frt_has_too_many_sc
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - se_expect_no_data
    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:2117,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:2120,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:2120,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2123,1
    - Dst: h2_streams_left
      Src: /src/haproxy/src/mux_h2.c:2127,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2128,1
    - Dst: h2s_new
      Src: /src/haproxy/src/mux_h2.c:2133,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2135,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_h2.c:2139,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2140,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:2141,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:2150,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:2153,1
    - Dst: likely
      Src: /src/haproxy/src/mux_h2.c:2156,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2157,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2159,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: 2161
      start: 2113
    functionDepth: 4
    functionLinenumber: 2113
    functionLinenumberEnd: 2161
    functionName: h2c_bck_stream_new
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - h2s_new
    - se_fl_set
    - conn_reverse_in_preconnect
    - BUG_ON
    - h2s_destroy
    - TRACE_ENTER
    - TRACE_STATE
    - TRACE_ERROR
    - h2_streams_left
    - likely
    - sc_attach_mux
    - TRACE_LEAVE
    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:2177,1
    - Dst: chunk_init
      Src: /src/haproxy/src/mux_h2.c:2179,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/mux_h2.c:2180,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2188,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2194,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2199,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2200,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2211,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2212,1
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:2215,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2222,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2223,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2240,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_h2.c:2241,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:2244,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2246,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2248,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2254,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2254,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2255,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2257,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2263,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2268,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2270
      start: 2167
    functionDepth: 2
    functionLinenumber: 2167
    functionLinenumberEnd: 2270
    functionName: h2c_send_settings
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h2c_error
    - chunk_memcpy
    - h2c_max_concurrent_streams
    - TRACE_ENTER
    - ist2
    - h2_get_buf
    - chunk_init
    - h2_set_frame_size
    - b_istput
    - br_tail_add
    - br_tail
    - chunk_memcat
    - write_n32
    - TRACE_LEAVE
    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:2281,1
    - Dst: b_isteq
      Src: /src/haproxy/src/mux_h2.c:2283,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:2283,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:2283,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2285,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2289,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2290,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2291,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:2292,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2294,1
    - Dst: h2c_send_settings
      Src: /src/haproxy/src/mux_h2.c:2300,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:2302,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2304,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2306
      start: 2276
    functionDepth: 3
    functionLinenumber: 2276
    functionLinenumberEnd: 2306
    functionName: h2c_frt_recv_preface
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - unlikely
    - b_data
    - h2c_error
    - h2c_report_glitch
    - TRACE_ENTER
    - TRACE_ERROR
    - b_del
    - h2c_send_settings
    - TRACE_LEAVE
    - b_isteq
    - ist
    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:2317,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2319,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2321,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:2327,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2329,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:2329,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2330,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2332,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2339,1
    - Dst: h2c_send_settings
      Src: /src/haproxy/src/mux_h2.c:2345,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2347,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2349
      start: 2312
    functionDepth: 3
    functionLinenumber: 2312
    functionLinenumberEnd: 2349
    functionName: h2c_bck_send_preface
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_data
    - h2c_error
    - TRACE_ENTER
    - h2_get_buf
    - b_istput
    - h2c_send_settings
    - br_tail_add
    - TRACE_LEAVE
    - br_tail
    - ist
    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:2367,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2375,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2380,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2381,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2383,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2385,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2394,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2394,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2395,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2397,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2410,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2422,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2431,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2432,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2436,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2437,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2441,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2442,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2445,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 70
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2361
    functionDepth: 2
    functionLinenumber: 2361
    functionLinenumberEnd: 2447
    functionName: h2c_send_goaway_error
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - unlikely
    - h2c_report_term_evt
    - h2c_error
    - TRACE_ENTER
    - ist2
    - h2_get_buf
    - memcpy
    - b_istput
    - br_tail_add
    - br_tail
    - write_n32
    - TRACE_LEAVE
    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:2464,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2482,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2483,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2484,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2486,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2488,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2494,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2494,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2495,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2497,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2504,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:2512,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2514,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2458
    functionDepth: 3
    functionLinenumber: 2458
    functionLinenumberEnd: 2516
    functionName: h2s_send_rst_stream
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h2c_error
    - h2s_close
    - TRACE_ENTER
    - ist2
    - h2_get_buf
    - memcpy
    - b_istput
    - br_tail_add
    - br_tail
    - write_n32
    - TRACE_LEAVE
    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:2534,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2545,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2547,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2548,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2550,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2552,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2558,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2558,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2559,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2561,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2568,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2580,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2585,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2588,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:2591,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:2597,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2601,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2602,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2604
      start: 2528
    functionDepth: 3
    functionLinenumber: 2528
    functionLinenumberEnd: 2604
    functionName: h2c_send_rst_stream
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - unlikely
    - h2c_error
    - h2s_close
    - TRACE_ENTER
    - ist2
    - h2_get_buf
    - memcpy
    - b_istput
    - br_tail_add
    - TRACE_LEAVE
    - br_tail
    - write_n32
    - se_report_term_evt
    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:2619,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2627,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2628,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2630,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2632,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2638,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2638,1
    - Dst: likely
      Src: /src/haproxy/src/mux_h2.c:2639,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2643,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2649,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2653,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2655
      start: 2612
    functionDepth: 2
    functionLinenumber: 2612
    functionLinenumberEnd: 2655
    functionName: h2_send_empty_data_es
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2c_error
    - TRACE_ENTER
    - ist2
    - h2_get_buf
    - memcpy
    - b_istput
    - likely
    - br_tail_add
    - br_tail
    - write_n32
    - TRACE_LEAVE
    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:2666,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:2668,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:2670,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:2671,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:2675,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:2676,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:2680,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:2686,1
    - Dst: h2s_propagate_term_flags
      Src: /src/haproxy/src/mux_h2.c:2687,1
    - Dst: h2s_alert
      Src: /src/haproxy/src/mux_h2.c:2693,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2694,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2695
      start: 2662
    functionDepth: 4
    functionLinenumber: 2662
    functionLinenumberEnd: 2695
    functionName: h2s_wake_one_stream
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h2s_destroy
    - h2s_close
    - TRACE_ENTER
    - se_fl_set_error
    - h2s_no_longer_receiving
    - h2c_read0_pending
    - h2s_propagate_term_flags
    - h2s_alert
    - h2s_sc
    - TRACE_LEAVE
    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:2705,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_h2.c:2708,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:2710,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:2711,1
    - Dst: h2s_wake_one_stream
      Src: /src/haproxy/src/mux_h2.c:2712,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/mux_h2.c:2716,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:2718,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:2721,1
    - Dst: h2s_wake_one_stream
      Src: /src/haproxy/src/mux_h2.c:2722,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2725,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - h2c
    - last
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2700
    functionDepth: 5
    functionLinenumber: 2700
    functionLinenumberEnd: 2726
    functionName: h2_wake_some_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - eb32_lookup_ge
    - eb32_lookup
    - container_of
    - eb32_next
    - TRACE_ENTER
    - TRACE_LEAVE
    - h2s_wake_one_stream
    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:2737,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_h2.c:2739,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:2741,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:2742,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:2744,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:2747,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:2749,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2752,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2753
      start: 2732
    functionDepth: 1
    functionLinenumber: 2732
    functionLinenumberEnd: 2753
    functionName: h2c_unblock_sfctl
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2s_mws
    - container_of
    - eb32_first
    - eb32_next
    - LIST_DEL_INIT
    - TRACE_ENTER
    - LIST_APPEND
    - TRACE_LEAVE
    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:2765,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:2776,1
    - Dst: h2_get_n16
      Src: /src/haproxy/src/mux_h2.c:2783,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:2784,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2793,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:2794,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2803,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:2805,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2813,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2814,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2816,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:2826,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:2827,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:2829,1
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:2836,1
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:2837,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2851,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:2855,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2856,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:2858,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 86
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2760
    functionDepth: 2
    functionLinenumber: 2760
    functionLinenumberEnd: 2860
    functionName: h2c_handle_settings
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h2_get_n16
    - HA_ATOMIC_INC
    - sess_log
    - b_data
    - h2c_max_concurrent_streams
    - h2c_error
    - h2c_report_glitch
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h2_get_n32
    - TRACE_LEAVE
    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:2871,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2873,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2878,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2880,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2886,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2886,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2887,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2889,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2895,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2900,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2902
      start: 2865
    functionDepth: 2
    functionLinenumber: 2865
    functionLinenumberEnd: 2902
    functionName: h2c_ack_settings
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h2c_error
    - TRACE_ENTER
    - ist2
    - h2_get_buf
    - b_istput
    - br_tail_add
    - br_tail
    - memcpy
    - TRACE_LEAVE
    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:2912,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:2915,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2909
    functionDepth: 2
    functionLinenumber: 2909
    functionLinenumberEnd: 2923
    functionName: h2c_handle_ping
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - h2c_update_timeout
    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:2935,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:2938,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2939,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:2940,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:2942,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:2944,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:2950,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:2950,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:2951,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:2953,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:2959,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2964,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - h2c
    - sid
    - increment
    argTypes:
    - struct h2c*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2966
      start: 2929
    functionDepth: 2
    functionLinenumber: 2929
    functionLinenumberEnd: 2966
    functionName: h2c_send_window_update
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - h2c_error
    - TRACE_ENTER
    - ist2
    - h2_get_buf
    - memcpy
    - b_istput
    - br_tail_add
    - br_tail
    - write_n32
    - TRACE_LEAVE
    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:2976,1
    - Dst: h2c_send_window_update
      Src: /src/haproxy/src/mux_h2.c:2990,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:2995,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2997
      start: 2972
    functionDepth: 3
    functionLinenumber: 2972
    functionLinenumberEnd: 2997
    functionName: h2c_send_conn_wu
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - h2c_send_window_update
    - TRACE_ENTER
    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:3012,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:3057,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:3058,1
    - Dst: bl_size
      Src: /src/haproxy/src/mux_h2.c:3058,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:3060,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3106
      start: 3006
    functionDepth: 2
    functionLinenumber: 3006
    functionLinenumberEnd: 3106
    functionName: h2c_update_strm_rx_win
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - bl_size
    - h2c_st_by_id
    - MAX
    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:3117,1
    - Dst: h2c_send_window_update
      Src: /src/haproxy/src/mux_h2.c:3123,1
    - Dst: h2c_st_by_id
      Src: /src/haproxy/src/mux_h2.c:3126,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3133
      start: 3112
    functionDepth: 3
    functionLinenumber: 3112
    functionLinenumberEnd: 3133
    functionName: h2c_send_strm_wu
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - h2c_st_by_id
    - h2c_send_window_update
    - TRACE_ENTER
    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:3146,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:3149,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:3155,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3158,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:3163,1
    - Dst: h2_get_buf_bytes
      Src: /src/haproxy/src/mux_h2.c:3169,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:3172,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:3174,1
    - Dst: b_istput
      Src: /src/haproxy/src/mux_h2.c:3180,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:3180,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:3181,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:3183,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3189,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3194,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - h2c
    - ack
    argTypes:
    - struct h2c*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3196
      start: 3140
    functionDepth: 2
    functionLinenumber: 3140
    functionLinenumberEnd: 3196
    functionName: h2c_send_ping
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - unlikely
    - b_data
    - h2c_error
    - TRACE_ENTER
    - h2_get_buf_bytes
    - ist2
    - h2_get_buf
    - b_istput
    - br_tail_add
    - br_tail
    - memcpy
    - TRACE_LEAVE
    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:3208,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3211,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3216,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3226,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3227,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3229,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:3240,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:3240,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3241,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3242,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3244,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:3249,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:3251,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:3254,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3260,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3261,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3263,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3268,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3269,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3278,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3282,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3284,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3288,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3290,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 70
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3292
      start: 3203
    functionDepth: 2
    functionLinenumber: 3203
    functionLinenumberEnd: 3292
    functionName: h2c_handle_window_update
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h2s_mws
    - HA_ATOMIC_INC
    - b_data
    - h2c_error
    - h2c_report_glitch
    - LIST_DEL_INIT
    - TRACE_ENTER
    - LIST_APPEND
    - TRACE_ERROR
    - h2s_error
    - h2_get_n32
    - TRACE_LEAVE
    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:3303,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3305,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3306,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3311,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3312,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:3315,1
    - Dst: h2_wake_some_streams
      Src: /src/haproxy/src/mux_h2.c:3316,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3319
      start: 3299
    functionDepth: 6
    functionLinenumber: 3299
    functionLinenumberEnd: 3319
    functionName: h2c_handle_goaway
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h2_wake_some_streams
    - h2c_report_term_evt
    - b_data
    - TRACE_ENTER
    - h2_get_n32
    - TRACE_LEAVE
    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:3328,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3331,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3332,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3337,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3339,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3340,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3341,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3342,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3343,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3346,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3348
      start: 3326
    functionDepth: 2
    functionLinenumber: 3326
    functionLinenumberEnd: 3348
    functionName: h2c_handle_priority
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - b_data
    - h2c_error
    - h2c_report_glitch
    - TRACE_ENTER
    - TRACE_ERROR
    - h2_get_n32
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int h2c_handle_priority(struct h2c *h2c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:3356,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3359,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3360,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3367,1
    - Dst: h2_get_n32
      Src: /src/haproxy/src/mux_h2.c:3371,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:3372,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:3374,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:3375,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:3376,1
    - Dst: h2s_alert
      Src: /src/haproxy/src/mux_h2.c:3381,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3387
      start: 3354
    functionDepth: 3
    functionLinenumber: 3354
    functionLinenumberEnd: 3387
    functionName: h2c_handle_rst_stream
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_data
    - h2s_close
    - TRACE_ENTER
    - se_fl_set_error
    - TRACE_LEAVE
    - h2s_alert
    - h2s_sc
    - h2_get_n32
    - se_report_term_evt
    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:3403,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:3405,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3410,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:3410,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3419,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:3419,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3420,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3425,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3425,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3428,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3428,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:3429,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:3446,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3447,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3448,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3448,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3457,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:3458,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3460,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3466,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3467,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3468,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:3469,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h2.c:3470,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h2.c:3471,1
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:3478,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3484,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:3485,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3486,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:3487,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h2.c:3488,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h2.c:3489,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3493,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:3520,1
    - Dst: session_inc_http_req_ctr
      Src: /src/haproxy/src/mux_h2.c:3521,1
    - Dst: session_inc_http_err_ctr
      Src: /src/haproxy/src/mux_h2.c:3522,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3525,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3530,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3534,1
    - Dst: h2c_frt_stream_new
      Src: /src/haproxy/src/mux_h2.c:3543,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3546,1
    - Dst: h2s_propagate_term_flags
      Src: /src/haproxy/src/mux_h2.c:3555,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:3559,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:3563,1
    - Dst: h2s_count_as_receiving
      Src: /src/haproxy/src/mux_h2.c:3566,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3568,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3572,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:3574,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3575,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:3587,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3590,1
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:3604,1
    - Dst: h2c_max_concurrent_streams
      Src: /src/haproxy/src/mux_h2.c:3606,1
    - Dst: h2c_send_goaway_error
      Src: /src/haproxy/src/mux_h2.c:3607,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 153
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3612
      start: 3396
    functionDepth: 5
    functionLinenumber: 3396
    functionLinenumberEnd: 3612
    functionName: h2c_frt_handle_headers
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - h2c_dec_hdrs
    - h2s_get_rxbuf
    - h2s_error
    - h2c_frt_stream_new
    - session_inc_http_req_ctr
    - b_full
    - TRACE_LEAVE
    - b_data
    - h2c_error
    - h2c_report_glitch
    - TRACE_USER
    - h2s_count_as_receiving
    - sess_log
    - h2s_rxbuf_tail
    - h2s_close
    - h2s_propagate_term_flags
    - h2_release_buf
    - b_size
    - h2c_send_goaway_error
    - session_inc_http_err_ctr
    - h2c_max_concurrent_streams
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h2s_no_longer_receiving
    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:3626,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:3628,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3633,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:3633,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3642,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3648,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:3648,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3649,1
    - Dst: h2c_dec_hdrs
      Src: /src/haproxy/src/mux_h2.c:3654,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3654,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3658,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3664,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3665,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3666,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3668,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3683,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3684,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3686,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:3693,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:3696,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:3700,1
    - Dst: h2s_count_as_receiving
      Src: /src/haproxy/src/mux_h2.c:3703,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:3711,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3715,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:3715,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3716,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3719,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:3727,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:3730,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3731,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 84
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3733
      start: 3619
    functionDepth: 3
    functionLinenumber: 3619
    functionLinenumberEnd: 3733
    functionName: h2c_bck_handle_headers
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - h2c_dec_hdrs
    - h2s_get_rxbuf
    - h2s_error
    - b_full
    - TRACE_LEAVE
    - b_data
    - h2c_report_glitch
    - TRACE_USER
    - h2s_count_as_receiving
    - se_fl_test
    - h2s_rxbuf_tail
    - h2s_close
    - h2_release_buf
    - b_size
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h2s_no_longer_receiving
    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:3742,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:3748,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:3753,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:3753,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3768,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3769,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3771,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3776,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3777,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3779,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3791,1
    - Dst: h2_frt_transfer_data
      Src: /src/haproxy/src/mux_h2.c:3796,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:3802,1
    - Dst: h2s_no_longer_receiving
      Src: /src/haproxy/src/mux_h2.c:3828,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:3832,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3836,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3837,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3839,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:3849,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:3853,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3863,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3866,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 88
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3868
      start: 3738
    functionDepth: 3
    functionLinenumber: 3738
    functionLinenumberEnd: 3868
    functionName: h2c_handle_data
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_frt_transfer_data
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - b_data
    - h2c_report_glitch
    - h2s_close
    - TRACE_ENTER
    - TRACE_STATE
    - TRACE_ERROR
    - h2s_error
    - h2s_no_longer_receiving
    - b_full
    - b_size
    - h2s_sc
    - TRACE_LEAVE
    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:3878,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3885,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3886,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3887,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:3890,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3892,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3893,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3899,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3900,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3901,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3902,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3903,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:3914,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3915,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:3916,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3917,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:3918,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3921,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3922,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3924,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:3940,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3951,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:3952,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3953,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:3958,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:3985,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:3986,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:3988,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4010,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4011,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4012,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4017,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 2
    argNames:
    - h2c
    - h2s
    argTypes:
    - struct h2c*
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4019
      start: 3876
    functionDepth: 2
    functionLinenumber: 3876
    functionLinenumberEnd: 4019
    functionName: h2_frame_check_vs_state
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - sess_log
    - h2c_error
    - h2c_report_glitch
    - TRACE_ENTER
    - TRACE_ERROR
    - h2s_error
    - h2_ft_bit
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int h2_frame_check_vs_state(struct h2c *h2c, struct h2s *h2s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4037,1
    - Dst: conn_reverse
      Src: /src/haproxy/src/mux_h2.c:4039,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4040,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:4044,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_h2.c:4047,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_h2.c:4048,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4054,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h2.c:4057,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h2.c:4060,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h2.c:4061,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_h2.c:4062,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/mux_h2.c:4066,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4074,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/mux_h2.c:4077,1
    - Dst: proxy_inc_fe_cum_sess_ver_ctr
      Src: /src/haproxy/src/mux_h2.c:4080,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:4082,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:4082,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:4083,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4087,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4088,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:4093,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4094,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4101,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4101,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:4101,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h2.c:4102,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4109,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:4109,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:4109,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h2.c:4110,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:4116,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4118,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4122,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4123,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 57
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4125
      start: 4033
    functionDepth: 4
    functionLinenumber: 4033
    functionLinenumberEnd: 4125
    functionName: h2_conn_reverse
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - __objt_listener
    - EXTRA_COUNTERS_GET
    - task_destroy
    - LIST_INLIST
    - TRACE_LEAVE
    - proxy_inc_fe_cum_sess_ver_ctr
    - conn_reverse_in_preconnect
    - h2c_error
    - tick_isset
    - TRACE_USER
    - xprt_set_idle
    - HA_ATOMIC_OR
    - __objt_server
    - BUG_ON
    - LIST_APPEND
    - h2c_update_timeout
    - task_new_here
    - conn_reverse
    - TRACE_ENTER
    - TRACE_ERROR
    - conn_is_back
    - conn_idle_ping
    - srv_add_to_idle_list
    linkageType: ''
    returnType: int
    signature: int h2_conn_reverse(struct h2c *h2c)
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4135,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4140,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4142,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4145,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4149,1
    - Dst: h2c_frt_recv_preface
      Src: /src/haproxy/src/mux_h2.c:4149,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4152,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4154,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4156,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4158,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:4160,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4164,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4167,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4175,1
    - Dst: h2_get_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:4176,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4180,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4181,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:4184,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4191,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4192,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4193,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:4196,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4197,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4203,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4204,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4205,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:4208,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4217,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:4227,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4230,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4231,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4237,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4242,1
    - Dst: h2_peek_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:4243,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4249,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4250,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4251,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:4254,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4256,1
    - Dst: h2c_update_strm_rx_win
      Src: /src/haproxy/src/mux_h2.c:4260,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4264,1
    - Dst: h2c_send_strm_wu
      Src: /src/haproxy/src/mux_h2.c:4265,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:4271,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4280,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4281,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4282,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:4284,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4285,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4290,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:4295,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4298,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4299,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4303,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:4305,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4306,1
    - Dst: h2_ft_bit
      Src: /src/haproxy/src/mux_h2.c:4310,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:4314,1
    - Dst: h2_skip_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:4316,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4325,1
    - Dst: h2_frame_check
      Src: /src/haproxy/src/mux_h2.c:4329,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4331,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4332,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4333,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:4335,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4336,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:4349,1
    - Dst: h2c_st_by_id
      Src: /src/haproxy/src/mux_h2.c:4359,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:4361,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:4362,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4362,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:4362,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:4363,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:4366,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4368,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:4369,1
    - Dst: h2s_notify_recv
      Src: /src/haproxy/src/mux_h2.c:4370,1
    - Dst: h2_frame_check_vs_state
      Src: /src/haproxy/src/mux_h2.c:4375,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4376,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4383,1
    - Dst: h2c_handle_settings
      Src: /src/haproxy/src/mux_h2.c:4384,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4386,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4389,1
    - Dst: h2c_ack_settings
      Src: /src/haproxy/src/mux_h2.c:4390,1
    - Dst: conn_is_reverse
      Src: /src/haproxy/src/mux_h2.c:4392,1
    - Dst: h2_conn_reverse
      Src: /src/haproxy/src/mux_h2.c:4394,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4401,1
    - Dst: h2c_handle_ping
      Src: /src/haproxy/src/mux_h2.c:4402,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4406,1
    - Dst: h2c_send_ping
      Src: /src/haproxy/src/mux_h2.c:4407,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4413,1
    - Dst: h2c_handle_window_update
      Src: /src/haproxy/src/mux_h2.c:4414,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:4424,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:4425,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:4426,1
    - Dst: sess_log
      Src: /src/haproxy/src/mux_h2.c:4428,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4429,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4434,1
    - Dst: h2c_bck_handle_headers
      Src: /src/haproxy/src/mux_h2.c:4436,1
    - Dst: h2c_frt_handle_headers
      Src: /src/haproxy/src/mux_h2.c:4438,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4444,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4449,1
    - Dst: h2c_handle_data
      Src: /src/haproxy/src/mux_h2.c:4450,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4452,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4462,1
    - Dst: h2c_handle_priority
      Src: /src/haproxy/src/mux_h2.c:4463,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4469,1
    - Dst: h2c_handle_rst_stream
      Src: /src/haproxy/src/mux_h2.c:4470,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4472,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4477,1
    - Dst: h2c_handle_goaway
      Src: /src/haproxy/src/mux_h2.c:4478,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:4480,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4485,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_h2.c:4490,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4490,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:4491,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4499,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4504,1
    - Dst: h2c_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:4505,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4514,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_h2.c:4515,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4515,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:4516,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4520,1
    - Dst: h2c_update_strm_rx_win
      Src: /src/haproxy/src/mux_h2.c:4526,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4528,1
    - Dst: h2c_send_strm_wu
      Src: /src/haproxy/src/mux_h2.c:4529,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:4534,1
    - Dst: h2c_send_conn_wu
      Src: /src/haproxy/src/mux_h2.c:4535,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:4545,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:4545,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:4549,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:4549,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:4554,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:4557,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:4558,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4558,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:4558,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:4559,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:4562,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4564,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:4565,1
    - Dst: h2s_notify_recv
      Src: /src/haproxy/src/mux_h2.c:4566,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4570,1
    - Dst: h2c_unblock_sfctl
      Src: /src/haproxy/src/mux_h2.c:4571,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4575,1
    CyclomaticComplexity: 130
    EdgeCount: 130
    ICount: 327
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4577
      start: 4128
    functionDepth: 7
    functionLinenumber: 4128
    functionLinenumberEnd: 4577
    functionName: h2_process_demux
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - conn_is_reverse
    - HA_ATOMIC_INC
    - h2c_handle_priority
    - h2c_unblock_sfctl
    - h2c_frt_handle_headers
    - unlikely
    - h2c_report_term_evt
    - h2c_send_conn_wu
    - h2c_st_by_id
    - h2c_handle_data
    - h2c_handle_window_update
    - b_peek
    - h2c_read0_pending
    - b_full
    - h2s_notify_recv
    - eb_is_empty
    - TRACE_LEAVE
    - h2c_handle_settings
    - MIN
    - h2c_error
    - b_data
    - h2c_report_glitch
    - h2_peek_frame_hdr
    - h2c_ack_settings
    - h2c_handle_ping
    - h2c_send_strm_wu
    - h2_frame_check_vs_state
    - h2s_sc
    - sess_log
    - se_fl_set
    - se_fl_test
    - h2c_handle_goaway
    - h2c_send_rst_stream
    - TRACE_PROTO
    - h2s_rxbuf_head
    - h2c_handle_rst_stream
    - h2_conn_reverse
    - h2c_frt_recv_preface
    - TRACE_STATE
    - h2_skip_frame_hdr
    - TRACE_ENTER
    - h2c_update_strm_rx_win
    - TRACE_ERROR
    - h2_get_frame_hdr
    - b_del
    - h2_ft_bit
    - h2c_bck_handle_headers
    - h2c_send_ping
    - h2_frame_check
    linkageType: ''
    returnType: void
    signature: void h2_process_demux(struct h2c *h2c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4584,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:4602,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:4608,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:4614,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4618,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 2
    argNames:
    - h2c
    - head
    argTypes:
    - struct h2c*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4580
    functionDepth: 1
    functionLinenumber: 4580
    functionLinenumberEnd: 4619
    functionName: h2_resume_each_sending_h2s
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - tasklet_wakeup
    - LIST_DEL_INIT
    - TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void h2_resume_each_sending_h2s(struct h2c *h2c, struct list *head)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:4602,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:4608,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:4614,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4616
      start: 4586
    functionDepth: 1
    functionLinenumber: 4586
    functionLinenumberEnd: 4616
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 23
    functionsReached:
    - tasklet_wakeup
    - LIST_DEL_INIT
    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:4634,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:4637,1
    - Dst: h2_resume_each_sending_h2s
      Src: /src/haproxy/src/mux_h2.c:4640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4642
      start: 4630
    functionDepth: 2
    functionLinenumber: 4630
    functionLinenumberEnd: 4642
    functionName: h2_remove_from_list
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - LIST_INLIST
    - LIST_DEL_INIT
    - h2_resume_each_sending_h2s
    linkageType: ''
    returnType: void
    signature: void h2_remove_from_list(struct h2s *h2s)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4649,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4651,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4652,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4653,1
    - Dst: h2c_bck_send_preface
      Src: /src/haproxy/src/mux_h2.c:4653,1
    - Dst: h2c_update_strm_rx_win
      Src: /src/haproxy/src/mux_h2.c:4667,1
    - Dst: h2c_send_strm_wu
      Src: /src/haproxy/src/mux_h2.c:4669,1
    - Dst: h2c_send_conn_wu
      Src: /src/haproxy/src/mux_h2.c:4674,1
    - Dst: h2c_send_ping
      Src: /src/haproxy/src/mux_h2.c:4679,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:4681,1
    - Dst: h2_resume_each_sending_h2s
      Src: /src/haproxy/src/mux_h2.c:4690,1
    - Dst: h2_resume_each_sending_h2s
      Src: /src/haproxy/src/mux_h2.c:4691,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:4694,1
    - Dst: h2c_send_goaway_error
      Src: /src/haproxy/src/mux_h2.c:4697,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4706,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4709,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 53
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4711
      start: 4647
    functionDepth: 4
    functionLinenumber: 4647
    functionLinenumberEnd: 4711
    functionName: h2_process_mux
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - unlikely
    - h2_resume_each_sending_h2s
    - h2c_send_conn_wu
    - TRACE_ENTER
    - h2c_bck_send_preface
    - h2c_update_strm_rx_win
    - TRACE_USER
    - h2c_send_goaway_error
    - h2c_send_strm_wu
    - h2c_send_ping
    - TRACE_LEAVE
    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:4724,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4727,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4728,1
    - Dst: h2_recv_allowed
      Src: /src/haproxy/src/mux_h2.c:4731,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4732,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:4736,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4739,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4743,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_h2.c:4752,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:4756,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_h2.c:4758,1
    - Dst: h2_recv_allowed
      Src: /src/haproxy/src/mux_h2.c:4760,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:4761,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_h2.c:4762,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:4764,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_h2.c:4768,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:4769,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4773,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:4774,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4778,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:4779,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4783,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4785,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:4789,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4791
      start: 4717
    functionDepth: 2
    functionLinenumber: 4717
    functionLinenumberEnd: 4791
    functionName: h2_recv
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - buf_room_for_htx_data
    - conn_xprt_read0_pending
    - b_data
    - TRACE_DATA
    - TRACE_STATE
    - TRACE_ENTER
    - h2_recv_allowed
    - h2_get_buf
    - b_room
    - struct connection*::xprt::subscribe
    - struct connection*::xprt::rcv_buf
    - h2_release_buf
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int h2_recv(struct h2c *h2c)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4802,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4805,1
    - Dst: h2_release_mbuf
      Src: /src/haproxy/src/mux_h2.c:4808,1
    - Dst: h2_process_mux
      Src: /src/haproxy/src/mux_h2.c:4841,1
    - Dst: br_count
      Src: /src/haproxy/src/mux_h2.c:4853,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_h2.c:4864,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:4864,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_h2.c:4864,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4865,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_h2.c:4866,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4866,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:4874,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:4875,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4876,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:4881,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:4886,1
    - Dst: br_single
      Src: /src/haproxy/src/mux_h2.c:4898,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:4904,1
    - Dst: h2_release_mbuf
      Src: /src/haproxy/src/mux_h2.c:4907,1
    - Dst: h2_resume_each_sending_h2s
      Src: /src/haproxy/src/mux_h2.c:4915,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:4919,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4920,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:4929,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_h2.c:4930,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:4932,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 75
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4935
      start: 4796
    functionDepth: 5
    functionLinenumber: 4796
    functionLinenumberEnd: 4935
    functionName: h2_send
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - offer_buffers
    - br_count
    - h2c_report_term_evt
    - br_single
    - TRACE_DATA
    - h2_process_mux
    - b_free
    - b_data
    - br_head
    - struct connection*::xprt::subscribe
    - br_del_head
    - b_size
    - br_data
    - h2_resume_each_sending_h2s
    - TRACE_STATE
    - TRACE_ENTER
    - b_del
    - h2_release_mbuf
    - struct connection*::xprt::snd_buf
    linkageType: ''
    returnType: int
    signature: int h2_send(struct h2c *h2c)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:4950,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:4956,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:4957,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4962,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_h2.c:4970,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:4974,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:4978,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:4982,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:4987,1
    - Dst: h2_recv
      Src: /src/haproxy/src/mux_h2.c:4989,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:4990,1
    - Dst: h2_process
      Src: /src/haproxy/src/mux_h2.c:4991,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h2.c:5005,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_h2.c:5009,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_h2.c:5015,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5016,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/mux_h2.c:5017,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5018,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5028,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5032,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5033,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 63
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5035
      start: 4938
    functionDepth: 6
    functionLinenumber: 4938
    functionLinenumberEnd: 5035
    functionName: h2_io_cb
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_recv
    - tasklet_free
    - h2_release
    - h2_process
    - conn_delete_from_tree
    - h2_send
    - b_data
    - objt_server
    - TRACE_ENTER
    - _srv_add_idle
    - ASSUME_NONNULL
    - HA_SPIN_LOCK
    - session_detach_idle_conn
    - HA_SPIN_UNLOCK
    - session_reinsert_idle_conn
    - TRACE_LEAVE
    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:5044,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:5044,1
    - Dst: bl_avail
      Src: /src/haproxy/src/mux_h2.c:5044,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5047,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5050,1
    - Dst: h2_process_demux
      Src: /src/haproxy/src/mux_h2.c:5054,1
    - Dst: h2_recv_allowed
      Src: /src/haproxy/src/mux_h2.c:5064,1
    - Dst: h2_recv
      Src: /src/haproxy/src/mux_h2.c:5068,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5069,1
    - Dst: h2_may_demux
      Src: /src/haproxy/src/mux_h2.c:5069,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:5072,1
    - Dst: session_add_glitch_ctr
      Src: /src/haproxy/src/mux_h2.c:5075,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_h2.c:5078,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:5083,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:5085,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:5091,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_h2.c:5092,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_h2.c:5096,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5106,1
    - Dst: h2c_send_goaway_error
      Src: /src/haproxy/src/mux_h2.c:5110,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_h2.c:5125,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:5128,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:5129,1
    - Dst: h2s_notify_recv
      Src: /src/haproxy/src/mux_h2.c:5130,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:5131,1
    - Dst: h2c_read0_pending
      Src: /src/haproxy/src/mux_h2.c:5135,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5137,1
    - Dst: h2_wake_some_streams
      Src: /src/haproxy/src/mux_h2.c:5139,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5141,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5143,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5144,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5150,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:5151,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5152,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5158,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:5159,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5160,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5164,1
    - Dst: h2_release_buf
      Src: /src/haproxy/src/mux_h2.c:5165,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5169,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:5170,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:5171,1
    - Dst: h2_release_mbuf
      Src: /src/haproxy/src/mux_h2.c:5172,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:5174,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:5177,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:5180,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5182,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 81
    argCount: 1
    argNames:
    - h2c
    argTypes:
    - struct h2c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5184
      start: 5041
    functionDepth: 8
    functionLinenumber: 5041
    functionLinenumberEnd: 5184
    functionName: h2_process
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - eb32_lookup_ge
    - unlikely
    - h2c_restart_reading
    - h2_send
    - h2_process_demux
    - HA_SPIN_LOCK
    - h2s_notify_recv
    - h2c_read0_pending
    - eb_is_empty
    - TRACE_LEAVE
    - h2_recv
    - h2_release
    - h2_wake_some_streams
    - MIN
    - b_data
    - container_of
    - eb32_next
    - tick_remain
    - tick_isset
    - h2_may_demux
    - session_add_glitch_ctr
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - bl_avail
    - se_fl_test
    - h2_recv_allowed
    - h2c_update_timeout
    - MAX
    - h2_release_buf
    - h2c_send_goaway_error
    - br_data
    - statistical_prng_range
    - conn_delete_from_tree
    - TRACE_STATE
    - TRACE_ENTER
    - h2_release_mbuf
    - b_reset
    linkageType: ''
    returnType: int
    signature: int h2_process(struct h2c *h2c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5192,1
    - Dst: h2_process
      Src: /src/haproxy/src/mux_h2.c:5193,1
    - Dst: h2_wake_some_streams
      Src: /src/haproxy/src/mux_h2.c:5195,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:5202,1
    - Dst: conn_reverse_in_preconnect
      Src: /src/haproxy/src/mux_h2.c:5202,1
    - Dst: h2c_is_dead
      Src: /src/haproxy/src/mux_h2.c:5202,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5203,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5204,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5210
      start: 5187
    functionDepth: 9
    functionLinenumber: 5187
    functionLinenumberEnd: 5210
    functionName: h2_wake
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h2_release
    - h2_wake_some_streams
    - h2c_is_dead
    - unlikely
    - h2_process
    - conn_reverse_in_preconnect
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int h2_wake(struct connection *conn)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h2.c:5221,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5223,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5227,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5234,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5240,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5241,1
    - Dst: h2c_may_expire
      Src: /src/haproxy/src/mux_h2.c:5245,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5249,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:5256,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5257,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:5258,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5259,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:5267,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_h2.c:5269,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5271,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5274,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5282,1
    - Dst: h2c_may_expire
      Src: /src/haproxy/src/mux_h2.c:5282,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5284,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:5285,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:5286,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:5287,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:5288,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_h2.c:5289,1
    - Dst: h2c_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:5293,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_h2.c:5297,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5301,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5306,1
    - Dst: h2_wake_some_streams
      Src: /src/haproxy/src/mux_h2.c:5307,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5309,1
    - Dst: h2c_send_goaway_error
      Src: /src/haproxy/src/mux_h2.c:5316,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5319,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_h2.c:5319,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_h2.c:5323,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:5323,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_h2.c:5323,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5324,1
    - Dst: struct h2c*::conn::xprt::snd_buf
      Src: /src/haproxy/src/mux_h2.c:5325,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5325,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:5328,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5329,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:5331,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:5337,1
    - Dst: br_single
      Src: /src/haproxy/src/mux_h2.c:5343,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_h2.c:5348,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_h2.c:5349,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_h2.c:5350,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5356,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5357,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5359,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 91
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5361
      start: 5218
    functionDepth: 6
    functionLinenumber: 5218
    functionLinenumberEnd: 5361
    functionName: h2_timeout_task
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - offer_buffers
    - h2c_report_term_evt
    - h2_send
    - br_single
    - task_destroy
    - HA_SPIN_LOCK
    - session_detach_idle_conn
    - eb_is_empty
    - b_free
    - TRACE_LEAVE
    - h2_release
    - h2_wake_some_streams
    - tick_is_expired
    - struct h2c*::conn::xprt::snd_buf
    - h2c_error
    - b_data
    - tick_isset
    - conn_xprt_ready
    - tick_add_ifset
    - HA_SPIN_UNLOCK
    - tasklet_wakeup
    - br_head
    - br_del_head
    - b_size
    - h2c_send_goaway_error
    - br_data
    - h2c_may_expire
    - conn_delete_from_tree
    - TRACE_STATE
    - TRACE_ENTER
    - b_del
    - conn_idle_ping
    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:5377,1
    - Dst: h2c_bck_stream_new
      Src: /src/haproxy/src/mux_h2.c:5378,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5380,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_h2.c:5385,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_h2.c:5386,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5388,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: 5390
      start: 5372
    functionDepth: 5
    functionLinenumber: 5372
    functionLinenumberEnd: 5390
    functionName: h2_attach
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_AND
    - h2c_bck_stream_new
    - xprt_set_used
    - TRACE_ENTER
    - TRACE_LEAVE
    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:5403,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:5405,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:5406,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:5407,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:5408,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5411
      start: 5397
    functionDepth: 1
    functionLinenumber: 5397
    functionLinenumberEnd: 5411
    functionName: h2_get_first_sc
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - eb32_next
    - container_of
    - eb32_first
    - h2s_sc
    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:5430,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5432,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:5434,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: 5452
      start: 5413
    functionDepth: 1
    functionLinenumber: 5413
    functionLinenumberEnd: 5452
    functionName: h2_ctl
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - tasklet_wakeup
    - 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:5457,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_h2.c:5468,1
    - Dst: h2_dump_h2s_info
      Src: /src/haproxy/src/mux_h2.c:5471,1
    - Dst: h2_dump_h2c_info
      Src: /src/haproxy/src/mux_h2.c:5474,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:5477,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h2.c:5479,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: 5490
      start: 5454
    functionDepth: 2
    functionLinenumber: 5454
    functionLinenumberEnd: 5490
    functionName: h2_sctl
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - get_trash_chunk
    - h2_dump_h2s_info
    - chunk_appendf
    - h2_dump_h2c_info
    - tevt_evts2str
    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:5499,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5500,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:5501,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5502,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5504,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5505
      start: 5495
    functionDepth: 4
    functionLinenumber: 5495
    functionLinenumberEnd: 5505
    functionName: h2_destroy
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_release
    - BUG_ON
    - TRACE_ENTER
    - eb_is_empty
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void h2_destroy(void *ctx)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5516,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5519,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_h2.c:5529,1
    - Dst: h2_frt_has_too_many_sc
      Src: /src/haproxy/src/mux_h2.c:5533,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:5536,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5546,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:5550,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:5551,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:5561,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:5564,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5569,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_h2.c:5570,1
    - Dst: conn_idle_ping
      Src: /src/haproxy/src/mux_h2.c:5570,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:5571,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_h2.c:5576,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5579,1
    - Dst: struct h2c*::conn::mux::destroy
      Src: /src/haproxy/src/mux_h2.c:5582,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5583,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h2.c:5590,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h2.c:5591,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_h2.c:5594,1
    - Dst: struct h2c*::conn::mux::destroy
      Src: /src/haproxy/src/mux_h2.c:5595,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5596,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5604,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_h2.c:5609,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/mux_h2.c:5614,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_h2.c:5621,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_h2.c:5622,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_h2.c:5624,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h2.c:5624,1
    - Dst: struct h2c*::conn::mux::destroy
      Src: /src/haproxy/src/mux_h2.c:5626,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5627,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5634,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/mux_h2.c:5638,1
    - Dst: h2_avail_streams
      Src: /src/haproxy/src/mux_h2.c:5639,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h2.c:5639,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:5640,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/mux_h2.c:5641,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_h2.c:5641,1
    - Dst: h2c_is_dead
      Src: /src/haproxy/src/mux_h2.c:5652,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5654,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5655,1
    - Dst: h2c_update_timeout
      Src: /src/haproxy/src/mux_h2.c:5658,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5659,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:5662,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 83
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5663
      start: 5510
    functionDepth: 4
    functionLinenumber: 5510
    functionLinenumberEnd: 5663
    functionName: h2_detach
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h2c_restart_reading
    - session_add_conn
    - eb_is_empty
    - LIST_INLIST
    - TRACE_LEAVE
    - h2_release
    - ceb_intree
    - session_unown_conn
    - tick_isset
    - xprt_set_idle
    - HA_ATOMIC_OR
    - h2c_is_dead
    - __objt_server
    - h2s_destroy
    - h2_avail_streams
    - struct h2c*::conn::mux::destroy
    - h2c_update_timeout
    - br_data
    - srv_add_to_avail_list
    - h2_frt_has_too_many_sc
    - objt_server
    - TRACE_ENTER
    - session_check_idle_conn
    - conn_idle_ping
    - srv_add_to_idle_list
    linkageType: ''
    returnType: void
    signature: void h2_detach(struct sedesc *sd)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5673,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:5683,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5685,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5686,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5687,1
    - Dst: h2s_is_forwardable_abort
      Src: /src/haproxy/src/mux_h2.c:5689,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5690,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5691,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5698,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5699,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5710,1
    - Dst: h2s_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:5714,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:5718,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:5719,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5722,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:5731,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:5733,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:5735,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5737,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - h2s
    - reason
    argTypes:
    - struct h2s*
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5739
      start: 5666
    functionDepth: 4
    functionLinenumber: 5666
    functionLinenumberEnd: 5739
    functionName: h2_do_shutr
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - h2s_is_forwardable_abort
    - se_fl_test
    - h2c_error
    - TRACE_STATE
    - h2s_close
    - TRACE_ENTER
    - LIST_APPEND
    - h2s_error
    - h2s_send_rst_stream
    - LIST_INLIST
    - TRACE_LEAVE
    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:5750,1
    - Dst: h2s_is_forwardable_abort
      Src: /src/haproxy/src/mux_h2.c:5753,1
    - Dst: h2_send_empty_data_es
      Src: /src/haproxy/src/mux_h2.c:5759,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:5763,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:5772,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5774,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5775,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5776,1
    - Dst: h2s_is_forwardable_abort
      Src: /src/haproxy/src/mux_h2.c:5778,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5779,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5780,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5786,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5787,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5794,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:5795,1
    - Dst: h2s_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:5799,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:5802,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:5806,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5808,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:5821,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:5823,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:5825,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5827,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 52
    argCount: 2
    argNames:
    - h2s
    - reason
    argTypes:
    - struct h2s*
    - struct se_abort_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5829
      start: 5743
    functionDepth: 4
    functionLinenumber: 5743
    functionLinenumberEnd: 5829
    functionName: h2_do_shutw
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - LIST_INLIST
    - h2s_is_forwardable_abort
    - se_fl_test
    - h2c_error
    - TRACE_STATE
    - h2s_close
    - TRACE_ENTER
    - LIST_APPEND
    - h2s_error
    - h2s_send_rst_stream
    - h2_send_empty_data_es
    - TRACE_LEAVE
    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:5840,1
    - Dst: h2_do_shutw
      Src: /src/haproxy/src/mux_h2.c:5848,1
    - Dst: h2_do_shutr
      Src: /src/haproxy/src/mux_h2.c:5851,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:5855,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:5857,1
    - Dst: h2s_destroy
      Src: /src/haproxy/src/mux_h2.c:5858,1
    - Dst: h2c_is_dead
      Src: /src/haproxy/src/mux_h2.c:5859,1
    - Dst: h2_release
      Src: /src/haproxy/src/mux_h2.c:5860,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5866,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5868
      start: 5835
    functionDepth: 5
    functionLinenumber: 5835
    functionLinenumberEnd: 5868
    functionName: h2_deferred_shut
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_release
    - h2_do_shutr
    - h2c_is_dead
    - h2s_destroy
    - TRACE_ENTER
    - h2_remove_from_list
    - h2s_sc
    - h2_do_shutw
    - TRACE_LEAVE
    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:5872,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5874,1
    - Dst: h2_do_shutw
      Src: /src/haproxy/src/mux_h2.c:5877,1
    - Dst: h2_do_shutr
      Src: /src/haproxy/src/mux_h2.c:5880,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:5881,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: 5882
      start: 5870
    functionDepth: 5
    functionLinenumber: 5870
    functionLinenumberEnd: 5882
    functionName: h2_shut
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - h2_do_shutr
    - TRACE_ENTER
    - h2_do_shutw
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void h2_shut(struct stconn *sc, unsigned int mode, struct se_abort_info
      *reason)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:5940,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_h2.c:5941,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:5953,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:5956,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:5966,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5970,1
    - Dst: h2_peek_frame_hdr
      Src: /src/haproxy/src/mux_h2.c:5971,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:5981,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5982,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5983,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:5984,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:5990,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:5991,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:5992,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:5993,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:5999,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6000,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6001,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6009,1
    - Dst: b_move
      Src: /src/haproxy/src/mux_h2.c:6017,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/mux_h2.c:6017,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6021,1
    - Dst: b_wrap
      Src: /src/haproxy/src/mux_h2.c:6029,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:6029,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/mux_h2.c:6031,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:6033,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6034,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:6037,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:6037,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:6038,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:6038,1
    - Dst: read_n32
      Src: /src/haproxy/src/mux_h2.c:6044,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6046,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6047,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6048,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:6049,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6054,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6055,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6056,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:6064,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6065,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:6075,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:6076,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6077,1
    - Dst: hpack_decode_frame
      Src: /src/haproxy/src/mux_h2.c:6083,1
    - Dst: TRACE_ENABLED
      Src: /src/haproxy/src/mux_h2.c:6088,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:6095,1
    - Dst: h2_phdr_to_ist
      Src: /src/haproxy/src/mux_h2.c:6097,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:6100,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6101,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6106,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6107,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6108,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:6116,1
    - Dst: h2_make_htx_response
      Src: /src/haproxy/src/mux_h2.c:6132,1
    - Dst: h2_make_htx_request
      Src: /src/haproxy/src/mux_h2.c:6134,1
    - Dst: htx_free_space
      Src: /src/haproxy/src/mux_h2.c:6137,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6139,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6140,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6174,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6175,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6194,1
    - Dst: b_move
      Src: /src/haproxy/src/mux_h2.c:6195,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/mux_h2.c:6195,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6196,1
    - Dst: b_sub
      Src: /src/haproxy/src/mux_h2.c:6197,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_h2.c:6200,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:6200,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6202,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:6207,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/mux_h2.c:6208,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6209,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6217,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6218,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6219,1
    - Dst: h2c_report_glitch
      Src: /src/haproxy/src/mux_h2.c:6234,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6235,1
    - Dst: h2c_error
      Src: /src/haproxy/src/mux_h2.c:6236,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/mux_h2.c:6237,1
    - Dst: h2_make_htx_trailers
      Src: /src/haproxy/src/mux_h2.c:6242,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6243,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 207
    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: 6249
      start: 5938
    functionDepth: 3
    functionLinenumber: 5938
    functionLinenumberEnd: 6249
    functionName: h2c_dec_hdrs
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 2
    functionsReached:
    - b_peek_ofs
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - h2_make_htx_response
    - b_sub
    - unlikely
    - get_trash_chunk
    - free_trash_chunk
    - h2_make_htx_trailers
    - read_n32
    - TRACE_ENABLED
    - b_head
    - htx_from_buf
    - b_full
    - alloc_trash_chunk
    - hpack_decode_frame
    - TRACE_LEAVE
    - b_data
    - h2c_error
    - h2_trace_header
    - h2_phdr_to_ist
    - h2c_report_glitch
    - h2_peek_frame_hdr
    - h2_make_htx_request
    - htx_free_space
    - h2_get_buf
    - b_wrap
    - htx_is_empty
    - b_orig
    - ist
    - b_move
    - TRACE_STATE
    - TRACE_ENTER
    - b_del
    - isttest
    - htx_to_buf
    - memcpy
    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: 16
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:6269,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:6278,1
    - Dst: h2s_may_append_to_rxbuf
      Src: /src/haproxy/src/mux_h2.c:6278,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:6278,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6280,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:6286,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:6286,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6289,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:6292,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6299,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6300,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/mux_h2.c:6305,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:6307,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6311,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_h2.c:6318,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/mux_h2.c:6322,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:6322,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:6322,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_h2.c:6323,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_h2.c:6325,1
    - Dst: h2s_get_rxbuf
      Src: /src/haproxy/src/mux_h2.c:6332,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6336,1
    - Dst: htx_set_eom
      Src: /src/haproxy/src/mux_h2.c:6355,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:6364,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6365,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:6369,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6370,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 86
    argCount: 1
    argNames:
    - h2s
    argTypes:
    - struct h2s*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6372
      start: 6260
    functionDepth: 3
    functionLinenumber: 6260
    functionLinenumberEnd: 6372
    functionName: h2_frt_transfer_data
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - htx_free_data_space
    - h2s_may_append_to_rxbuf
    - h2s_get_rxbuf
    - h2s_rxbuf_tail
    - b_data
    - b_contig_data
    - TRACE_STATE
    - htx_add_data
    - TRACE_ENTER
    - ist2
    - TRACE_DATA
    - h2_get_buf
    - b_del
    - htx_from_buf
    - b_head
    - htx_set_eom
    - htx_to_buf
    - TRACE_LEAVE
    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:6396,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:6402,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/mux_h2.c:6402,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:6403,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6412,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6413,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6414,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h2.c:6418,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h2.c:6419,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6423,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h2.c:6424,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6431,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6435,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6442,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6453,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6459,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6462,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:6464,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:6466,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6469,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_h2.c:6473,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:6476,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:6476,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:6476,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6477,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:6480,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6480,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:6487,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:6488,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:6502,1
    - Dst: hpack_encode_int_status
      Src: /src/haproxy/src/mux_h2.c:6512,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6513,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:6521,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6521,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6521,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/mux_h2.c:6521,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6522,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6529,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6529,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6530,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6530,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6531,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6531,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6532,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6532,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6533,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6533,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6540,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6540,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:6543,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6544,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6546,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:6553,1
    - Dst: h2_fragment_headers
      Src: /src/haproxy/src/mux_h2.c:6556,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6558,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:6564,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:6570,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:6572,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:6573,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:6574,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:6580,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:6580,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:6584,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:6597,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:6614,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:6618,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:6623,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:6626,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6631,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:6637,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 177
    argCount: 2
    argNames:
    - h2s
    - htx
    argTypes:
    - struct h2s*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6640
      start: 6383
    functionDepth: 4
    functionLinenumber: 6383
    functionLinenumberEnd: 6640
    functionName: h2s_snd_fhdrs
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - isteq
    - b_space_wraps
    - unlikely
    - htx_get_blk_value
    - b_tail
    - htx_get_blk_name
    - htx_get_blk_ptr
    - b_add
    - h2s_error
    - br_tail
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - h2_trace_header
    - htx_get_blk_type
    - TRACE_USER
    - ultoa_r
    - b_make
    - h2_encode_header
    - se_fl_test
    - BUG_ON
    - h2s_close
    - b_room
    - htx_get_next_blk
    - h2_get_buf
    - h2_set_frame_size
    - htx_remove_blk
    - hpack_encode_int_status
    - TRACE_PROTO
    - br_tail_add
    - b_contig_space
    - ist
    - write_n32
    - htx_is_empty
    - htx_get_blksz
    - TRACE_STATE
    - TRACE_ENTER
    - h2_fragment_headers
    - TRACE_ERROR
    - b_slow_realign
    - h2s_sc
    - memcpy
    - chunk_reset
    linkageType: ''
    returnType: size_t
    signature: size_t h2s_snd_fhdrs(struct h2s *h2s, struct htx *htx)
  - BBCount: 60
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:6666,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:6672,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/mux_h2.c:6672,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:6673,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6682,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6683,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6684,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h2.c:6688,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h2.c:6689,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:6692,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6693,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h2.c:6697,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6697,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6702,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_h2.c:6707,1
    - Dst: iststop
      Src: /src/haproxy/src/mux_h2.c:6707,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6708,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6710,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6714,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6717,1
    - Dst: istadv
      Src: /src/haproxy/src/mux_h2.c:6723,1
    - Dst: istfind
      Src: /src/haproxy/src/mux_h2.c:6723,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_h2.c:6724,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6727,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6727,1
    - Dst: iststop
      Src: /src/haproxy/src/mux_h2.c:6733,1
    - Dst: istpad
      Src: /src/haproxy/src/mux_h2.c:6735,1
    - Dst: isttrim
      Src: /src/haproxy/src/mux_h2.c:6735,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6738,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6738,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6744,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h2.c:6745,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/mux_h2.c:6746,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/mux_h2.c:6747,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6752,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6753,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:6758,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:6764,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:6767,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_h2.c:6768,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6772,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6778,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:6780,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:6782,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:6785,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_h2.c:6789,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:6792,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:6792,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:6792,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6793,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:6796,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:6796,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:6803,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:6804,1
    - Dst: hpack_encode_method
      Src: /src/haproxy/src/mux_h2.c:6808,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6809,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:6814,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6814,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6814,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6816,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6826,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:6829,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6829,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6830,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6832,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:6857,1
    - Dst: istadv
      Src: /src/haproxy/src/mux_h2.c:6858,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_h2.c:6861,1
    - Dst: istadv
      Src: /src/haproxy/src/mux_h2.c:6865,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6872,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:6872,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6884,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6886,1
    - Dst: hpack_encode_scheme
      Src: /src/haproxy/src/mux_h2.c:6889,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6891,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:6897,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6897,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6898,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6900,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6908,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6910,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6912,1
    - Dst: hpack_encode_path
      Src: /src/haproxy/src/mux_h2.c:6915,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6917,1
    - Dst: h2_trace_header
      Src: /src/haproxy/src/mux_h2.c:6922,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6922,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6922,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:6927,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6928,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:6929,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:6930,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6930,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6931,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6933,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6949,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6949,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6950,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6950,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6951,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6951,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6952,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6952,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6953,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6953,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6954,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6954,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6957,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6957,1
    - Dst: istist
      Src: /src/haproxy/src/mux_h2.c:6961,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6961,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_h2.c:6962,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6964,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:6971,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6971,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:6974,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:6974,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6976,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:6983,1
    - Dst: h2_fragment_headers
      Src: /src/haproxy/src/mux_h2.c:6986,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:6988,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_h2.c:6994,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7000,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7002,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:7003,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:7004,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:7010,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:7010,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7014,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:7027,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:7033,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7042,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7047,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:7053,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 262
    argCount: 2
    argNames:
    - h2s
    - htx
    argTypes:
    - struct h2s*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7056
      start: 6651
    functionDepth: 4
    functionLinenumber: 6651
    functionLinenumberEnd: 7056
    functionName: h2s_snd_bhdrs
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - isteq
    - b_space_wraps
    - unlikely
    - htx_get_blk_value
    - hpack_encode_scheme
    - istadv
    - istpad
    - b_tail
    - istist
    - htx_get_blk_name
    - htx_get_blk_ptr
    - b_add
    - h2s_error
    - istfind
    - br_tail
    - istlen
    - htx_get_head_blk
    - b_data
    - hpack_encode_method
    - htx_get_blk_type
    - h2_trace_header
    - ist2
    - TRACE_USER
    - iststop
    - b_make
    - isttrim
    - h2_encode_header
    - se_fl_test
    - BUG_ON
    - htx_sl_req_meth
    - htx_remove_blk
    - htx_get_next_blk
    - h2_get_buf
    - isteqi
    - h2_set_frame_size
    - TRACE_PROTO
    - br_tail_add
    - b_contig_space
    - ist
    - write_n32
    - htx_is_empty
    - htx_get_blksz
    - objt_server
    - TRACE_STATE
    - TRACE_ENTER
    - h2_fragment_headers
    - TRACE_ERROR
    - htx_sl_req_uri
    - hpack_encode_path
    - isttest
    - b_slow_realign
    - h2s_sc
    - memcpy
    - chunk_reset
    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:7077,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7079,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7084,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7094,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7104,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:7108,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:7109,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7114,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7115,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:7116,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:7122,1
    - Dst: br_count
      Src: /src/haproxy/src/mux_h2.c:7124,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7129,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:7133,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7136,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:7157,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_h2.c:7158,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:7159,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7162,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:7169,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7170,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:7170,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:7171,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:7171,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7172,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7176,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7181,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:7196,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_h2.c:7197,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:7200,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:7201,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:7204,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:7217,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:7225,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:7225,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:7225,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7226,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:7229,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7229,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7233,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7237,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:7242,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:7243,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:7258,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:7260,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:7261,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:7262,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7263,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:7270,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:7271,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7281,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:7282,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7283,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7290,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7294,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7301,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:7309,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_h2.c:7309,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:7316,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:7321,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7322,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_h2.c:7333,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:7340,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:7348,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:7351,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7355,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7365,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 200
    argCount: 3
    argNames:
    - h2s
    - buf
    - count
    argTypes:
    - struct h2s*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7367
      start: 7063
    functionDepth: 3
    functionLinenumber: 7063
    functionLinenumberEnd: 7367
    functionName: h2s_make_data
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_space_wraps
    - br_count
    - unlikely
    - b_tail
    - h2s_error
    - htx_get_blk_ptr
    - htx_from_buf
    - b_head
    - br_tail
    - LIST_INLIST
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - htx_cut_data_blk
    - htx_get_blk_type
    - b_make
    - h2s_mws
    - htx_nbblks
    - h2s_close
    - LIST_APPEND
    - b_room
    - h2_get_buf
    - h2_set_frame_size
    - TRACE_PROTO
    - htx_remove_blk
    - br_tail_add
    - b_size
    - h2_remove_from_list
    - b_contig_space
    - htx_is_empty
    - write_n32
    - htx_get_blksz
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - b_slow_realign
    - memcpy
    - b_add
    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:7386,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7388,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7391,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7393,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7394,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:7395,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_h2.c:7406,1
    - Dst: h2_send_empty_data_es
      Src: /src/haproxy/src/mux_h2.c:7413,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:7419,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7425,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:7426,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_h2.c:7431,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7435,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: 7437
      start: 7376
    functionDepth: 3
    functionLinenumber: 7376
    functionLinenumberEnd: 7437
    functionName: h2s_skip_data
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - htx_get_blksz
    - htx_get_head_blk
    - htx_cut_data_blk
    - htx_get_blk_type
    - h2s_close
    - TRACE_ENTER
    - htx_is_unique_blk
    - htx_remove_blk
    - htx_from_buf
    - TRACE_LEAVE
    - h2_send_empty_data_es
    - htx_is_empty
    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:7460,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7470,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/mux_h2.c:7470,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7471,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_h2.c:7479,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:7480,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_h2.c:7484,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_h2.c:7485,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_h2.c:7489,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7496,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:7498,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:7500,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7503,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_h2.c:7507,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_h2.c:7510,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:7510,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:7510,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7511,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:7514,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7514,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:7521,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:7522,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7530,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7530,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7531,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7531,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7532,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7532,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7533,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7533,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7534,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7534,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7535,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7535,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7536,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7536,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_h2.c:7537,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7537,1
    - Dst: h2_encode_header
      Src: /src/haproxy/src/mux_h2.c:7544,1
    - Dst: ist
      Src: /src/haproxy/src/mux_h2.c:7545,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7547,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:7565,1
    - Dst: h2_fragment_headers
      Src: /src/haproxy/src/mux_h2.c:7568,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:7570,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:7577,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:7578,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:7585,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_h2.c:7591,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7593,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:7594,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:7595,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7602,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:7605,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:7610,1
    - Dst: h2s_error
      Src: /src/haproxy/src/mux_h2.c:7616,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 121
    argCount: 2
    argNames:
    - h2s
    - htx
    argTypes:
    - struct h2s*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7619
      start: 7448
    functionDepth: 4
    functionLinenumber: 7448
    functionLinenumberEnd: 7619
    functionName: h2s_make_trailers
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - isteq
    - b_space_wraps
    - unlikely
    - htx_get_blk_value
    - b_tail
    - htx_get_blk_name
    - h2s_error
    - b_add
    - br_tail
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - htx_get_blk_type
    - b_make
    - h2_encode_header
    - h2s_close
    - htx_remove_blk
    - htx_get_next_blk
    - h2_get_buf
    - h2_set_frame_size
    - TRACE_PROTO
    - br_tail_add
    - b_contig_space
    - ist
    - write_n32
    - htx_get_blksz
    - TRACE_STATE
    - TRACE_ENTER
    - h2_fragment_headers
    - TRACE_ERROR
    - b_slow_realign
    - memcpy
    - chunk_reset
    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:7628,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7631,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:7633,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:7634,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7640,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7643,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:7645,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7647,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:7648,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7651,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:7652,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7656,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: 7658
      start: 7626
    functionDepth: 1
    functionLinenumber: 7626
    functionLinenumberEnd: 7658
    functionName: h2_subscribe
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - BUG_ON
    - TRACE_ENTER
    - LIST_APPEND
    - LIST_INLIST
    - TRACE_LEAVE
    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:7666,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7668,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:7670,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_h2.c:7671,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7678,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7681,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:7684,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7687,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: 7689
      start: 7664
    functionDepth: 3
    functionLinenumber: 7664
    functionLinenumberEnd: 7689
    functionName: h2_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - BUG_ON
    - TRACE_ENTER
    - h2_remove_from_list
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int h2_unsubscribe(struct stconn *sc, int event_type, struct wait_event
      *es)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:7706,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7716,1
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:7721,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7725,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7726,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7730,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7734,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7738,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_h2.c:7738,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7740,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7741,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_h2.c:7742,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7742,1
    - Dst: htx_xfer_blks
      Src: /src/haproxy/src/mux_h2.c:7746,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7751,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:7752,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7754,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7758,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7759,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7768,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:7768,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_h2.c:7769,1
    - Dst: _h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:7769,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_h2.c:7770,1
    - Dst: _h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:7770,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_h2.c:7771,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:7775,1
    - Dst: h2s_put_rxbuf
      Src: /src/haproxy/src/mux_h2.c:7776,1
    - Dst: h2s_rxbuf_cnt
      Src: /src/haproxy/src/mux_h2.c:7784,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:7785,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_h2.c:7786,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_h2.c:7793,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_h2.c:7796,1
    - Dst: h2s_propagate_term_flags
      Src: /src/haproxy/src/mux_h2.c:7797,1
    - Dst: h2c_restart_reading
      Src: /src/haproxy/src/mux_h2.c:7806,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_h2.c:7808,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_h2.c:7808,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7810,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7812
      start: 7704
    functionDepth: 3
    functionLinenumber: 7704
    functionLinenumberEnd: 7812
    functionName: h2_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - offer_buffers
    - h2c_restart_reading
    - htx_from_buf
    - b_free
    - se_fl_clr
    - TRACE_LEAVE
    - b_xfer
    - b_data
    - se_fl_set
    - h2s_rxbuf_cnt
    - se_fl_test
    - h2s_propagate_term_flags
    - b_size
    - h2s_rxbuf_head
    - htx_is_empty
    - _h2s_rxbuf_head
    - se_expect_data
    - h2s_put_rxbuf
    - TRACE_ENTER
    - htx_xfer_blks
    - BUG_ON_HOT
    - htx_used_space
    - htx_to_buf
    linkageType: ''
    returnType: size_t
    signature: size_t h2_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_h2.c:7821,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:7830,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:7837,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:7837,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:7838,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7839,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7841,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7849,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:7854,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7855,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7859,1
    - Dst: h2c_get_next_sid
      Src: /src/haproxy/src/mux_h2.c:7865,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_h2.c:7868,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7869,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_h2.c:7873,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_h2.c:7877,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_h2.c:7881,1
    - Dst: htx_get_head
      Src: /src/haproxy/src/mux_h2.c:7882,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/mux_h2.c:7883,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_h2.c:7884,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_h2.c:7885,1
    - Dst: h2s_snd_bhdrs
      Src: /src/haproxy/src/mux_h2.c:7890,1
    - Dst: h2s_snd_fhdrs
      Src: /src/haproxy/src/mux_h2.c:7901,1
    - Dst: h2s_skip_data
      Src: /src/haproxy/src/mux_h2.c:7914,1
    - Dst: h2s_make_data
      Src: /src/haproxy/src/mux_h2.c:7916,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_h2.c:7918,1
    - Dst: h2s_make_trailers
      Src: /src/haproxy/src/mux_h2.c:7929,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_h2.c:7939,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7958,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:7959,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:7960,1
    - Dst: h2s_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:7961,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:7962,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_h2.c:7965,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7969,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:7970,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:7971,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:7980,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7982,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:7983,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:7989,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:7990,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:7993,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 123
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7995
      start: 7819
    functionDepth: 6
    functionLinenumber: 7819
    functionLinenumberEnd: 7995
    functionName: h2_snd_buf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - htx_get_head
    - h2s_snd_fhdrs
    - h2_send
    - h2s_send_rst_stream
    - eb32_delete
    - htx_from_buf
    - LIST_INLIST
    - TRACE_LEAVE
    - b_data
    - htx_get_blk_type
    - htx_get_blk
    - LIST_ISEMPTY
    - se_report_term_evt
    - tasklet_wakeup
    - h2s_make_trailers
    - se_fl_set
    - h2s_snd_bhdrs
    - h2s_make_data
    - h2s_close
    - htx_remove_blk
    - se_fl_set_error
    - eb32_insert
    - h2_remove_from_list
    - htx_is_empty
    - htx_get_blksz
    - TRACE_ENTER
    - h2s_skip_data
    - h2c_get_next_sid
    - htx_to_buf
    linkageType: ''
    returnType: size_t
    signature: size_t h2_snd_buf(struct stconn *sc, struct buffer *buf, size_t count,
      int flags)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_h2.c:7999,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:8004,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:8014,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_h2.c:8014,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:8015,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8016,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8018,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:8025,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_h2.c:8027,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_h2.c:8028,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_h2.c:8029,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8031,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8037,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:8042,1
    - Dst: h2s_mws
      Src: /src/haproxy/src/mux_h2.c:8043,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:8052,1
    - Dst: br_count
      Src: /src/haproxy/src/mux_h2.c:8054,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8060,1
    - Dst: h2_get_buf
      Src: /src/haproxy/src/mux_h2.c:8064,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8068,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:8072,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_h2.c:8072,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8072,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:8073,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8078,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:8083,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_h2.c:8083,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_h2.c:8085,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8085,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:8088,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_h2.c:8089,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_h2.c:8094,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_h2.c:8099,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_h2.c:8104,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:8104,1
    - Dst: write_n32
      Src: /src/haproxy/src/mux_h2.c:8105,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_h2.c:8105,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8112,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8115,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8116,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:8117,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_h2.c:8118,1
    - Dst: b_sub
      Src: /src/haproxy/src/mux_h2.c:8119,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8122,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_h2.c:8134,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_h2.c:8135,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_h2.c:8136,1
    - Dst: h2s_send_rst_stream
      Src: /src/haproxy/src/mux_h2.c:8137,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:8138,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:8141,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 4
    argNames:
    - sc
    - input
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8143
      start: 7997
    functionDepth: 4
    functionLinenumber: 7997
    functionLinenumberEnd: 8143
    functionName: h2_nego_ff
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - b_space_wraps
    - b_sub
    - br_count
    - b_tail
    - h2s_send_rst_stream
    - br_tail
    - LIST_INLIST
    - TRACE_LEAVE
    - b_xfer
    - b_data
    - LIST_ISEMPTY
    - se_report_term_evt
    - h2s_mws
    - LIST_DEL_INIT
    - h2s_close
    - LIST_APPEND
    - b_room
    - h2_get_buf
    - se_fl_set_error
    - br_tail_add
    - b_size
    - b_contig_space
    - write_n32
    - TRACE_STATE
    - TRACE_ENTER
    - b_slow_realign
    - memcpy
    - b_add
    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:8147,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_h2.c:8155,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_h2.c:8160,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8160,1
    - Dst: h2_set_frame_size
      Src: /src/haproxy/src/mux_h2.c:8174,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_h2.c:8177,1
    - Dst: h2_send
      Src: /src/haproxy/src/mux_h2.c:8180,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_h2.c:8181,1
    - Dst: h2s_close
      Src: /src/haproxy/src/mux_h2.c:8187,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_h2.c:8190,1
    - Dst: h2_remove_from_list
      Src: /src/haproxy/src/mux_h2.c:8205,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_h2.c:8208,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 42
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8210
      start: 8145
    functionDepth: 6
    functionLinenumber: 8145
    functionLinenumberEnd: 8210
    functionName: h2_done_ff
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - tasklet_wakeup
    - b_data
    - h2_send
    - h2s_close
    - TRACE_ENTER
    - h2_set_frame_size
    - TRACE_PROTO
    - b_peek
    - TRACE_LEAVE
    - h2_remove_from_list
    - b_add
    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: 8215
      start: 8212
    functionDepth: 0
    functionLinenumber: 8212
    functionLinenumberEnd: 8215
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: h2s_rxbuf_head
      Src: /src/haproxy/src/mux_h2.c:8230,1
    - Dst: h2s_rxbuf_tail
      Src: /src/haproxy/src/mux_h2.c:8231,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8233,1
    - Dst: h2s_st_to_str
      Src: /src/haproxy/src/mux_h2.c:8234,1
    - Dst: h2s_rxbuf_cnt
      Src: /src/haproxy/src/mux_h2.c:8236,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8237,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8238,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8239,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8240,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8241,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8242,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8243,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8244,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8247,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8249,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8249,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8250,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8251,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8252,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8252,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8254,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8255,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_h2.c:8255,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h2.c:8255,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8258,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8260,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8262,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8263,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/mux_h2.c:8268,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8269,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - msg
    - h2s
    - pfx
    argTypes:
    - struct buffer*
    - struct h2s*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8272
      start: 8222
    functionDepth: 2
    functionLinenumber: 8222
    functionLinenumberEnd: 8272
    functionName: h2_dump_h2s_info
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - b_orig
    - resolve_sym_name
    - h2s_st_to_str
    - h2s_rxbuf_cnt
    - b_data
    - h2s_rxbuf_tail
    - chunk_appendf
    - tevt_evts2str
    - b_size
    - b_head_ofs
    - h2s_sc
    - h2s_rxbuf_head
    - se_fl_get
    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:8293,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mux_h2.c:8296,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_h2.c:8299,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:8301,1
    - Dst: h2s_sc
      Src: /src/haproxy/src/mux_h2.c:8303,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_h2.c:8305,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_h2.c:8308,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_h2.c:8309,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8310,1
    - Dst: h2c_st_to_str
      Src: /src/haproxy/src/mux_h2.c:8312,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_h2.c:8314,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8317,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8319,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8323,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8323,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8324,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8324,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8327,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8329,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_h2.c:8330,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_h2.c:8330,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_h2.c:8330,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8331,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8331,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8332,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8332,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_h2.c:8333,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_h2.c:8333,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_h2.c:8334,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_h2.c:8334,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8336,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8338,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_h2.c:8339,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_h2.c:8340,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h2.c:8340,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_h2.c:8340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - msg
    - h2c
    - pfx
    argTypes:
    - struct buffer*
    - struct h2c*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8344
      start: 8279
    functionDepth: 1
    functionLinenumber: 8279
    functionLinenumberEnd: 8344
    functionName: h2_dump_h2c_info
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 1
    functionsReached:
    - br_head_idx
    - br_tail
    - tick_is_expired
    - b_data
    - chunk_appendf
    - container_of
    - eb32_next
    - human_time
    - b_head_ofs
    - tevt_evts2str
    - br_tail_idx
    - br_head
    - br_size
    - b_size
    - b_orig
    - list_for_each_entry
    - eb32_first
    - h2c_st_to_str
    - TICKS_TO_MS
    - h2s_sc
    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:8357,1
    - Dst: eb32_last
      Src: /src/haproxy/src/mux_h2.c:8359,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_h2.c:8361,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8362,1
    - Dst: h2_dump_h2s_info
      Src: /src/haproxy/src/mux_h2.c:8363,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8367
      start: 8347
    functionDepth: 3
    functionLinenumber: 8347
    functionLinenumberEnd: 8367
    functionName: h2_show_fd
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_dump_h2s_info
    - chunk_appendf
    - container_of
    - h2_dump_h2c_info
    - eb32_last
    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:8382,1
    - Dst: h2_dump_h2s_info
      Src: /src/haproxy/src/mux_h2.c:8383,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8385,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_h2.c:8386,1
    - Dst: h2_dump_h2c_info
      Src: /src/haproxy/src/mux_h2.c:8387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8389
      start: 8374
    functionDepth: 3
    functionLinenumber: 8374
    functionLinenumberEnd: 8389
    functionName: h2_show_sd
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - h2_dump_h2s_info
    - chunk_appendf
    - 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:8410,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_h2.c:8417,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_h2.c:8418,1
    - Dst: fd_takeover
      Src: /src/haproxy/src/mux_h2.c:8423,1
    - Dst: struct connection*::xprt::takeover
      Src: /src/haproxy/src/mux_h2.c:8426,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_h2.c:8433,1
    - Dst: struct h2c*::conn::xprt::unsubscribe
      Src: /src/haproxy/src/mux_h2.c:8438,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/mux_h2.c:8448,1
    - Dst: task_kill
      Src: /src/haproxy/src/mux_h2.c:8449,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_h2.c:8463,1
    - Dst: struct h2c*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_h2.c:8469,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_h2.c:8474,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_h2.c:8478,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_h2.c:8479,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - conn
    - orig_tid
    - release
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8481
      start: 8395
    functionDepth: 2
    functionLinenumber: 8395
    functionLinenumberEnd: 8481
    functionName: h2_takeover
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - struct connection*::xprt::takeover
    - struct h2c*::conn::xprt::subscribe
    - tasklet_new
    - tasklet_free
    - struct h2c*::conn::xprt::unsubscribe
    - fd_takeover
    - tasklet_wakeup_on
    - __task_free
    - task_new_here
    - task_kill
    - LIST_INLIST
    - __ha_barrier_store
    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:8494,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8500,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8502,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: 8506
      start: 8488
    functionDepth: 1
    functionLinenumber: 8488
    functionLinenumberEnd: 8506
    functionName: h2_parse_glitches_threshold
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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:8513,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8516,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8518,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: 8522
      start: 8509
    functionDepth: 1
    functionLinenumber: 8509
    functionLinenumberEnd: 8522
    functionName: h2_parse_header_table_size
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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:8531,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8539,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8541,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: 8545
      start: 8525
    functionDepth: 1
    functionLinenumber: 8525
    functionLinenumberEnd: 8545
    functionName: h2_parse_initial_window_size
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8554,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8562,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8564,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: 8568
      start: 8548
    functionDepth: 1
    functionLinenumber: 8548
    functionLinenumberEnd: 8568
    functionName: h2_parse_max_concurrent_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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:8577,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8583,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8585,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: 8589
      start: 8571
    functionDepth: 1
    functionLinenumber: 8571
    functionLinenumberEnd: 8589
    functionName: h2_parse_max_total_streams
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/mux_h2.c:8596,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8599,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8601,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: 8605
      start: 8592
    functionDepth: 1
    functionLinenumber: 8592
    functionLinenumberEnd: 8605
    functionName: h2_parse_max_frame_size
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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:8615,1
    - Dst: atoi
      Src: /src/haproxy/src/mux_h2.c:8621,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/mux_h2.c:8622,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8623,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: 8627
      start: 8608
    functionDepth: 1
    functionLinenumber: 8608
    functionLinenumberEnd: 8627
    functionName: h2_parse_rxbuf
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    - 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:8634,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8637,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_h2.c:8639,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_h2.c:8642,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: 8646
      start: 8630
    functionDepth: 1
    functionLinenumber: 8630
    functionLinenumberEnd: 8646
    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:8713,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mux_h2.c:8717,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:8723,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:8729,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:8735,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_h2.c:8737,1
    - Dst: create_pool
      Src: /src/haproxy/src/mux_h2.c:8739,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mux_h2.c:8743,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8747
      start: 8708
    functionDepth: 1
    functionLinenumber: 8708
    functionLinenumberEnd: 8747
    functionName: init_h2
    functionSourceFile: /src/haproxy/src/mux_h2.c
    functionUses: 0
    functionsReached:
    - create_pool
    - MAX
    - ha_alert
    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_data
    - b_peek
    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_data
    - b_peek
    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_data
    - b_peek
    linkageType: ''
    returnType: size_t
    signature: size_t fcgi_decode_end_request(const struct buffer *in, size_t o, struct
      fcgi_end_request *rec)
  - 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: 3
    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: 337
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 337
    functionName: ctrl_msg_type_str
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *ctrl_msg_type_str(unsigned int type)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:351,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:356,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:361,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:369,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:374,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:379,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:387,1
    - Dst: ctrl_msg_type_str
      Src: /src/haproxy/src/peers.c:387,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:393,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:399,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:412,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:413,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:419,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    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: 422
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 422
    functionName: peers_trace
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - ctrl_msg_type_str
    - chunk_appendf
    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: 446
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 446
    functionName: statuscode_str
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    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: 462
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 462
    functionName: peer_app_state_str
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    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: 478
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 478
    functionName: peer_learn_state_str
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *peer_learn_state_str(enum peer_learn_state learnstate)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - i
    - str
    argTypes:
    - uint64_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 506
    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: 557
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 557
    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:572,1
    - Dst: getpid
      Src: /src/haproxy/src/peers.c:573,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: 578
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 578
    functionName: peer_prepare_hellomsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - snprintf
    - getpid
    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:589,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: 594
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 594
    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:607,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: 612
      start: 601
    functionDepth: 0
    functionLinenumber: 601
    functionLinenumberEnd: 612
    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: 632
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 632
    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:672,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:673,1
    - Dst: htonl
      Src: /src/haproxy/src/peers.c:678,1
    - Dst: tick_remain
      Src: /src/haproxy/src/peers.c:678,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:679,1
    - Dst: strlen
      Src: /src/haproxy/src/peers.c:685,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:687,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:688,1
    - Dst: htonl
      Src: /src/haproxy/src/peers.c:692,1
    - Dst: read_u32
      Src: /src/haproxy/src/peers.c:692,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:693,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:697,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/peers.c:701,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:705,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:719,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:720,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:722,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:730,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:731,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:733,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:741,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:742,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:744,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:752,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:753,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:754,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:755,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:757,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_cast
      Src: /src/haproxy/src/peers.c:779,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:780,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:786,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:787,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:793,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:794,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:795,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:796,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:807,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:810,1
    - Dst: dcache_tx_insert
      Src: /src/haproxy/src/peers.c:816,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:821,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:823,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:829,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:832,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:834,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:838,1
    - Dst: memmove
      Src: /src/haproxy/src/peers.c:839,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/peers.c:847,1
    - Dst: peer_set_update_msg_type
      Src: /src/haproxy/src/peers.c:854,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:856,1
    - Dst: memmove
      Src: /src/haproxy/src/peers.c:859,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: 863
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 863
    functionName: peer_prepare_updatemsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - dcache_tx_insert
    - memmove
    - intencode
    - tick_remain
    - HA_RWLOCK_RDUNLOCK
    - strlen
    - stktable_data_ptr
    - htonl
    - stktable_data_cast
    - peer_set_update_msg_type
    - read_u32
    - stktable_data_ptr_idx
    - memcpy
    - HA_RWLOCK_RDLOCK
    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:887,1
    - Dst: strlen
      Src: /src/haproxy/src/peers.c:890,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:891,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:892,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:897,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:900,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/peers.c:902,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:936,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:941,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:947,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:954,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:955,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:961,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:964,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:968,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:979,1
    - Dst: memmove
      Src: /src/haproxy/src/peers.c:982,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: 986
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 986
    functionName: peer_prepare_switchmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - memmove
    - intencode
    - strlen
    - memcpy
    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:1005,1
    - Dst: htonl
      Src: /src/haproxy/src/peers.c:1006,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1007,1
    - Dst: intencode
      Src: /src/haproxy/src/peers.c:1017,1
    - Dst: memmove
      Src: /src/haproxy/src/peers.c:1020,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: 1024
      start: 995
    functionDepth: 1
    functionLinenumber: 995
    functionLinenumberEnd: 1024
    functionName: peer_prepare_ackmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - memmove
    - intencode
    - htonl
    - 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:1038,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:1041,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:1043,1
    - Dst: flush_dcache
      Src: /src/haproxy/src/peers.c:1045,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:1058,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1029
    functionDepth: 1
    functionLinenumber: 1029
    functionLinenumberEnd: 1059
    functionName: __peer_session_deinit
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - task_wakeup
    - flush_dcache
    linkageType: ''
    returnType: void
    signature: void __peer_session_deinit(struct peer *peer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/peers.c:1067,1
    - Dst: set_host_port
      Src: /src/haproxy/src/peers.c:1069,1
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/peers.c:1071,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/peers.c:1074,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/peers.c:1076,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:1077,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/peers.c:1083,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:1088,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/peers.c:1092,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1061
    functionDepth: 2
    functionLinenumber: 1061
    functionLinenumberEnd: 1095
    functionName: peer_session_init
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - sockaddr_alloc
    - applet_need_more_data
    - set_host_port
    - stream_set_srv_target
    - sockaddr_free
    - appctx_finalize_startup
    - _HA_ATOMIC_INC
    - appctx_strm
    linkageType: ''
    returnType: int
    signature: int peer_session_init(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1104,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:1111,1
    - Dst: __peer_session_deinit
      Src: /src/haproxy/src/peers.c:1113,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:1115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1117
    functionName: peer_session_release
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - __peer_session_deinit
    - TRACE_PROTO
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void peer_session_release(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/peers.c:1131,1
    - Dst: read_uint
      Src: /src/haproxy/src/peers.c:1133,1
    - Dst: read_uint
      Src: /src/haproxy/src/peers.c:1138,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: 1146
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1146
    functionName: peer_get_version
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - strlen
    - read_uint
    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: applet_get_inbuf
      Src: /src/haproxy/src/peers.c:1158,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/peers.c:1158,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/peers.c:1159,1
    - Dst: applet_getline
      Src: /src/haproxy/src/peers.c:1163,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/peers.c:1165,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/peers.c:1179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1181
    functionName: peer_getline
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - applet_get_inbuf
    - applet_getline
    - applet_need_more_data
    - applet_skip_input
    - applet_input_data
    linkageType: ''
    returnType: int
    signature: int peer_getline(struct appctx  *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: peer_prepare_msg
      Src: /src/haproxy/src/peers.c:1196,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/peers.c:1204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - appctx
    - params
    argTypes:
    - struct appctx*
    - struct peer_prep_params*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1211
    functionName: peer_send_msg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - applet_putblk
    - peer_prepare_msg
    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: peer_send_msg
      Src: /src/haproxy/src/peers.c:1226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - peer
    argTypes:
    - struct appctx*
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1220
    functionDepth: 2
    functionLinenumber: 1220
    functionLinenumberEnd: 1227
    functionName: peer_send_hellomsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    linkageType: ''
    returnType: int
    signature: int peer_send_hellomsg(struct appctx *appctx, struct peer *peer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1236
    functionDepth: 2
    functionLinenumber: 1236
    functionLinenumberEnd: 1239
    functionName: peer_send_status_successmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    linkageType: ''
    returnType: int
    signature: int peer_send_status_successmsg(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1248
    functionDepth: 2
    functionLinenumber: 1248
    functionLinenumberEnd: 1255
    functionName: peer_send_status_errormsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    linkageType: ''
    returnType: int
    signature: int peer_send_status_errormsg(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - appctx
    argTypes:
    - struct shared_table*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1271
      start: 1264
    functionDepth: 2
    functionLinenumber: 1264
    functionLinenumberEnd: 1271
    functionName: peer_send_switchmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    linkageType: ''
    returnType: int
    signature: int peer_send_switchmsg(struct shared_table *st, struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - st
    - appctx
    argTypes:
    - struct shared_table*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1280
    functionDepth: 2
    functionLinenumber: 1280
    functionLinenumberEnd: 1287
    functionName: peer_send_ackmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    linkageType: ''
    returnType: int
    signature: int peer_send_ackmsg(struct shared_table *st, struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    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: 1311
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1311
    functionName: peer_send_updatemsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    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: 1327
      start: 1318
    functionDepth: 0
    functionLinenumber: 1318
    functionLinenumberEnd: 1327
    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:1343,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1346,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: 1347
      start: 1336
    functionDepth: 2
    functionLinenumber: 1336
    functionLinenumberEnd: 1347
    functionName: peer_send_resync_reqmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - peer_send_msg
    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:1363,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1366,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: 1367
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1367
    functionName: peer_send_resync_confirmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - peer_send_msg
    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:1383,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1386,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1389,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: 1390
      start: 1376
    functionDepth: 2
    functionLinenumber: 1376
    functionLinenumberEnd: 1390
    functionName: peer_send_resync_finishedmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - peer_send_msg
    - 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:1406,1
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1409,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: 1410
      start: 1399
    functionDepth: 2
    functionLinenumber: 1399
    functionLinenumberEnd: 1410
    functionName: peer_send_heartbeatmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_PROTO
    - peer_send_msg
    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: 1426
      start: 1417
    functionDepth: 0
    functionLinenumber: 1417
    functionLinenumberEnd: 1426
    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: peer_send_msg
      Src: /src/haproxy/src/peers.c:1441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1435
    functionDepth: 2
    functionLinenumber: 1435
    functionLinenumberEnd: 1442
    functionName: peer_send_error_size_limitmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    linkageType: ''
    returnType: int
    signature: int peer_send_error_size_limitmsg(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: peer_send_msg
      Src: /src/haproxy/src/peers.c:1457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1451
    functionDepth: 2
    functionLinenumber: 1451
    functionLinenumberEnd: 1458
    functionName: peer_send_error_protomsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_msg
    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:1469,1
    - Dst: eb32_first
      Src: /src/haproxy/src/peers.c:1471,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/peers.c:1487,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:1488,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/peers.c:1489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1464
    functionDepth: 1
    functionLinenumber: 1464
    functionLinenumberEnd: 1491
    functionName: peer_teach_process_stksess_lookup
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    - eb32_lookup_ge
    - eb32_first
    - eb32_entry
    - _HA_ATOMIC_STORE
    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:1502,1
    - Dst: eb32_first
      Src: /src/haproxy/src/peers.c:1505,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/peers.c:1511,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:1512,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/peers.c:1513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1497
    functionDepth: 1
    functionLinenumber: 1497
    functionLinenumberEnd: 1515
    functionName: peer_teach_stage1_stksess_lookup
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    - eb32_lookup_ge
    - eb32_first
    - eb32_entry
    - _HA_ATOMIC_STORE
    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:1526,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/peers.c:1532,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:1533,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/peers.c:1534,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - st
    argTypes:
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1521
    functionDepth: 1
    functionLinenumber: 1521
    functionLinenumberEnd: 1536
    functionName: peer_teach_stage2_stksess_lookup
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_STORE
    - _HA_ATOMIC_LOAD
    - eb32_lookup_ge
    - eb32_entry
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *peer_teach_stage2_stksess_lookup(struct shared_table
      *st)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: peer_send_switchmsg
      Src: /src/haproxy/src/peers.c:1564,1
    - Dst: HA_RWLOCK_TRYRDLOCK
      Src: /src/haproxy/src/peers.c:1577,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:1579,1
    - Dst: peer_stksess_lookup
      Src: /src/haproxy/src/peers.c:1589,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:1603,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/peers.c:1604,1
    - Dst: peer_send_updatemsg
      Src: /src/haproxy/src/peers.c:1606,1
    - Dst: HA_RWLOCK_TRYRDLOCK
      Src: /src/haproxy/src/peers.c:1608,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:1614,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:1615,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/peers.c:1623,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:1626,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:1633,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/peers.c:1636,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/peers.c:1638,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:1647,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/peers.c:1654,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 69
    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: 1657
      start: 1553
    functionDepth: 3
    functionLinenumber: 1553
    functionLinenumberEnd: 1657
    functionName: peer_send_teachmsgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - peer_stksess_lookup
    - HA_ATOMIC_INC
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_CAS
    - peer_send_updatemsg
    - __ha_cpu_relax
    - peer_send_switchmsg
    - HA_RWLOCK_RDUNLOCK
    - applet_have_more_data
    - HA_RWLOCK_TRYRDLOCK
    - HA_RWLOCK_RDLOCK
    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: peer_send_teachmsgs
      Src: /src/haproxy/src/peers.c:1674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - appctx
    - p
    - st
    argTypes:
    - struct appctx*
    - struct peer*
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1671
    functionDepth: 4
    functionLinenumber: 1671
    functionLinenumberEnd: 1675
    functionName: peer_send_teach_process_msgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - 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: peer_send_teachmsgs
      Src: /src/haproxy/src/peers.c:1690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - appctx
    - p
    - st
    argTypes:
    - struct appctx*
    - struct peer*
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1691
      start: 1687
    functionDepth: 4
    functionLinenumber: 1687
    functionLinenumberEnd: 1691
    functionName: peer_send_teach_stage1_msgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - 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: peer_send_teachmsgs
      Src: /src/haproxy/src/peers.c:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - appctx
    - p
    - st
    argTypes:
    - struct appctx*
    - struct peer*
    - struct shared_table*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1703
    functionDepth: 4
    functionLinenumber: 1703
    functionLinenumberEnd: 1707
    functionName: peer_send_teach_stage2_msgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - 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: 54
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/peers.c:1736,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:1743,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1747,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1751,1
    - Dst: htonl
      Src: /src/haproxy/src/peers.c:1753,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1763,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1765,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1770,1
    - Dst: ntohl
      Src: /src/haproxy/src/peers.c:1772,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:1777,1
    - Dst: stksess_new
      Src: /src/haproxy/src/peers.c:1780,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1787,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1789,1
    - Dst: MIN
      Src: /src/haproxy/src/peers.c:1793,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1795,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1797,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1803,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1811,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1813,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1819,1
    - Dst: ntohl
      Src: /src/haproxy/src/peers.c:1820,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1821,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1826,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1828,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:1834,1
    - Dst: stktable_get_key_shard
      Src: /src/haproxy/src/peers.c:1838,1
    - Dst: stktable_set_entry
      Src: /src/haproxy/src/peers.c:1841,1
    - Dst: stksess_free
      Src: /src/haproxy/src/peers.c:1843,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/peers.c:1851,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1882,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1884,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:1888,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1890,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1895,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1897,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:1901,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1903,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1908,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1910,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:1914,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1916,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1929,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1931,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:1935,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1936,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1938,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1942,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1944,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/peers.c:1948,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1950,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1960,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1962,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:1968,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1970,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:1974,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1976,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:1980,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:1982,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:1994,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:1995,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:1997,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2001,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2003,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:2007,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:2009,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2026,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2028,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2037,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2039,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2048,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/peers.c:2056,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2057,1
    - Dst: unlikely
      Src: /src/haproxy/src/peers.c:2059,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2060,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2062,1
    - Dst: chunk_memcpy
      Src: /src/haproxy/src/peers.c:2067,1
    - Dst: dict_insert
      Src: /src/haproxy/src/peers.c:2071,1
    - Dst: dict_entry_unref
      Src: /src/haproxy/src/peers.c:2072,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/peers.c:2076,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:2078,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/peers.c:2079,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/peers.c:2093,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:2097,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/peers.c:2099,1
    - Dst: stktable_touch_remote
      Src: /src/haproxy/src/peers.c:2104,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/peers.c:2110,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:2113,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/peers.c:2133,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/peers.c:2138,1
    - Dst: stktable_touch_remote
      Src: /src/haproxy/src/peers.c:2139,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/peers.c:2141,1
    - Dst: stksess_free
      Src: /src/haproxy/src/peers.c:2146,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/peers.c:2149,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 293
    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: 2151
      start: 1722
    functionDepth: 2
    functionLinenumber: 1722
    functionLinenumberEnd: 2151
    functionName: peer_treat_updatemsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - ntohl
    - get_trash_chunk
    - unlikely
    - intdecode
    - HA_ATOMIC_STORE
    - stktable_data_ptr_idx
    - TRACE_LEAVE
    - MIN
    - HA_RWLOCK_WRLOCK
    - dict_entry_unref
    - stktable_get_entry
    - HA_RWLOCK_WRUNLOCK
    - stktable_touch_remote
    - stksess_free
    - stktable_data_ptr
    - dict_insert
    - stktable_get_key_shard
    - stktable_set_entry
    - htonl
    - TRACE_PROTO
    - stktable_data_cast
    - MS_TO_TICKS
    - chunk_memcpy
    - tick_add
    - TRACE_ENTER
    - stksess_new
    - memcpy
    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: intdecode
      Src: /src/haproxy/src/peers.c:2173,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2177,1
    - Dst: memcpy
      Src: /src/haproxy/src/peers.c:2183,1
    - Dst: ntohl
      Src: /src/haproxy/src/peers.c:2184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 4
    argNames:
    - appctx
    - p
    - msg_cur
    - msg_end
    argTypes:
    - struct appctx*
    - struct peer*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 2161
    functionDepth: 1
    functionLinenumber: 2161
    functionLinenumberEnd: 2194
    functionName: peer_treat_ackmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - intdecode
    - TRACE_PROTO
    - ntohl
    - memcpy
    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: intdecode
      Src: /src/haproxy/src/peers.c:2210,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2212,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - appctx
    - p
    - msg_cur
    - msg_end
    argTypes:
    - struct appctx*
    - struct peer*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2227
    functionName: peer_treat_switchmsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - intdecode
    - TRACE_PROTO
    linkageType: ''
    returnType: int
    signature: "int peer_treat_switchmsg(struct appctx *appctx, struct peer *p,\n
      \                                     char **msg_cur, char *msg_end)"
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2248,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2250,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2254,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2256,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2262,1
    - Dst: strlen
      Src: /src/haproxy/src/peers.c:2271,1
    - Dst: memcmp
      Src: /src/haproxy/src/peers.c:2272,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2277,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2283,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2287,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2289,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2293,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2295,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2299,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2301,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2308,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2313,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2328,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2331,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2338,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2343,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2346,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2352,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2355,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2365,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2368,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2375,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2380,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2383,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2402,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 140
    argCount: 5
    argNames:
    - appctx
    - p
    - msg_cur
    - msg_end
    - totl
    argTypes:
    - struct appctx*
    - struct peer*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2238
    functionDepth: 1
    functionLinenumber: 2238
    functionLinenumberEnd: 2419
    functionName: peer_treat_definemsg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - intdecode
    - strlen
    - memcmp
    - TRACE_PROTO
    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: applet_getblk
      Src: /src/haproxy/src/peers.c:2439,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/peers.c:2453,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/peers.c:2457,1
    - Dst: intdecode
      Src: /src/haproxy/src/peers.c:2462,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2469,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/peers.c:2483,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/peers.c:2492,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    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: 2499
      start: 2433
    functionDepth: 1
    functionLinenumber: 2433
    functionLinenumberEnd: 2499
    functionName: peer_recv_msg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - applet_getblk
    - intdecode
    - se_fl_test
    - applet_input_data
    - TRACE_PROTO
    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_PROTO
      Src: /src/haproxy/src/peers.c:2515,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2530,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:2535,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2540,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:2545,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2552,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:2570,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:2572,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:2572,1
    - Dst: peer_treat_definemsg
      Src: /src/haproxy/src/peers.c:2578,1
    - Dst: peer_treat_switchmsg
      Src: /src/haproxy/src/peers.c:2582,1
    - Dst: peer_treat_updatemsg
      Src: /src/haproxy/src/peers.c:2593,1
    - Dst: peer_treat_ackmsg
      Src: /src/haproxy/src/peers.c:2599,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 73
    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: 2609
      start: 2505
    functionDepth: 3
    functionLinenumber: 2505
    functionLinenumberEnd: 2609
    functionName: peer_treat_awaited_msg
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - tick_add
    - peer_treat_switchmsg
    - task_wakeup
    - MS_TO_TICKS
    - peer_treat_updatemsg
    - TRACE_PROTO
    - peer_treat_ackmsg
    - peer_treat_definemsg
    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: BUG_ON
      Src: /src/haproxy/src/peers.c:2643,1
    - Dst: peer_send_resync_reqmsg
      Src: /src/haproxy/src/peers.c:2644,1
    - Dst: peer_send_ackmsg
      Src: /src/haproxy/src/peers.c:2668,1
    - Dst: HA_RWLOCK_TRYRDLOCK
      Src: /src/haproxy/src/peers.c:2678,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:2679,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/peers.c:2683,1
    - Dst: peer_send_teach_process_msgs
      Src: /src/haproxy/src/peers.c:2686,1
    - Dst: peer_send_teach_stage1_msgs
      Src: /src/haproxy/src/peers.c:2695,1
    - Dst: peer_send_teach_stage2_msgs
      Src: /src/haproxy/src/peers.c:2703,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:2725,1
    - Dst: peer_send_resync_finishedmsg
      Src: /src/haproxy/src/peers.c:2734,1
    - Dst: peer_send_resync_confirmsg
      Src: /src/haproxy/src/peers.c:2744,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 81
    argCount: 3
    argNames:
    - appctx
    - peer
    - peers
    argTypes:
    - struct appctx*
    - struct peer*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2752
      start: 2636
    functionDepth: 5
    functionLinenumber: 2636
    functionLinenumberEnd: 2752
    functionName: peer_send_msgs
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_send_resync_reqmsg
    - peer_send_teach_stage2_msgs
    - peer_send_teach_stage1_msgs
    - peer_send_resync_confirmsg
    - BUG_ON
    - peer_send_teach_process_msgs
    - peer_send_ackmsg
    - HA_RWLOCK_RDUNLOCK
    - peer_send_resync_finishedmsg
    - applet_have_more_data
    - HA_RWLOCK_TRYRDLOCK
    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:2764,1
    - Dst: strncmp
      Src: /src/haproxy/src/peers.c:2772,1
    - Dst: peer_get_version
      Src: /src/haproxy/src/peers.c:2777,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - appctx
    - maj_ver
    - min_ver
    argTypes:
    - struct appctx*
    - unsigned int*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2785
      start: 2759
    functionDepth: 2
    functionLinenumber: 2759
    functionLinenumberEnd: 2785
    functionName: peer_getline_version
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_getline
    - strncmp
    - peer_get_version
    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:2796,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:2804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2792
    functionDepth: 2
    functionLinenumber: 2792
    functionLinenumberEnd: 2811
    functionName: peer_getline_host
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_getline
    - strcmp
    linkageType: ''
    returnType: int
    signature: int peer_getline_host(struct appctx *appctx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strm_fe
      Src: /src/haproxy/src/peers.c:2824,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/peers.c:2824,1
    - Dst: peer_getline
      Src: /src/haproxy/src/peers.c:2826,1
    - Dst: strchr
      Src: /src/haproxy/src/peers.c:2834,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:2844,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - appctx
    - curpeer
    argTypes:
    - struct appctx*
    - struct peer**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2819
    functionDepth: 2
    functionLinenumber: 2819
    functionLinenumberEnd: 2857
    functionName: peer_getline_last
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_getline
    - strcmp
    - strm_fe
    - strchr
    - appctx_strm
    linkageType: ''
    returnType: int
    signature: int peer_getline_last(struct appctx *appctx, struct peer **curpeer)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:2868,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:2868,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/peers.c:2875,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:2891,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/peers.c:2894,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/peers.c:2896,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/peers.c:2899,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:2903,1
    - Dst: appctx_is_back
      Src: /src/haproxy/src/peers.c:2911,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 2
    argNames:
    - peer
    - peers
    argTypes:
    - struct peer*
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2921
      start: 2864
    functionDepth: 1
    functionLinenumber: 2864
    functionLinenumberEnd: 2921
    functionName: init_connected_peer
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    - tick_add
    - _HA_ATOMIC_LOAD
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - __ha_cpu_relax
    - task_wakeup
    - appctx_is_back
    - MS_TO_TICKS
    linkageType: ''
    returnType: void
    signature: void init_connected_peer(struct peer *peer, struct peers *peers)
  - BBCount: 63
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/peers.c:2935,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/peers.c:2935,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/peers.c:2936,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/peers.c:2941,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:2942,1
    - Dst: peer_getline_version
      Src: /src/haproxy/src/peers.c:2958,1
    - Dst: peer_getline_host
      Src: /src/haproxy/src/peers.c:2969,1
    - Dst: peer_getline_last
      Src: /src/haproxy/src/peers.c:2980,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:2987,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3000,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3000,1
    - Dst: ha_random
      Src: /src/haproxy/src/peers.c:3000,1
    - Dst: peer_session_forceshutdown
      Src: /src/haproxy/src/peers.c:3001,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3018,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3025,1
    - Dst: peer_send_status_successmsg
      Src: /src/haproxy/src/peers.c:3032,1
    - Dst: init_connected_peer
      Src: /src/haproxy/src/peers.c:3043,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3046,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3054,1
    - Dst: peer_send_hellomsg
      Src: /src/haproxy/src/peers.c:3061,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3076,1
    - Dst: peer_getline
      Src: /src/haproxy/src/peers.c:3084,1
    - Dst: atoi
      Src: /src/haproxy/src/peers.c:3092,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:3096,1
    - Dst: init_connected_peer
      Src: /src/haproxy/src/peers.c:3100,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3109,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3123,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/peers.c:3131,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/peers.c:3143,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/peers.c:3147,1
    - Dst: peer_recv_msg
      Src: /src/haproxy/src/peers.c:3153,1
    - Dst: peer_treat_awaited_msg
      Src: /src/haproxy/src/peers.c:3161,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/peers.c:3167,1
    - Dst: peer_send_heartbeatmsg
      Src: /src/haproxy/src/peers.c:3180,1
    - Dst: peer_send_msgs
      Src: /src/haproxy/src/peers.c:3189,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3201,1
    - Dst: peer_send_status_errormsg
      Src: /src/haproxy/src/peers.c:3203,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3209,1
    - Dst: peer_send_error_size_limitmsg
      Src: /src/haproxy/src/peers.c:3211,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:3217,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3222,1
    - Dst: peer_send_error_protomsg
      Src: /src/haproxy/src/peers.c:3224,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/peers.c:3225,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3234,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3237,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/peers.c:3240,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/peers.c:3241,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3250,1
    CyclomaticComplexity: 94
    EdgeCount: 94
    ICount: 293
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 2926
    functionDepth: 6
    functionLinenumber: 2926
    functionLinenumberEnd: 3252
    functionName: peer_io_handler
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - peer_getline
    - applet_will_consume
    - unlikely
    - peer_send_status_successmsg
    - task_wakeup
    - applet_wont_consume
    - atoi
    - peer_treat_awaited_msg
    - init_connected_peer
    - HA_SPIN_LOCK
    - peer_recv_msg
    - _HA_ATOMIC_INC
    - peer_send_hellomsg
    - peer_send_error_protomsg
    - peer_send_status_errormsg
    - peer_getline_version
    - HA_SPIN_UNLOCK
    - peer_session_forceshutdown
    - _HA_ATOMIC_DEC
    - applet_get_outbuf
    - peer_getline_last
    - peer_send_msgs
    - applet_skip_input
    - TRACE_PROTO
    - applet_reset_input
    - MS_TO_TICKS
    - applet_set_eos
    - applet_have_more_data
    - ha_random
    - applet_fl_test
    - tick_add
    - peer_getline_host
    - peer_send_heartbeatmsg
    - peer_send_error_size_limitmsg
    linkageType: ''
    returnType: void
    signature: void peer_io_handler(struct appctx *appctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __peer_session_deinit
      Src: /src/haproxy/src/peers.c:3285,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3289
      start: 3269
    functionDepth: 2
    functionLinenumber: 3269
    functionLinenumberEnd: 3289
    functionName: peer_session_forceshutdown
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 1
    functionsReached:
    - appctx_wakeup
    - __peer_session_deinit
    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:3302,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3303,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - fe
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3308
      start: 3292
    functionDepth: 1
    functionLinenumber: 3292
    functionLinenumberEnd: 3308
    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: tick_add
      Src: /src/haproxy/src/peers.c:3320,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3320,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3320,1
    - Dst: appctx_new_on
      Src: /src/haproxy/src/peers.c:3327,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3335,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3336,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - peers
    - peer
    argTypes:
    - struct peers*
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3341
      start: 3313
    functionDepth: 1
    functionLinenumber: 3313
    functionLinenumberEnd: 3341
    functionName: peer_session_create
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - tick_add
    - HA_ATOMIC_INC
    - appctx_new_on
    - MS_TO_TICKS
    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:3352,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3353,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3356,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3346
    functionDepth: 1
    functionLinenumber: 3346
    functionLinenumberEnd: 3360
    functionName: clear_peer_learning_status
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - MS_TO_TICKS
    - tick_add
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    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:3373,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3373,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3385,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3400,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3406,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3406,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/peers.c:3416,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3417,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3420,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - peers
    - peer
    argTypes:
    - struct peers*
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3421
      start: 3362
    functionDepth: 1
    functionLinenumber: 3362
    functionLinenumberEnd: 3421
    functionName: sync_peer_learn_state
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - tick_add
    - HA_ATOMIC_OR
    - HA_ATOMIC_AND
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - MS_TO_TICKS
    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:3429,1
    - Dst: clear_peer_learning_status
      Src: /src/haproxy/src/peers.c:3433,1
    - Dst: appctx_is_back
      Src: /src/haproxy/src/peers.c:3434,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3445,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3459,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3463,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - peers
    - peer
    argTypes:
    - struct peers*
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3465
      start: 3426
    functionDepth: 2
    functionLinenumber: 3426
    functionLinenumberEnd: 3465
    functionName: sync_peer_app_state
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - 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:3481,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3481,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3484,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3492,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3495,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3495,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/peers.c:3500,1
    - Dst: sync_peer_learn_state
      Src: /src/haproxy/src/peers.c:3505,1
    - Dst: sync_peer_app_state
      Src: /src/haproxy/src/peers.c:3506,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3522,1
    - Dst: peer_session_create
      Src: /src/haproxy/src/peers.c:3529,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3531,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3536,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3551,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3554,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3571,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3571,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3573,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3574,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3574,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3578,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3579,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3587,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3593,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3593,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3596,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3596,1
    - Dst: ha_random
      Src: /src/haproxy/src/peers.c:3596,1
    - Dst: peer_session_forceshutdown
      Src: /src/haproxy/src/peers.c:3598,1
    - Dst: sync_peer_app_state
      Src: /src/haproxy/src/peers.c:3599,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3603,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3604,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3604,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3606,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3608,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3615,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3621,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/peers.c:3627,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3633,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3634,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:3636,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 76
    argCount: 3
    argNames:
    - task
    - peers
    - state
    argTypes:
    - struct task*
    - struct peers*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3637
      start: 3468
    functionDepth: 3
    functionLinenumber: 3468
    functionLinenumberEnd: 3637
    functionName: __process_running_peer_sync
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - tick_add
    - HA_ATOMIC_OR
    - appctx_wakeup
    - tick_is_expired
    - task_wakeup
    - sync_peer_app_state
    - sync_peer_learn_state
    - HA_SPIN_UNLOCK
    - tick_first
    - MS_TO_TICKS
    - peer_session_create
    - peer_session_forceshutdown
    - ha_random
    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:3648,1
    - Dst: sync_peer_learn_state
      Src: /src/haproxy/src/peers.c:3650,1
    - Dst: sync_peer_app_state
      Src: /src/haproxy/src/peers.c:3651,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3664,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3664,1
    - Dst: ha_random
      Src: /src/haproxy/src/peers.c:3664,1
    - Dst: peer_session_forceshutdown
      Src: /src/haproxy/src/peers.c:3666,1
    - Dst: sync_peer_app_state
      Src: /src/haproxy/src/peers.c:3667,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3671,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3678,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3682,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3682,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3683,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/peers.c:3688,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3692,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3695,1
    - Dst: tick_isset
      Src: /src/haproxy/src/peers.c:3700,1
    - Dst: tick_add
      Src: /src/haproxy/src/peers.c:3701,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/peers.c:3701,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3705,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:3717,1
    - Dst: tick_first
      Src: /src/haproxy/src/peers.c:3719,1
    - Dst: peer_session_create
      Src: /src/haproxy/src/peers.c:3724,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3732,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/peers.c:3735,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/peers.c:3747,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/peers.c:3752,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: 3753
      start: 3640
    functionDepth: 3
    functionLinenumber: 3640
    functionLinenumberEnd: 3753
    functionName: __process_stopping_peer_sync
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - tick_add
    - _HA_ATOMIC_DEC
    - appctx_wakeup
    - tick_is_expired
    - _HA_ATOMIC_INC
    - tick_isset
    - sync_peer_app_state
    - sync_peer_learn_state
    - tick_first
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - MS_TO_TICKS
    - peer_session_create
    - peer_session_forceshutdown
    - ha_random
    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:3768,1
    - Dst: __process_stopping_peer_sync
      Src: /src/haproxy/src/peers.c:3773,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3778
      start: 3760
    functionDepth: 4
    functionLinenumber: 3760
    functionLinenumberEnd: 3778
    functionName: process_peer_sync
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - __process_running_peer_sync
    - __process_stopping_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:3797,1
    - Dst: memset
      Src: /src/haproxy/src/peers.c:3801,1
    - Dst: signal_register_task
      Src: /src/haproxy/src/peers.c:3804,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/peers.c:3805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - peers
    argTypes:
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3807
      start: 3784
    functionDepth: 1
    functionLinenumber: 3784
    functionLinenumberEnd: 3807
    functionName: peers_init_sync
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - signal_register_task
    - task_new_on
    - task_wakeup
    - memset
    linkageType: ''
    returnType: int
    signature: int peers_init_sync(struct peers *peers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/peers.c:3817,1
    - Dst: calloc
      Src: /src/haproxy/src/peers.c:3818,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:3830,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:3831,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - max_entries
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3833
      start: 3812
    functionDepth: 1
    functionLinenumber: 3812
    functionLinenumberEnd: 3833
    functionName: new_dcache_tx
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - free
    - malloc
    - calloc
    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:3847,1
    - Dst: new_dcache_tx
      Src: /src/haproxy/src/peers.c:3848,1
    - Dst: calloc
      Src: /src/haproxy/src/peers.c:3849,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:3860,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:3861,1
    - Dst: free
      Src: /src/haproxy/src/peers.c:3862,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - max_entries
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3864
      start: 3841
    functionDepth: 2
    functionLinenumber: 3841
    functionLinenumberEnd: 3864
    functionName: new_dcache
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - free
    - new_dcache_tx
    - calloc
    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:3874,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: 3875
      start: 3871
    functionDepth: 1
    functionLinenumber: 3871
    functionLinenumberEnd: 3875
    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:3887,1
    - Dst: dict_entry_unref
      Src: /src/haproxy/src/peers.c:3889,1
    - Dst: memset
      Src: /src/haproxy/src/peers.c:3895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - peer
    argTypes:
    - struct peer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3896
      start: 3881
    functionDepth: 1
    functionLinenumber: 3881
    functionLinenumberEnd: 3896
    functionName: flush_dcache
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 1
    functionsReached:
    - ebpt_delete
    - memset
    - dict_entry_unref
    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:3914,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/peers.c:3930,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/peers.c:3932,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - dc
    - i
    argTypes:
    - struct dcache*
    - struct dcache_tx_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3939
      start: 3904
    functionDepth: 2
    functionLinenumber: 3904
    functionLinenumberEnd: 3939
    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:3950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - peers
    argTypes:
    - struct peers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3956
      start: 3945
    functionDepth: 3
    functionLinenumber: 3945
    functionLinenumberEnd: 3956
    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:3970,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/peers.c:3987,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - peers
    - table
    argTypes:
    - struct peers*
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3994
      start: 3962
    functionDepth: 1
    functionLinenumber: 3962
    functionLinenumberEnd: 3994
    functionName: peers_register_table
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - calloc
    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:4016,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:4018,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:4022,1
    - Dst: strcmp
      Src: /src/haproxy/src/peers.c:4029,1
    - Dst: cli_err
      Src: /src/haproxy/src/peers.c:4036,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: 4042
      start: 4014
    functionDepth: 1
    functionLinenumber: 4014
    functionLinenumberEnd: 4042
    functionName: cli_parse_show_peers
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - cli_err
    - applet_reserve_svcctx
    - strcmp
    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:4053,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4054,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:4058,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:4060,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:4061,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4061,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4062,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/peers.c:4065,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: 4069
      start: 4049
    functionDepth: 1
    functionLinenumber: 4049
    functionLinenumberEnd: 4069
    functionName: peers_dump_head
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - tick_is_expired
    - chunk_appendf
    - human_time
    - HA_ATOMIC_LOAD
    - applet_putchk
    - get_localtime
    - TICKS_TO_MS
    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:4084,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4085,1
    - Dst: peer_app_state_str
      Src: /src/haproxy/src/peers.c:4090,1
    - Dst: peer_learn_state_str
      Src: /src/haproxy/src/peers.c:4091,1
    - Dst: statuscode_str
      Src: /src/haproxy/src/peers.c:4092,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4094,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:4095,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4095,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4096,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4098,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:4100,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:4101,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4101,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4102,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4104,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/peers.c:4106,1
    - Dst: human_time
      Src: /src/haproxy/src/peers.c:4107,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4107,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/peers.c:4108,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4110,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4114,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4119,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/peers.c:4123,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/peers.c:4132,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4134,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/peers.c:4134,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/peers.c:4134,1
    - Dst: objt_conn
      Src: /src/haproxy/src/peers.c:4136,1
    - Dst: strm_orig
      Src: /src/haproxy/src/peers.c:4136,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4138,1
    - Dst: conn_get_xprt_name
      Src: /src/haproxy/src/peers.c:4138,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/peers.c:4140,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/peers.c:4140,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4143,1
    - Dst: get_host_port
      Src: /src/haproxy/src/peers.c:4143,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4148,1
    - Dst: strm_li
      Src: /src/haproxy/src/peers.c:4148,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/peers.c:4152,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/peers.c:4152,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4155,1
    - Dst: get_host_port
      Src: /src/haproxy/src/peers.c:4155,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4160,1
    - Dst: strm_li
      Src: /src/haproxy/src/peers.c:4160,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4166,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4173,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4180,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4189,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4193,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4197,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/peers.c:4199,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4201,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4212,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4214,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4217,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4221,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4222,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4228,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4234,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/peers.c:4235,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: 4239
      start: 4076
    functionDepth: 1
    functionLinenumber: 4076
    functionLinenumberEnd: 4239
    functionName: peers_dump_peer
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - conn_get_src
    - peer_app_state_str
    - get_host_port
    - objt_conn
    - tick_is_expired
    - conn_get_xprt_name
    - chunk_appendf
    - human_time
    - sc_opposite
    - strm_orig
    - conn_get_dst
    - appctx_sc
    - addr_to_str
    - __sc_strm
    - strm_li
    - _HA_ATOMIC_LOAD
    - statuscode_str
    - peer_learn_state_str
    - applet_putchk
    - sc_state_str
    - TICKS_TO_MS
    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:4252,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/peers.c:4254,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/peers.c:4265,1
    - Dst: peers_dump_head
      Src: /src/haproxy/src/peers.c:4268,1
    - Dst: peers_dump_peer
      Src: /src/haproxy/src/peers.c:4286,1
    - Dst: thread_release
      Src: /src/haproxy/src/peers.c:4299,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4301
      start: 4247
    functionDepth: 2
    functionLinenumber: 4247
    functionLinenumberEnd: 4301
    functionName: cli_io_handler_show_peers
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - thread_release
    - peers_dump_peer
    - thread_isolate
    - chunk_appendf
    - peers_dump_head
    - chunk_reset
    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:4310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkwl
    argTypes:
    - struct peers_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4311
      start: 4308
    functionDepth: 1
    functionLinenumber: 4308
    functionLinenumberEnd: 4311
    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:4320,1
    - Dst: atoi
      Src: /src/haproxy/src/peers.c:4324,1
    - Dst: memprintf
      Src: /src/haproxy/src/peers.c:4327,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: 4333
      start: 4314
    functionDepth: 1
    functionLinenumber: 4314
    functionLinenumberEnd: 4333
    functionName: cfg_parse_max_updt_at_once
    functionSourceFile: /src/haproxy/src/peers.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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:192,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 193
    functionName: compute_ideal_maxconn
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - MAX
    - is_any_limit_configured
    - compute_ideal_maxpipes
    linkageType: ''
    returnType: int
    signature: int compute_ideal_maxconn()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: compute_ideal_maxpipes
      Src: /src/haproxy/src/limits.c:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - maxconn
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 226
    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:244,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:248,1
    - Dst: MAX
      Src: /src/haproxy/src/limits.c:251,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:253,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:255,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - maxsock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 259
    functionName: check_if_maxsock_permitted
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - raise_rlim_nofile
    - getrlimit
    - MAX
    linkageType: ''
    returnType: int
    signature: int check_if_maxsock_permitted(int maxsock)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: compute_ideal_maxconn
      Src: /src/haproxy/src/limits.c:266,1
    - Dst: fprintf
      Src: /src/haproxy/src/limits.c:295,1
    - Dst: MIN
      Src: /src/haproxy/src/limits.c:330,1
    - Dst: round_2dig
      Src: /src/haproxy/src/limits.c:331,1
    - Dst: check_if_maxsock_permitted
      Src: /src/haproxy/src/limits.c:338,1
    - Dst: compute_ideal_maxsock
      Src: /src/haproxy/src/limits.c:338,1
    - Dst: fprintf
      Src: /src/haproxy/src/limits.c:343,1
    - Dst: round_2dig
      Src: /src/haproxy/src/limits.c:364,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:367,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:373,1
    - Dst: fprintf
      Src: /src/haproxy/src/limits.c:380,1
    - Dst: MIN
      Src: /src/haproxy/src/limits.c:409,1
    - Dst: round_2dig
      Src: /src/haproxy/src/limits.c:410,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:417,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:423,1
    - Dst: check_if_maxsock_permitted
      Src: /src/haproxy/src/limits.c:426,1
    - Dst: compute_ideal_maxsock
      Src: /src/haproxy/src/limits.c:426,1
    - Dst: fprintf
      Src: /src/haproxy/src/limits.c:432,1
    - Dst: fprintf
      Src: /src/haproxy/src/limits.c:436,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 439
    functionName: set_global_maxconn
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - MIN
    - compute_ideal_maxsock
    - exit
    - check_if_maxsock_permitted
    - fprintf
    - ha_alert
    - compute_ideal_maxconn
    - round_2dig
    linkageType: ''
    returnType: void
    signature: void set_global_maxconn(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/limits.c:454,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:457,1
    - Dst: getrlimit
      Src: /src/haproxy/src/limits.c:458,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:463,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:465,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/limits.c:473,1
    - Dst: getrlimit
      Src: /src/haproxy/src/limits.c:474,1
    - Dst: ha_warning
      Src: /src/haproxy/src/limits.c:476,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 483
    functionName: apply_nofile_limit
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - getrlimit
    - ha_warning
    - exit
    - raise_rlim_nofile
    - MAX
    - ha_alert
    linkageType: ''
    returnType: void
    signature: void apply_nofile_limit(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setrlimit
      Src: /src/haproxy/src/limits.c:496,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:498,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:500,1
    - Dst: ha_warning
      Src: /src/haproxy/src/limits.c:503,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 508
    functionName: apply_memory_limit
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - exit
    - setrlimit
    - ha_alert
    linkageType: ''
    returnType: void
    signature: void apply_memory_limit(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getrlimit
      Src: /src/haproxy/src/limits.c:520,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:523,1
    - Dst: exit
      Src: /src/haproxy/src/limits.c:527,1
    - Dst: ha_alert
      Src: /src/haproxy/src/limits.c:530,1
    - Dst: fcntl
      Src: /src/haproxy/src/limits.c:536,1
    - Dst: dup2
      Src: /src/haproxy/src/limits.c:537,1
    - Dst: ha_warning
      Src: /src/haproxy/src/limits.c:538,1
    - Dst: strerror
      Src: /src/haproxy/src/limits.c:539,1
    - Dst: close
      Src: /src/haproxy/src/limits.c:541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 543
    functionName: check_nofile_lim_and_prealloc_fd
    functionSourceFile: /src/haproxy/src/limits.c
    functionUses: 0
    functionsReached:
    - dup2
    - getrlimit
    - ha_warning
    - exit
    - close
    - fcntl
    - strerror
    - ha_alert
    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:
    - resolve_sym_name
    - my_backtrace
    - ha_sigmask
    - may_access
    - sigemptyset
    - snprintf
    - chunk_appendf
    - sigaddset
    - dump_addr_and_bytes
    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:
    - write
    - DISGUISE
    - ha_dump_backtrace
    - b_make
    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_appendf
      Src: /src/haproxy/src/debug.c:372,1
    - Dst: ha_task_dump
      Src: /src/haproxy/src/debug.c:373,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:381,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:386,1
    - Dst: lock_label
      Src: /src/haproxy/src/debug.c:387,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:406,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:407,1
    - Dst: lock_label
      Src: /src/haproxy/src/debug.c:408,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:412,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:416,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:425,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:427,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:431,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:433,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:438,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:439,1
    - Dst: ha_dump_backtrace
      Src: /src/haproxy/src/debug.c:441,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 61
    argCount: 2
    argNames:
    - buf
    - is_caller
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 445
    functionName: ha_thread_dump_one
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - thread_has_tasks
    - _HA_ATOMIC_LOAD
    - HLUA_IS_BUSY
    - ha_get_pthread_id
    - HA_ATOMIC_STORE
    - now_mono_time
    - chunk_appendf
    - MT_LIST_ISEMPTY
    - lock_label
    - now_cpu_time
    - tick_isset
    - HA_ATOMIC_LOAD
    - ha_dump_backtrace
    - eb_is_empty
    - LIST_ISEMPTY
    - ha_task_dump
    - mark_tainted
    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:463,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/debug.c:473,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/debug.c:475,1
    - Dst: ha_tkill
      Src: /src/haproxy/src/debug.c:480,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:484,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/debug.c:489,1
    - Dst: ha_thread_dump_one
      Src: /src/haproxy/src/debug.c:493,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/debug.c:504,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:505,1
    - Dst: ha_thread_dump_one
      Src: /src/haproxy/src/debug.c:506,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - thr
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 459
    functionDepth: 3
    functionLinenumber: 459
    functionLinenumberEnd: 509
    functionName: ha_thread_dump_fill
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - ASSUME
    - ha_thread_dump_one
    - HA_ATOMIC_STORE
    - HA_ATOMIC_CAS
    - HA_ATOMIC_LOAD
    - ha_thread_relax
    - 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:521,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:527,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/debug.c:531,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/debug.c:534,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - thr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 535
    functionName: ha_thread_dump_done
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_CAS
    - ha_thread_relax
    - HA_ATOMIC_LOAD
    - ASSUME
    linkageType: ''
    returnType: void
    signature: void ha_thread_dump_done(int thr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:551,1
    - Dst: TASK_IS_TASKLET
      Src: /src/haproxy/src/debug.c:555,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:556,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:561,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/debug.c:565,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:568,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/debug.c:569,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:570,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:573,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:575,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/debug.c:579,1
    - Dst: sc_strm
      Src: /src/haproxy/src/debug.c:580,1
    - Dst: sc_strm
      Src: /src/haproxy/src/debug.c:582,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:585,1
    - Dst: strm_dump_to_buffer
      Src: /src/haproxy/src/debug.c:586,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:586,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:591,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:592,1
    - Dst: HLUA_IS_BUSY
      Src: /src/haproxy/src/debug.c:593,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:594,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:597,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:601,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:605,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:609,1
    - Dst: append_prefixed_str
      Src: /src/haproxy/src/debug.c:610,1
    - Dst: hlua_traceback
      Src: /src/haproxy/src/debug.c:610,1
    - Dst: b_peek
      Src: /src/haproxy/src/debug.c:614,1
    - Dst: b_data
      Src: /src/haproxy/src/debug.c:614,1
    - Dst: b_putchr
      Src: /src/haproxy/src/debug.c:615,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 44
    argCount: 3
    argNames:
    - buf
    - task
    - pfx
    argTypes:
    - struct buffer*
    - struct task*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 617
    functionName: ha_task_dump
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 1
    functionsReached:
    - resolve_sym_name
    - HLUA_IS_BUSY
    - now_mono_time
    - b_data
    - chunk_appendf
    - TASK_IS_TASKLET
    - HA_ATOMIC_LOAD
    - append_prefixed_str
    - appctx_sc
    - sc_strm
    - b_putchr
    - strm_dump_to_buffer
    - b_peek
    - hlua_traceback
    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:628,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:631,1
    - Dst: ha_thread_dump_fill
      Src: /src/haproxy/src/debug.c:632,1
    - Dst: ha_thread_dump_done
      Src: /src/haproxy/src/debug.c:633,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:634,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 623
    functionDepth: 4
    functionLinenumber: 623
    functionLinenumberEnd: 643
    functionName: cli_io_handler_show_threads
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - ha_thread_dump_done
    - ha_thread_dump_fill
    - applet_putchk
    - applet_reserve_svcctx
    - chunk_reset
    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:649,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:652,1
    - Dst: dump_libs
      Src: /src/haproxy/src/debug.c:653,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:654,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: 657
      start: 647
    functionDepth: 2
    functionLinenumber: 647
    functionLinenumberEnd: 657
    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:668,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:670,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:672,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:673,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:675,1
    - Dst: hap_get_next_build_opt
      Src: /src/haproxy/src/debug.c:676,1
    - Dst: append_prefixed_str
      Src: /src/haproxy/src/debug.c:677,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:678,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:680,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:682,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:684,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:686,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:688,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:690,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:692,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:694,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:696,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:698,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:700,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:702,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:704,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:706,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:708,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:710,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/debug.c:710,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:712,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/debug.c:712,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:714,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:715,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:716,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:718,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:719,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:723,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:724,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:725,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:727,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:728,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:730,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:731,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:734,1
    - Dst: errname
      Src: /src/haproxy/src/debug.c:735,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:739,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:740,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:741,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:743,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:744,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:746,1
    - Dst: CAPS_TO_ULLONG
      Src: /src/haproxy/src/debug.c:747,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:750,1
    - Dst: errname
      Src: /src/haproxy/src/debug.c:751,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:754,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:755,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:757,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:759,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:760,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:761,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:761,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:762,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:762,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:763,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:764,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:764,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:765,1
    - Dst: normalize_rlim
      Src: /src/haproxy/src/debug.c:765,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:766,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:767,1
    - Dst: normalize_rlim
      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: chunk_appendf
      Src: /src/haproxy/src/debug.c:769,1
    - Dst: LIM2A
      Src: /src/haproxy/src/debug.c:770,1
    - Dst: normalize_rlim
      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: cpu_topo_dump_summary
      Src: /src/haproxy/src/debug.c:773,1
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:776,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:778,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: 779
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 779
    functionName: debug_parse_cli_show_dev
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - CAPS_TO_ULLONG
    - hap_get_next_build_opt
    - chunk_appendf
    - ha_free
    - cli_err
    - HA_ANON_CLI
    - append_prefixed_str
    - LIM2A
    - errname
    - cpu_topo_dump_summary
    - chunk_strcat
    - cli_msg
    - normalize_rlim
    - chunk_reset
    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:787,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:796,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:799,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:802,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:804,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:813,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:815,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:816,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:816,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/debug.c:820,1
    - Dst: ha_thread_dump_fill
      Src: /src/haproxy/src/debug.c:824,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:828,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:828,1
    - Dst: ha_thread_dump_done
      Src: /src/haproxy/src/debug.c:830,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:834,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:835,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:840,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:840,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:842,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:843,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:848,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:848,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:851,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:852,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:857,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:857,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:860,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:867,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:867,1
    - Dst: abort
      Src: /src/haproxy/src/debug.c:870,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 782
    functionDepth: 4
    functionLinenumber: 782
    functionLinenumberEnd: 871
    functionName: ha_panic
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 1
    functionsReached:
    - get_trash_chunk
    - ha_thread_dump_done
    - chunk_printf
    - chunk_appendf
    - abort
    - ha_thread_dump_fill
    - DISGUISE
    - get_tainted
    - write
    - mark_tainted
    linkageType: ''
    returnType: void
    signature: void ha_panic()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:885,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:894,1
    - Dst: b_make
      Src: /src/haproxy/src/debug.c:896,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:898,1
    - Dst: now_cpu_time
      Src: /src/haproxy/src/debug.c:899,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:901,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/debug.c:914,1
    - Dst: ha_thread_dump_one
      Src: /src/haproxy/src/debug.c:916,1
    - Dst: get_tainted
      Src: /src/haproxy/src/debug.c:919,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:920,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:934,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:935,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:942,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:947,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:947,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 879
    functionDepth: 3
    functionLinenumber: 879
    functionLinenumberEnd: 948
    functionName: ha_stuck_warning
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 1
    functionsReached:
    - write
    - HA_ATOMIC_INC
    - ha_thread_dump_one
    - chunk_appendf
    - now_cpu_time
    - HA_ATOMIC_LOAD
    - DISGUISE
    - get_tainted
    - b_make
    - mark_tainted
    linkageType: ''
    returnType: void
    signature: void ha_stuck_warning(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/debug.c:957,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:959,1
    - Dst: write
      Src: /src/haproxy/src/debug.c:959,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:959,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:961,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/debug.c:963,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - counter
    - msg
    - taint
    argTypes:
    - int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 964
    functionName: complain
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_FETCH_ADD
    - strlen
    - DISGUISE
    - write
    - mark_tainted
    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:969,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:971,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:974,1
    - Dst: exit
      Src: /src/haproxy/src/debug.c:975,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: 977
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 977
    functionName: debug_parse_cli_exit
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - exit
    - cli_has_level
    - atoi
    - _HA_ATOMIC_INC
    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:984,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:987,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/debug.c:988,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: 990
      start: 982
    functionDepth: 2
    functionLinenumber: 982
    functionLinenumberEnd: 990
    functionName: debug_parse_cli_bug
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - BUG_ON
    - _HA_ATOMIC_INC
    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:997,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1000,1
    - Dst: WARN_ON
      Src: /src/haproxy/src/debug.c:1001,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: 1003
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1003
    functionName: debug_parse_cli_warn
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - WARN_ON
    - cli_has_level
    - _HA_ATOMIC_INC
    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:1010,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1013,1
    - Dst: CHECK_IF
      Src: /src/haproxy/src/debug.c:1014,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: 1016
      start: 1008
    functionDepth: 2
    functionLinenumber: 1008
    functionLinenumberEnd: 1016
    functionName: debug_parse_cli_check
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - CHECK_IF
    - _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:1023,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1027,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1029,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1031,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1033,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1035,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1039,1
    - Dst: fd_delete
      Src: /src/haproxy/src/debug.c:1041,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1043,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: 1045
      start: 1019
    functionDepth: 2
    functionLinenumber: 1019
    functionLinenumberEnd: 1045
    functionName: debug_parse_cli_close
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - strcmp
    - cli_err
    - atoi
    - close
    - _HA_ATOMIC_INC
    - cli_msg
    - cli_has_level
    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:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - task
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1054
    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:1061,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1064,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1065,1
    - Dst: task_new_on
      Src: /src/haproxy/src/debug.c:1066,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1071,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: 1075
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1075
    functionName: debug_parse_cli_deadlock
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - task_new_on
    - task_wakeup
    - atoi
    - _HA_ATOMIC_INC
    - 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:1080,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1082,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1085,1
    - Dst: usleep
      Src: /src/haproxy/src/debug.c:1086,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: 1088
      start: 1078
    functionDepth: 2
    functionLinenumber: 1078
    functionLinenumberEnd: 1088
    functionName: debug_parse_cli_delay
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - usleep
    - cli_has_level
    - atoi
    - _HA_ATOMIC_INC
    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:1095,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1098,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1099,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1102,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1103,1
    - Dst: send_log
      Src: /src/haproxy/src/debug.c:1106,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: 1108
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1108
    functionName: debug_parse_cli_log
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - send_log
    - chunk_strcat
    - _HA_ATOMIC_INC
    - cli_has_level
    - chunk_reset
    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:1114,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1118,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1121,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1122,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1124,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/debug.c:1125,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/debug.c:1126,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/debug.c:1129,1
    - Dst: tv_ms_cmp
      Src: /src/haproxy/src/debug.c:1131,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/debug.c:1133,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/debug.c:1134,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1138,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: 1141
      start: 1111
    functionDepth: 2
    functionLinenumber: 1111
    functionLinenumberEnd: 1141
    functionName: debug_parse_cli_loop
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - thread_release
    - tv_ms_add
    - strcmp
    - thread_isolate
    - _HA_ATOMIC_AND
    - atoi
    - tv_ms_cmp
    - gettimeofday
    - _HA_ATOMIC_INC
    - cli_has_level
    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:1146,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1149,1
    - Dst: ha_panic
      Src: /src/haproxy/src/debug.c:1150,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: 1152
      start: 1144
    functionDepth: 5
    functionLinenumber: 1144
    functionLinenumberEnd: 1152
    functionName: debug_parse_cli_panic
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - ha_panic
    - cli_has_level
    - _HA_ATOMIC_INC
    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:1162,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1165,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1166,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1169,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1170,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/debug.c:1173,1
    - Dst: pipe
      Src: /src/haproxy/src/debug.c:1174,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/debug.c:1177,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/debug.c:1180,1
    - Dst: fork
      Src: /src/haproxy/src/debug.c:1183,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1191,1
    - Dst: dup2
      Src: /src/haproxy/src/debug.c:1192,1
    - Dst: dup2
      Src: /src/haproxy/src/debug.c:1193,1
    - Dst: execvp
      Src: /src/haproxy/src/debug.c:1196,1
    - Dst: printf
      Src: /src/haproxy/src/debug.c:1197,1
    - Dst: exit
      Src: /src/haproxy/src/debug.c:1198,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1202,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1203,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1204,1
    - Dst: read
      Src: /src/haproxy/src/debug.c:1206,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/debug.c:1211,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1215,1
    - Dst: waitpid
      Src: /src/haproxy/src/debug.c:1216,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1218,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1222,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:1223,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1225,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1226,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: 1227
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1227
    functionName: debug_parse_cli_exec
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - dup2
    - thread_release
    - thread_isolate
    - exit
    - waitpid
    - fd_set_cloexec
    - printf
    - read
    - cli_err
    - pipe
    - close
    - execvp
    - fork
    - chunk_strcat
    - _HA_ATOMIC_INC
    - cli_msg
    - cli_has_level
    - chunk_reset
    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:1235,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/debug.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - sig
    - si
    - arg
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1233
    functionDepth: 1
    functionLinenumber: 1233
    functionLinenumberEnd: 1239
    functionName: debug_delay_inj_sighandler
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - statistical_prng_range
    - __ha_cpu_relax
    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:1247,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1251,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1253,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1255,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1257,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1260,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1264,1
    - Dst: dump_hex
      Src: /src/haproxy/src/debug.c:1265,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1267,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: 1268
      start: 1243
    functionDepth: 2
    functionLinenumber: 1243
    functionLinenumberEnd: 1268
    functionName: debug_parse_cli_hex
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_err
    - _HA_ATOMIC_INC
    - strtoul
    - cli_msg
    - cli_has_level
    - dump_hex
    - chunk_reset
    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:1275,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1279,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1281,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1283,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:1284,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/debug.c:1285,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:1286,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1288,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: 1289
      start: 1271
    functionDepth: 2
    functionLinenumber: 1271
    functionLinenumberEnd: 1289
    functionName: debug_parse_cli_sym
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - resolve_sym_name
    - chunk_printf
    - chunk_appendf
    - cli_err
    - _HA_ATOMIC_INC
    - strtoul
    - cli_msg
    - cli_has_level
    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:1297,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1301,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1304,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1307,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1309,1
    - Dst: ha_tkill
      Src: /src/haproxy/src/debug.c:1311,1
    - Dst: raise
      Src: /src/haproxy/src/debug.c:1313,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: 1315
      start: 1292
    functionDepth: 2
    functionLinenumber: 1292
    functionLinenumberEnd: 1315
    functionName: debug_parse_cli_tkill
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - cli_err
    - atoi
    - ha_tkill
    - _HA_ATOMIC_INC
    - raise
    - cli_has_level
    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:1322,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1322,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/debug.c:1322,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: 1324
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1324
    functionName: debug_parse_cli_hash
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - HA_ANON_CLI
    - memprintf
    - cli_dynmsg
    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:1332,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1334,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1336,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1338,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1340,1
    - Dst: memset
      Src: /src/haproxy/src/debug.c:1342,1
    - Dst: cli_msg
      Src: /src/haproxy/src/debug.c:1346,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: 1347
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1347
    functionName: debug_parse_cli_write
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - memset
    - cli_err
    - _HA_ATOMIC_INC
    - strtoul
    - cli_msg
    - chunk_reset
    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:1358,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1368,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1374,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1383,1
    - Dst: ist2
      Src: /src/haproxy/src/debug.c:1389,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1390,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1390,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1391,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1392,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1392,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1393,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1394,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1394,1
    - Dst: may_access
      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:1404,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1404,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1405,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1406,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1406,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1407,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1407,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1408,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/debug.c:1411,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1411,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1414,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1414,1
    - Dst: read_u64
      Src: /src/haproxy/src/debug.c:1416,1
    - Dst: read_u32
      Src: /src/haproxy/src/debug.c:1418,1
    - Dst: read_u16
      Src: /src/haproxy/src/debug.c:1420,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1424,1
    - Dst: strtoll::strtoll
      Src: /src/haproxy/src/debug.c:1431,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1433,1
    - Dst: now_ms::now_ms
      Src: /src/haproxy/src/debug.c:1434,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1436,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1445,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1446,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1453,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1457,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1461,1
    - Dst: old::old
      Src: /src/haproxy/src/debug.c:1469,1
    - Dst: write_u64
      Src: /src/haproxy/src/debug.c:1471,1
    - Dst: write_u32
      Src: /src/haproxy/src/debug.c:1473,1
    - Dst: write_u16
      Src: /src/haproxy/src/debug.c:1475,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1482,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 105
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1356
    functionDepth: 2
    functionLinenumber: 1356
    functionLinenumberEnd: 1484
    functionName: debug_parse_cli_stream
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - isteq
    - write_u64
    - task_wakeup
    - _HA_ATOMIC_INC
    - strcmp
    - write_u32
    - ist2
    - read_u16
    - read_u32
    - cli_has_level
    - strtoll::strtoll
    - old::old
    - cli_err
    - now_ms::now_ms
    - memprintf
    - write_u16
    - appctx_strm
    - ist
    - cli_dynmsg
    - read_u64
    - cli_dynerr
    - may_access
    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:1502,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:1506,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1510,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/debug.c:1513,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1518,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1518,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1521,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1528,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:1530,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/debug.c:1531,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1537,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1540,1
    - Dst: may_access
      Src: /src/haproxy/src/debug.c:1540,1
    - Dst: isalnum
      Src: /src/haproxy/src/debug.c:1540,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/debug.c:1542,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1545,1
    - Dst: task_in_rq
      Src: /src/haproxy/src/debug.c:1546,1
    - Dst: task_in_wq
      Src: /src/haproxy/src/debug.c:1546,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1548,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1552,1
    - Dst: __task_unlink_wq
      Src: /src/haproxy/src/debug.c:1558,1
    - Dst: tick_add
      Src: /src/haproxy/src/debug.c:1559,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1560,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1562,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/debug.c:1565,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1567,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1568,1
    - Dst: tasklet_kill
      Src: /src/haproxy/src/debug.c:1572,1
    - Dst: task_kill
      Src: /src/haproxy/src/debug.c:1574,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1577,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1583,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:1585,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1588,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: 1595
      start: 1491
    functionDepth: 2
    functionLinenumber: 1491
    functionLinenumberEnd: 1595
    functionName: debug_parse_cli_task
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - thread_isolate
    - __task_unlink_wq
    - task_wakeup
    - _HA_ATOMIC_INC
    - LIST_INLIST
    - strcmp
    - task_kill
    - cli_has_level
    - resolve_sym_name
    - isalnum
    - tasklet_wakeup
    - thread_release
    - cli_err
    - memprintf
    - cli_dynmsg
    - tick_add
    - tasklet_kill
    - chunk_reset
    - task_in_wq
    - strtoul
    - may_access
    - task_in_rq
    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:1606,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1608,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/debug.c:1612,1
    - Dst: ha_tkill
      Src: /src/haproxy/src/debug.c:1613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1598
    functionDepth: 1
    functionLinenumber: 1598
    functionLinenumberEnd: 1616
    functionName: debug_delay_inj_task
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - statistical_prng_range
    - tick_add
    - task_wakeup
    - ha_tkill
    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:1626,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1630,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1632,1
    - Dst: calloc
      Src: /src/haproxy/src/debug.c:1634,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1638,1
    - Dst: atoi
      Src: /src/haproxy/src/debug.c:1639,1
    - Dst: task_new_here
      Src: /src/haproxy/src/debug.c:1641,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1647,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:1651,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1652,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: 1653
      start: 1621
    functionDepth: 2
    functionLinenumber: 1621
    functionLinenumberEnd: 1653
    functionName: debug_parse_delay_inj
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - cli_err
    - atoi
    - free
    - _HA_ATOMIC_INC
    - task_new_here
    - cli_has_level
    - calloc
    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:1665,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/debug.c:1668,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1675,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/debug.c:1677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1680
    functionName: debug_task_handler
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - tick_add
    - task_wakeup
    - statistical_prng
    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:1693,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1697,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/debug.c:1699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1682
    functionDepth: 1
    functionLinenumber: 1682
    functionLinenumberEnd: 1702
    functionName: debug_tasklet_handler
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - statistical_prng
    - task_wakeup
    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:1724,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1729,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1729,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1730,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:1737,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1739,1
    - Dst: ist2
      Src: /src/haproxy/src/debug.c:1744,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1745,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1745,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1747,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1747,1
    - Dst: isteq
      Src: /src/haproxy/src/debug.c:1749,1
    - Dst: ist
      Src: /src/haproxy/src/debug.c:1749,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/debug.c:1752,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1752,1
    - Dst: strtoll::strtoll
      Src: /src/haproxy/src/debug.c:1755,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1757,1
    - Dst: write_u64
      Src: /src/haproxy/src/debug.c:1765,1
    - Dst: write_u32
      Src: /src/haproxy/src/debug.c:1767,1
    - Dst: write_u16
      Src: /src/haproxy/src/debug.c:1769,1
    - Dst: calloc
      Src: /src/haproxy/src/debug.c:1774,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/debug.c:1790,1
    - Dst: task_new_on
      Src: /src/haproxy/src/debug.c:1800,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1816,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/debug.c:1818,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1822,1
    - Dst: task_destroy
      Src: /src/haproxy/src/debug.c:1834,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/debug.c:1836,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:1839,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:1840,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: 1841
      start: 1707
    functionDepth: 2
    functionLinenumber: 1707
    functionLinenumberEnd: 1841
    functionName: debug_parse_cli_sched
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - isteq
    - write_u64
    - task_wakeup
    - task_destroy
    - _HA_ATOMIC_INC
    - tasklet_free
    - strcmp
    - write_u32
    - ist2
    - cli_has_level
    - calloc
    - strtoll::strtoll
    - tasklet_wakeup
    - cli_err
    - memprintf
    - write_u16
    - cli_dynmsg
    - ist
    - tasklet_new
    - task_new_on
    - cli_dynerr
    - 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:1864,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1865,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1866,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1867,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1868,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1869,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/debug.c:1870,1
    - Dst: TRACE_DEVEL
      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_LEAVE
      Src: /src/haproxy/src/debug.c:1883,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1889,1
    - Dst: task_destroy
      Src: /src/haproxy/src/debug.c:1891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1859
    functionDepth: 1
    functionLinenumber: 1859
    functionLinenumberEnd: 1895
    functionName: debug_trace_task
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - task_wakeup
    - TRACE_ENTER
    - task_destroy
    - TRACE_LEAVE
    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:1909,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/debug.c:1912,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1915,1
    - Dst: strtoll
      Src: /src/haproxy/src/debug.c:1920,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:1922,1
    - Dst: task_new_on
      Src: /src/haproxy/src/debug.c:1930,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/debug.c:1937,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1941,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/debug.c:1945,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: 1946
      start: 1902
    functionDepth: 2
    functionLinenumber: 1902
    functionLinenumberEnd: 1946
    functionName: debug_parse_cli_trace
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - task_new_on
    - task_wakeup
    - memprintf
    - strtoll
    - cli_has_level
    - cli_dynmsg
    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:1959,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:1961,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: 1967
      start: 1957
    functionDepth: 2
    functionLinenumber: 1957
    functionLinenumberEnd: 1967
    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:1984,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/debug.c:1986,1
    - Dst: fcntl
      Src: /src/haproxy/src/debug.c:1993,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/debug.c:2002,1
    - Dst: fstat
      Src: /src/haproxy/src/debug.c:2004,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2005,1
    - Dst: isatty
      Src: /src/haproxy/src/debug.c:2006,1
    - Dst: S_ISREG
      Src: /src/haproxy/src/debug.c:2007,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/debug.c:2008,1
    - Dst: S_ISCHR
      Src: /src/haproxy/src/debug.c:2009,1
    - Dst: S_ISBLK
      Src: /src/haproxy/src/debug.c:2010,1
    - Dst: S_ISFIFO
      Src: /src/haproxy/src/debug.c:2011,1
    - Dst: S_ISLNK
      Src: /src/haproxy/src/debug.c:2012,1
    - Dst: S_ISSOCK
      Src: /src/haproxy/src/debug.c:2013,1
    - Dst: USE_EPOLL
      Src: /src/haproxy/src/debug.c:2014,1
    - Dst: dup
      Src: /src/haproxy/src/debug.c:2024,1
    - Dst: epoll_ctl
      Src: /src/haproxy/src/debug.c:2027,1
    - Dst: close
      Src: /src/haproxy/src/debug.c:2032,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2049,1
    - Dst: fcntl
      Src: /src/haproxy/src/debug.c:2054,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2056,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2064,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2065,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2066,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2067,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2068,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2070,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2073,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2076,1
    - Dst: getsockopt
      Src: /src/haproxy/src/debug.c:2083,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2085,1
    - Dst: getsockopt
      Src: /src/haproxy/src/debug.c:2088,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2090,1
    - Dst: getsockopt
      Src: /src/haproxy/src/debug.c:2093,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2095,1
    - Dst: getsockname
      Src: /src/haproxy/src/debug.c:2098,1
    - Dst: ntohs
      Src: /src/haproxy/src/debug.c:2102,1
    - Dst: ntohs
      Src: /src/haproxy/src/debug.c:2104,1
    - Dst: sa2str
      Src: /src/haproxy/src/debug.c:2107,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2109,1
    - Dst: iscntrl
      Src: /src/haproxy/src/debug.c:2110,1
    - Dst: isprint
      Src: /src/haproxy/src/debug.c:2110,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2114,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2115,1
    - Dst: getpeername
      Src: /src/haproxy/src/debug.c:2119,1
    - Dst: ntohs
      Src: /src/haproxy/src/debug.c:2121,1
    - Dst: ntohs
      Src: /src/haproxy/src/debug.c:2123,1
    - Dst: sa2str
      Src: /src/haproxy/src/debug.c:2126,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2128,1
    - Dst: iscntrl
      Src: /src/haproxy/src/debug.c:2129,1
    - Dst: isprint
      Src: /src/haproxy/src/debug.c:2129,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2132,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2133,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2136,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:2138,1
    - Dst: thread_release
      Src: /src/haproxy/src/debug.c:2145,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 108
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 1973
    functionDepth: 1
    functionLinenumber: 1973
    functionLinenumberEnd: 2147
    functionName: debug_iohandler_fd
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - S_ISFIFO
    - thread_isolate
    - dup
    - close
    - sa2str
    - isatty
    - S_ISREG
    - chunk_printf
    - ntohs
    - chunk_appendf
    - fstat
    - strlen
    - S_ISBLK
    - epoll_ctl
    - S_ISSOCK
    - thread_release
    - getsockname
    - fcntl
    - getpeername
    - S_ISCHR
    - USE_EPOLL
    - getsockopt
    - isprint
    - S_ISLNK
    - free
    - applet_putchk
    - iscntrl
    - S_ISDIR
    - chunk_reset
    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:2164,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2170,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2174,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2177,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2181,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2182,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2186,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2190,1
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:2191,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2192,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:2194,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:2199,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: 2207
      start: 2162
    functionDepth: 2
    functionLinenumber: 2162
    functionLinenumberEnd: 2207
    functionName: debug_parse_cli_memstats
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcmp
    - ha_free
    - cli_err
    - _HA_ATOMIC_STORE
    - cli_has_level
    - applet_reserve_svcctx
    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:2240,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2242,1
    - Dst: strncmp
      Src: /src/haproxy/src/debug.c:2289,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2289,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:2292,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2294,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2296,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2299,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2304,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:2310,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:2326,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2327,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2331,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:2337,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 104
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2214
    functionDepth: 1
    functionLinenumber: 2214
    functionLinenumberEnd: 2344
    functionName: debug_iohandler_memstats
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - snprintf
    - chunk_appendf
    - strncmp
    - strlen
    - applet_putchk
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int debug_iohandler_memstats(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:2351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2347
    functionDepth: 1
    functionLinenumber: 2347
    functionLinenumberEnd: 2352
    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:2367,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2371,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2376,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2380,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2384,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2388,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2392,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2396,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2400,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2404,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2408,1
    - Dst: cli_err
      Src: /src/haproxy/src/debug.c:2413,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2423,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2429,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/debug.c:2434,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2436,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: 2442
      start: 2365
    functionDepth: 2
    functionLinenumber: 2365
    functionLinenumberEnd: 2442
    functionName: debug_parse_cli_counters
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - strcmp
    - HA_ATOMIC_STORE
    - cli_err
    - _HA_ATOMIC_STORE
    - cli_has_level
    - applet_reserve_svcctx
    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:2464,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/debug.c:2480,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/debug.c:2486,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2496
      start: 2449
    functionDepth: 1
    functionLinenumber: 2449
    functionLinenumberEnd: 2496
    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:2510,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/debug.c:2520,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/debug.c:2528,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:2529,1
    - Dst: ha_thread_dump_one
      Src: /src/haproxy/src/debug.c:2540,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/debug.c:2543,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/debug.c:2543,1
    - Dst: wait
      Src: /src/haproxy/src/debug.c:2549,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/debug.c:2551,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - sig
    - si
    - arg
    argTypes:
    - int
    - siginfo_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2552
      start: 2508
    functionDepth: 3
    functionLinenumber: 2508
    functionLinenumberEnd: 2552
    functionName: debug_handler
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_OR
    - wait
    - get_trash_chunk
    - HA_ATOMIC_STORE
    - ha_thread_dump_one
    - _HA_ATOMIC_AND
    - HA_ATOMIC_LOAD
    - DISGUISE
    - _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:2559,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2560,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2562,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/debug.c:2564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2566
      start: 2554
    functionDepth: 1
    functionLinenumber: 2554
    functionLinenumberEnd: 2566
    functionName: init_debug_per_thread
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - sigaddset
    - ha_sigmask
    - sigemptyset
    linkageType: ''
    returnType: int
    signature: int init_debug_per_thread()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: my_backtrace
      Src: /src/haproxy/src/debug.c:2578,1
    - Dst: sigemptyset
      Src: /src/haproxy/src/debug.c:2581,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2583,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2585,1
    - Dst: sigaddset
      Src: /src/haproxy/src/debug.c:2587,1
    - Dst: sigaction
      Src: /src/haproxy/src/debug.c:2590,1
    - Dst: sigemptyset
      Src: /src/haproxy/src/debug.c:2595,1
    - Dst: sigaction
      Src: /src/haproxy/src/debug.c:2597,1
    - Dst: ha_warning
      Src: /src/haproxy/src/debug.c:2608,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2618
      start: 2568
    functionDepth: 1
    functionLinenumber: 2568
    functionLinenumberEnd: 2618
    functionName: init_debug
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - my_backtrace
    - ha_warning
    - sigemptyset
    - sigaction
    - sigaddset
    linkageType: ''
    returnType: int
    signature: int init_debug()
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2637,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2638,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2640,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2641,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2642,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2644,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2645,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2646,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2647,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2649,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2650,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2651,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2653,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2654,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2655,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2656,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2657,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/debug.c:2658,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2659,1
    - Dst: strcmp
      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: strlcpy2
      Src: /src/haproxy/src/debug.c:2663,1
    - Dst: read_line_to_trash
      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: stat
      Src: /src/haproxy/src/debug.c:2672,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2674,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2677,1
    - Dst: fopen
      Src: /src/haproxy/src/debug.c:2680,1
    - Dst: fgets
      Src: /src/haproxy/src/debug.c:2690,1
    - Dst: strchr
      Src: /src/haproxy/src/debug.c:2691,1
    - Dst: strchr
      Src: /src/haproxy/src/debug.c:2700,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2710,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2711,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2712,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2713,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2714,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2715,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2716,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2717,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2718,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2719,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2722,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2723,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2724,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2725,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2726,1
    - Dst: strtoul
      Src: /src/haproxy/src/debug.c:2727,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2728,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2729,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2730,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2731,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2732,1
    - Dst: strstr
      Src: /src/haproxy/src/debug.c:2733,1
    - Dst: strncmp
      Src: /src/haproxy/src/debug.c:2734,1
    - Dst: strncmp
      Src: /src/haproxy/src/debug.c:2736,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2744,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2745,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2746,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2747,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2748,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2749,1
    - Dst: fclose
      Src: /src/haproxy/src/debug.c:2751,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2755,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2758,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2763,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2767,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2773,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2773,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2774,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2778,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2778,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2779,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2783,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2783,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2784,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2788,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2788,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2789,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2793,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2793,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2794,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2798,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2798,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2799,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2803,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2803,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2804,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2807,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2810,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2626
    functionDepth: 1
    functionLinenumber: 2626
    functionLinenumberEnd: 2813
    functionName: feed_post_mortem_linux
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - strtoul
    - strcmp
    - snprintf
    - fclose
    - stat
    - strncmp
    - fgets
    - strlcpy2
    - strlen
    - strchr
    - read_line_to_trash
    - fopen
    - strstr
    linkageType: ''
    returnType: void
    signature: void feed_post_mortem_linux()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/haproxy/src/debug.c:2824,1
    - Dst: uname
      Src: /src/haproxy/src/debug.c:2828,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2833,1
    - Dst: stat
      Src: /src/haproxy/src/debug.c:2834,1
    - Dst: snprintf
      Src: /src/haproxy/src/debug.c:2836,1
    - Dst: stat
      Src: /src/haproxy/src/debug.c:2837,1
    - Dst: fopen
      Src: /src/haproxy/src/debug.c:2843,1
    - Dst: fgets
      Src: /src/haproxy/src/debug.c:2847,1
    - Dst: strncmp
      Src: /src/haproxy/src/debug.c:2849,1
    - Dst: strchr
      Src: /src/haproxy/src/debug.c:2852,1
    - Dst: strlen
      Src: /src/haproxy/src/debug.c:2857,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2866,1
    - Dst: fclose
      Src: /src/haproxy/src/debug.c:2870,1
    - Dst: getpid
      Src: /src/haproxy/src/debug.c:2874,1
    - Dst: geteuid
      Src: /src/haproxy/src/debug.c:2875,1
    - Dst: getegid
      Src: /src/haproxy/src/debug.c:2876,1
    - Dst: capget
      Src: /src/haproxy/src/debug.c:2881,1
    - Dst: getrlimit
      Src: /src/haproxy/src/debug.c:2886,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:2888,1
    - Dst: feed_post_mortem_linux
      Src: /src/haproxy/src/debug.c:2889,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/debug.c:2892,1
    - Dst: dump_libs
      Src: /src/haproxy/src/debug.c:2893,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2894,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2908
      start: 2815
    functionDepth: 2
    functionLinenumber: 2815
    functionLinenumberEnd: 2908
    functionName: feed_post_mortem
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - getpid
    - fclose
    - capget
    - fopen
    - strncpy
    - strcmp
    - snprintf
    - stat
    - geteuid
    - strlen
    - dump_libs
    - strdup
    - strncmp
    - strlcpy2
    - getegid
    - feed_post_mortem_linux
    - getrlimit
    - fgets
    - uname
    - strchr
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int feed_post_mortem()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:2917,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2920,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2921,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2922,1
    - Dst: free
      Src: /src/haproxy/src/debug.c:2923,1
    - Dst: ha_free
      Src: /src/haproxy/src/debug.c:2925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2926
      start: 2912
    functionDepth: 1
    functionLinenumber: 2912
    functionLinenumberEnd: 2926
    functionName: deinit_post_mortem
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - free
    - ha_free
    linkageType: ''
    returnType: void
    signature: void deinit_post_mortem(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: realloc
      Src: /src/haproxy/src/debug.c:2941,1
    - Dst: memset
      Src: /src/haproxy/src/debug.c:2945,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2946,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/debug.c:2947,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2948,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2949,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2950,1
    - Dst: strdup
      Src: /src/haproxy/src/debug.c:2951,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: 2955
      start: 2934
    functionDepth: 1
    functionLinenumber: 2934
    functionLinenumberEnd: 2955
    functionName: post_mortem_add_component
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - strdup
    - strlcpy2
    - realloc
    - memset
    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:2966,1
    - Dst: geteuid
      Src: /src/haproxy/src/debug.c:2972,1
    - Dst: getegid
      Src: /src/haproxy/src/debug.c:2973,1
    - Dst: capget
      Src: /src/haproxy/src/debug.c:2975,1
    - Dst: getrlimit
      Src: /src/haproxy/src/debug.c:2979,1
    - Dst: getrlimit
      Src: /src/haproxy/src/debug.c:2980,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2983
      start: 2962
    functionDepth: 1
    functionLinenumber: 2962
    functionLinenumberEnd: 2983
    functionName: feed_post_mortem_late
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - getegid
    - getrlimit
    - HA_ATOMIC_ADD_FETCH
    - geteuid
    - capget
    linkageType: ''
    returnType: int
    signature: int feed_post_mortem_late()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/debug.c:2997,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/debug.c:2999,1
    - Dst: fprintf
      Src: /src/haproxy/src/debug.c:3000,1
    - Dst: fprintf
      Src: /src/haproxy/src/debug.c:3005,1
    - Dst: fprintf
      Src: /src/haproxy/src/debug.c:3007,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 2992
    functionDepth: 0
    functionLinenumber: 2992
    functionLinenumberEnd: 3008
    functionName: list_unittests
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - fprintf
    linkageType: ''
    returnType: void
    signature: void list_unittests()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/debug.c:3018,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:3021,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:3022,1
    - Dst: strcmp
      Src: /src/haproxy/src/debug.c:3024,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/debug.c:3025,1
    - Dst: memprintf
      Src: /src/haproxy/src/debug.c:3027,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: 3031
      start: 3014
    functionDepth: 1
    functionLinenumber: 3014
    functionLinenumberEnd: 3031
    functionName: cfg_parse_debug_counters
    functionSourceFile: /src/haproxy/src/debug.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - too_many_args
    - memprintf
    - strcmp
    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:121,1
    - Dst: write
      Src: /src/haproxy/src/activity.c:121,1
    - Dst: strlen
      Src: /src/haproxy/src/activity.c:121,1
    - Dst: exit
      Src: /src/haproxy/src/activity.c:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: memprof_die
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - strlen
    - DISGUISE
    - write
    - exit
    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:138,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:140,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:142,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:144,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:146,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:148,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:150,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:152,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:154,1
    - Dst: memprof_die
      Src: /src/haproxy/src/activity.c:156,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:161,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:162,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/activity.c:163,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
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 169
    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:182,1
    - Dst: memprof_malloc_handler
      Src: /src/haproxy/src/activity.c:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 184
    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:192,1
    - Dst: memprof_calloc_handler
      Src: /src/haproxy/src/activity.c:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 194
    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:203,1
    - Dst: memprof_realloc_handler
      Src: /src/haproxy/src/activity.c:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 205
    functionName: memprof_realloc_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_realloc_handler
    - memprof_init
    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:214,1
    - Dst: memprof_strdup_handler
      Src: /src/haproxy/src/activity.c:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 216
    functionName: memprof_strdup_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_strdup_handler
    - memprof_init
    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:220,1
    - Dst: memprof_free_handler
      Src: /src/haproxy/src/activity.c:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 222
    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:233,1
    - Dst: memprof_strndup_handler
      Src: /src/haproxy/src/activity.c:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: memprof_strndup_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_strndup_handler
    - memprof_init
    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:244,1
    - Dst: memprof_valloc_handler
      Src: /src/haproxy/src/activity.c:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 246
    functionName: memprof_valloc_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_valloc_handler
    - memprof_init
    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:255,1
    - Dst: memprof_pvalloc_handler
      Src: /src/haproxy/src/activity.c:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 257
    functionName: memprof_pvalloc_initial_handler
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - memprof_pvalloc_handler
    - memprof_init
    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:266,1
    - Dst: memprof_memalign_handler
      Src: /src/haproxy/src/activity.c:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - al
    - sz
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 268
    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:277,1
    - Dst: memprof_aligned_alloc_handler
      Src: /src/haproxy/src/activity.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - al
    - sz
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 279
    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:288,1
    - Dst: memprof_posix_memalign_handler
      Src: /src/haproxy/src/activity.c:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - al
    - sz
    argTypes:
    - void**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 290
    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:303,1
    - Dst: ptr_hash
      Src: /src/haproxy/src/activity.c:307,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ra
    - meth
    argTypes:
    - void*
    - enum memprof_method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 323
    functionName: memprof_get_bin
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - ptr_hash
    - unlikely
    - HA_ATOMIC_CAS
    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:338,1
    - Dst: memprof_malloc_handler
      Src: /src/haproxy/src/activity.c:339,1
    - Dst: memprof_malloc_handler
      Src: /src/haproxy/src/activity.c:341,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:342,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:344,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:344,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:345,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:346,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:347,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 350
    functionName: malloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 54
    functionsReached:
    - unlikely
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - memprof_malloc_handler
    - likely
    - malloc_usable_size
    linkageType: ''
    returnType: void
    signature: void *malloc(size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/activity.c:365,1
    - Dst: memprof_calloc_handler
      Src: /src/haproxy/src/activity.c:366,1
    - Dst: memprof_calloc_handler
      Src: /src/haproxy/src/activity.c:368,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:369,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:371,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:371,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:372,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:373,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:374,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - nmemb
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 360
    functionDepth: 2
    functionLinenumber: 360
    functionLinenumberEnd: 377
    functionName: calloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 86
    functionsReached:
    - memprof_calloc_handler
    - unlikely
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - likely
    - malloc_usable_size
    linkageType: ''
    returnType: void
    signature: void *calloc(size_t nmemb, size_t size)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/activity.c:395,1
    - Dst: memprof_realloc_handler
      Src: /src/haproxy/src/activity.c:396,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:398,1
    - Dst: memprof_realloc_handler
      Src: /src/haproxy/src/activity.c:399,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:400,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:406,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:406,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:407,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:408,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:410,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:411,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:413,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:414,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 417
    functionName: realloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 12
    functionsReached:
    - memprof_realloc_handler
    - unlikely
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - likely
    - malloc_usable_size
    linkageType: ''
    returnType: void
    signature: void *realloc(void *ptr, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/activity.c:433,1
    - Dst: memprof_strdup_handler
      Src: /src/haproxy/src/activity.c:434,1
    - Dst: memprof_strdup_handler
      Src: /src/haproxy/src/activity.c:436,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:437,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:439,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:439,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:440,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:441,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:442,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 445
    functionName: strdup
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 73
    functionsReached:
    - unlikely
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - likely
    - memprof_strdup_handler
    - malloc_usable_size
    linkageType: ''
    returnType: char
    signature: char *strdup(const char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/activity.c:463,1
    - Dst: memprof_free_handler
      Src: /src/haproxy/src/activity.c:464,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:468,1
    - Dst: memprof_free_handler
      Src: /src/haproxy/src/activity.c:469,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:471,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:471,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:472,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:473,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:474,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 476
    functionName: free
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 361
    functionsReached:
    - unlikely
    - memprof_get_bin
    - memprof_free_handler
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - likely
    - malloc_usable_size
    linkageType: ''
    returnType: void
    signature: void free(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprof_strndup_handler
      Src: /src/haproxy/src/activity.c:488,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:489,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:492,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:493,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:493,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:494,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:495,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:496,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - s
    - size
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 499
    functionName: strndup
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 2
    functionsReached:
    - unlikely
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - likely
    - memprof_strndup_handler
    - malloc_usable_size
    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:509,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:510,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:513,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:514,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:514,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:515,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:516,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:517,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 520
    functionName: valloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memprof_valloc_handler
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - likely
    - malloc_usable_size
    linkageType: ''
    returnType: void
    signature: void *valloc(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprof_pvalloc_handler
      Src: /src/haproxy/src/activity.c:530,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:531,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:534,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:535,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:535,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:536,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:537,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:538,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:539,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 522
    functionDepth: 2
    functionLinenumber: 522
    functionLinenumberEnd: 541
    functionName: pvalloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - memprof_pvalloc_handler
    - __builtin_return_address
    - likely
    - malloc_usable_size
    linkageType: ''
    returnType: void
    signature: void *pvalloc(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprof_memalign_handler
      Src: /src/haproxy/src/activity.c:551,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:552,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:555,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:556,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:556,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:557,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:558,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:559,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - align
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 562
    functionName: memalign
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - likely
    - memprof_memalign_handler
    - malloc_usable_size
    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:572,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:573,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:576,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:577,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:577,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:578,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:579,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:580,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:581,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - align
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 583
    functionName: aligned_alloc
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 2
    functionsReached:
    - unlikely
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - memprof_aligned_alloc_handler
    - likely
    - malloc_usable_size
    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:593,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:594,1
    - Dst: malloc_usable_size
      Src: /src/haproxy/src/activity.c:600,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/activity.c:601,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/activity.c:601,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:602,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:603,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:604,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/activity.c:605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - ptr
    - align
    - size
    argTypes:
    - void**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 607
    functionName: posix_memalign
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - unlikely
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - __builtin_return_address
    - likely
    - memprof_posix_memalign_handler
    - malloc_usable_size
    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:621,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:622,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 624
    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:634,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/activity.c:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - stolen
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 636
    functionName: report_stolen_time
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 1
    functionsReached:
    - update_freq_ctr_period
    - update_freq_ctr
    linkageType: ''
    returnType: void
    signature: void report_stolen_time(uint64_t stolen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: swrate_add
      Src: /src/haproxy/src/activity.c:653,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/activity.c:659,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:660,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/activity.c:662,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/activity.c:663,1
    - Dst: unlikely
      Src: /src/haproxy/src/activity.c:665,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/activity.c:667,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/activity.c:668,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 1
    argNames:
    - run_time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 670
    functionName: activity_count_runtime
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 1
    functionsReached:
    - swrate_avg
    - _HA_ATOMIC_LOAD
    - unlikely
    - _HA_ATOMIC_AND
    - _HA_ATOMIC_OR
    - swrate_add
    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:678,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:681,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:683,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:685,1
    - Dst: memprintf
      Src: /src/haproxy/src/activity.c:688,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: 692
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 692
    functionName: cfg_parse_prof_memory
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - too_many_args
    - memprintf
    - strcmp
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/activity.c:700,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:703,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:705,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:707,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:709,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:711,1
    - Dst: memprintf
      Src: /src/haproxy/src/activity.c:714,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    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: 718
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 718
    functionName: cfg_parse_prof_tasks
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - too_many_args
    - memprintf
    - strcmp
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/activity.c:723,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:726,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:728,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:732,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:735,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:736,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:740,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:741,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:742,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:743,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:744,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:745,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:748,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:751,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/activity.c:754,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:755,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:758,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:761,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:765,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:766,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:768,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:772,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:775,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:776,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: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:784,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:785,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:786,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:787,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:790,1
    - Dst: HA_PROF_TASKS_AON::HA_PROF_TASKS_AON
      Src: /src/haproxy/src/activity.c:796,1
    - Dst: HA_PROF_TASKS_AOFF::HA_PROF_TASKS_AOFF
      Src: /src/haproxy/src/activity.c:798,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:799,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:801,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:802,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:804,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:806,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/activity.c:809,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/activity.c:810,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:813,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 721
    functionDepth: 2
    functionLinenumber: 721
    functionLinenumberEnd: 816
    functionName: cli_parse_set_profiling
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    - strcmp
    - HA_ATOMIC_STORE
    - HA_PROF_TASKS_AOFF::HA_PROF_TASKS_AOFF
    - cli_err
    - HA_ATOMIC_LOAD
    - cli_has_level
    - HA_PROF_TASKS_AON::HA_PROF_TASKS_AON
    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: 829
      start: 818
    functionDepth: 0
    functionLinenumber: 818
    functionLinenumberEnd: 829
    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: 847
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 847
    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: 865
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 865
    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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 880
    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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 893
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 893
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: ptr2_hash
      Src: /src/haproxy/src/activity.c:904,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:913,1
    - Dst: likely
      Src: /src/haproxy/src/activity.c:914,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/activity.c:923,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - array
    - func
    - caller
    argTypes:
    - struct sched_activity*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 902
    functionDepth: 1
    functionLinenumber: 902
    functionLinenumberEnd: 932
    functionName: sched_activity_entry
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 1
    functionsReached:
    - likely
    - ptr2_hash
    - HA_ATOMIC_CAS
    linkageType: ''
    returnType: struct sched_activity
    signature: struct sched_activity *sched_activity_entry(struct sched_activity *array,
      const void *func, const void *caller)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: aligned
      Src: /src/haproxy/src/activity.c:952,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/activity.c:958,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:965,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/activity.c:977,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:982,1
    - Dst: memcpy
      Src: /src/haproxy/src/activity.c:995,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:998,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1016,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1018,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1021,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:1041,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/activity.c:1042,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/activity.c:1045,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/activity.c:1047,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1055,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1057,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1058,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1059,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1060,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1061,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1062,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1065,1
    - Dst: task_wakeup_type_str
      Src: /src/haproxy/src/activity.c:1067,1
    - Dst: b_putchr
      Src: /src/haproxy/src/activity.c:1069,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1071,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1078,1
    - Dst: memcpy
      Src: /src/haproxy/src/activity.c:1093,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1095,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1097,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1100,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1123,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/activity.c:1129,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1131,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1134,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1137,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1142,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1148,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1154,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1160,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1162,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1168,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:1193,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/activity.c:1195,1
    - Dst: resolve_dso_name
      Src: /src/haproxy/src/activity.c:1197,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1201,1
    - Dst: strdup
      Src: /src/haproxy/src/activity.c:1214,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1242,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1249,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1255,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1258,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1261,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1269,1
    CyclomaticComplexity: 73
    EdgeCount: 73
    ICount: 201
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 949
    functionDepth: 2
    functionLinenumber: 949
    functionLinenumberEnd: 1280
    functionName: cli_io_handler_show_profiling
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - resolve_sym_name
    - task_wakeup_type_str
    - strdup
    - get_trash_chunk
    - qsort
    - chunk_printf
    - strcmp
    - chunk_appendf
    - HA_ATOMIC_LOAD
    - print_time_short
    - applet_putchk
    - resolve_dso_name
    - b_putchr
    - aligned
    - memcpy
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_show_profiling(struct appctx *appctx)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/activity.c:1289,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/activity.c:1292,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1296,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1299,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1302,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1305,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1308,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1311,1
    - Dst: strcmp
      Src: /src/haproxy/src/activity.c:1314,1
    - Dst: isdigit
      Src: /src/haproxy/src/activity.c:1317,1
    - Dst: atoi
      Src: /src/haproxy/src/activity.c:1318,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:1321,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1324
    functionName: cli_parse_show_profiling
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cli_err
    - atoi
    - isdigit
    - cli_has_level
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_profiling(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: aligned
      Src: /src/haproxy/src/activity.c:1332,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/activity.c:1333,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/activity.c:1357,1
    - Dst: memset
      Src: /src/haproxy/src/activity.c:1358,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/activity.c:1360,1
    - Dst: eb32_first
      Src: /src/haproxy/src/activity.c:1367,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/activity.c:1369,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/activity.c:1370,1
    - Dst: eb32_next
      Src: /src/haproxy/src/activity.c:1378,1
    - Dst: eb32_first
      Src: /src/haproxy/src/activity.c:1385,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/activity.c:1387,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/activity.c:1388,1
    - Dst: eb32_next
      Src: /src/haproxy/src/activity.c:1396,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/activity.c:1400,1
    - Dst: mt_list_to_list
      Src: /src/haproxy/src/activity.c:1400,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/activity.c:1402,1
    - Dst: TASK_IS_TASKLET
      Src: /src/haproxy/src/activity.c:1403,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/activity.c:1414,1
    - Dst: sched_activity_entry
      Src: /src/haproxy/src/activity.c:1416,1
    - Dst: TASK_IS_TASKLET
      Src: /src/haproxy/src/activity.c:1417,1
    - Dst: thread_release
      Src: /src/haproxy/src/activity.c:1429,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:1431,1
    - Dst: qsort
      Src: /src/haproxy/src/activity.c:1440,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1442,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/activity.c:1447,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/activity.c:1450,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/activity.c:1452,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1460,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1464,1
    - Dst: print_time_short
      Src: /src/haproxy/src/activity.c:1465,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/activity.c:1466,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/activity.c:1472,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 85
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1330
    functionDepth: 2
    functionLinenumber: 1330
    functionLinenumberEnd: 1477
    functionName: cli_io_handler_show_tasks
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - thread_isolate
    - print_time_short
    - now_mono_time
    - chunk_printf
    - chunk_appendf
    - eb32_next
    - TASK_IS_TASKLET
    - eb32_entry
    - sched_activity_entry
    - resolve_sym_name
    - thread_release
    - memset
    - mt_list_to_list
    - list_for_each_entry
    - eb32_first
    - applet_putchk
    - aligned
    - qsort
    - chunk_reset
    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:1518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1519
    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: 1517
      start: 1504
    functionDepth: 0
    functionLinenumber: 1504
    functionLinenumberEnd: 1517
    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:1635,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/activity.c:1637,1
    - Dst: atoi
      Src: /src/haproxy/src/activity.c:1642,1
    - Dst: cli_err
      Src: /src/haproxy/src/activity.c:1645,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: 1648
      start: 1633
    functionDepth: 2
    functionLinenumber: 1633
    functionLinenumberEnd: 1648
    functionName: cli_parse_show_activity
    functionSourceFile: /src/haproxy/src/activity.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - applet_reserve_svcctx
    - atoi
    - cli_err
    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_LEAVE
    - TRACE_PROTO
    - TRACE_ENTER
    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_LEAVE
    - TRACE_PROTO
    - TRACE_ENTER
    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_LEAVE
    - TRACE_PROTO
    - TRACE_ENTER
    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: 44
    BranchProfiles: []
    Callsites:
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:103,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:106,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:109,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:112,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:115,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:118,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:121,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:124,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:127,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:130,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:133,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:136,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:139,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:142,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:145,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:148,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:153,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:158,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:161,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:164,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:167,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:170,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:173,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:176,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:179,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:182,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:185,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:188,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:191,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:194,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:197,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:200,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:203,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:206,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:209,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:212,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:217,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:220,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:223,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/quic_stats.c:226,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 133
    argCount: 3
    argNames:
    - data
    - stats
    - selected_field
    argTypes:
    - void*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 241
    functionName: quic_fill_stats
    functionSourceFile: /src/haproxy/src/quic_stats.c
    functionUses: 0
    functionsReached:
    - mkf_u64
    linkageType: ''
    returnType: int
    signature: int quic_fill_stats(void *data, struct field *stats, unsigned int *selected_field)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:260,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:263,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:266,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:269,1
    - 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:312,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_stats.c:314,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 2
    argNames:
    - ctrs
    - error_code
    argTypes:
    - struct quic_counters*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 316
    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_peek_ofs
    - b_orig
    - b_contig_data
    - 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:
    - pt_sc
    - b_orig
    - chunk_memcat
    - pt_trace_buf
    - b_data
    - chunk_appendf
    - conn_is_back
    - b_size
    - b_head_ofs
    - se_fl_get
    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:
    - tevt_report_event
    - conn_is_back
    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:
    - TRACE_DEVEL
    - struct connection*::destroy_cb
    - tasklet_free
    - pool_free
    - se_fl_test
    - conn_full_close
    - struct connection*::xprt::unsubscribe
    - BUG_ON
    - conn_stop_tracking
    - conn_free
    - TRACE_POINT
    - sedesc_free
    linkageType: ''
    returnType: void
    signature: void mux_pt_destroy(struct mux_pt_ctx *ctx)
  - BBCount: 5
    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:265,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:267,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:268,1
    - Dst: wake
      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:269,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/mux_pt.c:272,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:274,1
    - Dst: mux_pt_destroy
      Src: /src/haproxy/src/mux_pt.c:275,1
    - Dst: struct mux_pt_ctx*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_pt.c:279,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - t
    - tctx
    - status
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 249
    functionDepth: 4
    functionLinenumber: 249
    functionLinenumberEnd: 285
    functionName: mux_pt_io_cb
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - pt_sc
    - TRACE_DEVEL
    - tasklet_wakeup
    - struct mux_pt_ctx*::conn::xprt::subscribe
    - se_fl_test
    - TRACE_ENTER
    - wake
    - conn_ctrl_drain
    - mux_pt_destroy
    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:296,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:298,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_pt.c:301,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_pt.c:305,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/mux_pt.c:315,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_pt.c:317,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:322,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/mux_pt.c:324,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_pt.c:326,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_pt.c:329,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_pt.c:332,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:337,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:339,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:341,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_pt.c:345,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_pt.c:347,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_pt.c:348,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:350,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: 352
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 352
    functionName: mux_pt_init
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - sedesc_free
    - sc_attach_mux
    - tasklet_new
    - tasklet_free
    - se_fl_set
    - pool_free
    - sedesc_new
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - TRACE_POINT
    - sc_new_from_endp
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: "int mux_pt_init(struct connection *conn, struct proxy *prx, struct
      session *sess,\n\t\t       struct buffer *input)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:362,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_pt.c:363,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:364,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:364,1
    - Dst: wake
      Src: /src/haproxy/src/mux_pt.c:364,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:364,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:367,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/mux_pt.c:371,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:373,1
    - Dst: mux_pt_destroy
      Src: /src/haproxy/src/mux_pt.c:374,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 357
    functionDepth: 4
    functionLinenumber: 357
    functionLinenumberEnd: 388
    functionName: mux_pt_wake
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - pt_sc
    - TRACE_DEVEL
    - se_fl_test
    - TRACE_ENTER
    - wake
    - conn_ctrl_drain
    - mux_pt_destroy
    - TRACE_LEAVE
    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:398,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_pt.c:400,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_pt.c:401,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:404,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:406,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:408,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: 410
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 410
    functionName: mux_pt_attach
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - se_fl_set
    - struct connection*::xprt::unsubscribe
    - TRACE_ENTER
    - sc_attach_mux
    - TRACE_LEAVE
    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:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 420
    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:428,1
    - Dst: pt_sc
      Src: /src/haproxy/src/mux_pt.c:428,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_pt.c:429,1
    - Dst: mux_pt_destroy
      Src: /src/haproxy/src/mux_pt.c:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 424
    functionDepth: 4
    functionLinenumber: 424
    functionLinenumberEnd: 435
    functionName: mux_pt_destroy_meth
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - pt_sc
    - se_fl_test
    - mux_pt_destroy
    - 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:445,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_pt.c:450,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_pt.c:452,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:455,1
    - Dst: mux_pt_destroy
      Src: /src/haproxy/src/mux_pt.c:456,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 440
    functionDepth: 4
    functionLinenumber: 440
    functionLinenumberEnd: 460
    functionName: mux_pt_detach
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_ENTER
    - struct connection*::xprt::subscribe
    - conn_is_back
    - mux_pt_destroy
    - TRACE_LEAVE
    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:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 468
    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:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 474
    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:478,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:481,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:483,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_pt.c:485,1
    - Dst: struct connection*::xprt::shutw
      Src: /src/haproxy/src/mux_pt.c:486,1
    - Dst: conn_sock_shutw
      Src: /src/haproxy/src/mux_pt.c:488,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:492,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_pt.c:493,1
    - Dst: struct connection*::xprt::shutr
      Src: /src/haproxy/src/mux_pt.c:494,1
    - Dst: conn_ctrl_drain
      Src: /src/haproxy/src/mux_pt.c:496,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:499,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: 500
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 500
    functionName: mux_pt_shut
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - conn_sock_shutw
    - struct connection*::xprt::shutw
    - TRACE_ENTER
    - __sc_conn
    - conn_xprt_ready
    - mux_pt_report_term_evt
    - conn_ctrl_drain
    - TRACE_LEAVE
    - struct connection*::xprt::shutr
    - se_fl_clr
    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:517,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:521,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:524,1
    - Dst: b_realign_if_empty
      Src: /src/haproxy/src/mux_pt.c:527,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_pt.c:528,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:530,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:531,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:532,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:533,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:534,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:535,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:537,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:538,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:539,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:540,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:541,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:544,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: 546
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 546
    functionName: mux_pt_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - b_realign_if_empty
    - TRACE_DEVEL
    - conn_xprt_read0_pending
    - se_fl_set
    - TRACE_ENTER
    - __sc_conn
    - struct connection*::xprt::rcv_buf
    - mux_pt_report_term_evt
    - TRACE_LEAVE
    - 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:551,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:555,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_pt.c:557,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_pt.c:560,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:563,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:564,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:565,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_pt.c:566,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:567,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:570,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: 572
      start: 549
    functionDepth: 2
    functionLinenumber: 549
    functionLinenumberEnd: 572
    functionName: mux_pt_snd_buf
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - conn_xprt_read0_pending
    - se_fl_set
    - TRACE_ENTER
    - __sc_conn
    - b_del
    - se_fl_set_error
    - mux_pt_report_term_evt
    - TRACE_LEAVE
    - struct connection*::xprt::snd_buf
    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:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct mux_pt_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 577
    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:581,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:585,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_pt.c:594,1
    - Dst: struct connection*::xprt::get_capability
      Src: /src/haproxy/src/mux_pt.c:598,1
    - Dst: get_pipe
      Src: /src/haproxy/src/mux_pt.c:600,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:619,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:625,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: 627
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 627
    functionName: mux_pt_nego_ff
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_data
    - TRACE_ENTER
    - struct connection*::xprt::get_capability
    - __sc_conn
    - get_pipe
    - TRACE_LEAVE
    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:631,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:636,1
    - Dst: struct connection*::xprt::snd_pipe
      Src: /src/haproxy/src/mux_pt.c:639,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:641,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_pt.c:646,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:651,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:652,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_pt.c:653,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:655,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:658,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:661,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 629
    functionDepth: 3
    functionLinenumber: 629
    functionLinenumberEnd: 663
    functionName: mux_pt_done_ff
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - conn_xprt_read0_pending
    - put_pipe
    - se_fl_set
    - BUG_ON
    - TRACE_ENTER
    - __sc_conn
    - struct connection*::xprt::snd_pipe
    - se_fl_set_error
    - TRACE_LEAVE
    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:667,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:674,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:676,1
    - Dst: mux_pt_opposite_sd
      Src: /src/haproxy/src/mux_pt.c:678,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_pt.c:680,1
    - Dst: struct connection*::xprt::get_capability
      Src: /src/haproxy/src/mux_pt.c:688,1
    - Dst: se_nego_ff
      Src: /src/haproxy/src/mux_pt.c:696,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:699,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:700,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:704,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_pt.c:705,1
    - Dst: struct connection*::xprt::rcv_pipe
      Src: /src/haproxy/src/mux_pt.c:713,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_pt.c:715,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_pt.c:717,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_pt.c:718,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:719,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_pt.c:726,1
    - Dst: se_done_ff
      Src: /src/haproxy/src/mux_pt.c:732,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:735,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:738,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:743,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:744,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:745,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:746,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:747,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:749,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:750,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:751,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:752,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:755,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: 757
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 757
    functionName: mux_pt_fastfwd
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - conn_xprt_read0_pending
    - se_fl_set
    - put_pipe
    - TRACE_STATE
    - BUG_ON
    - TRACE_ENTER
    - struct connection*::xprt::get_capability
    - TRACE_ERROR
    - __sc_conn
    - mux_pt_opposite_sd
    - se_done_ff
    - mux_pt_report_term_evt
    - TRACE_LEAVE
    - struct connection*::xprt::rcv_pipe
    - se_nego_ff
    - se_fl_clr
    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:761,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_pt.c:766,1
    - Dst: struct connection*::xprt::snd_pipe
      Src: /src/haproxy/src/mux_pt.c:769,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:771,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_pt.c:776,1
    - Dst: mux_pt_report_term_evt
      Src: /src/haproxy/src/mux_pt.c:781,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_pt.c:782,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_pt.c:783,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_pt.c:784,1
    - Dst: put_pipe
      Src: /src/haproxy/src/mux_pt.c:786,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_pt.c:789,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_pt.c:792,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - sc
    - flags
    argTypes:
    - struct stconn*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 759
    functionDepth: 3
    functionLinenumber: 759
    functionLinenumberEnd: 794
    functionName: mux_pt_resume_fastfwd
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - conn_xprt_read0_pending
    - put_pipe
    - se_fl_set
    - BUG_ON
    - TRACE_ENTER
    - __sc_conn
    - struct connection*::xprt::snd_pipe
    - se_fl_set_error
    - mux_pt_report_term_evt
    - TRACE_LEAVE
    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:803,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_pt.c:805,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_pt.c:806,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: 807
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 807
    functionName: mux_pt_subscribe
    functionSourceFile: /src/haproxy/src/mux_pt.c
    functionUses: 0
    functionsReached:
    - __sc_conn
    - struct connection*::xprt::subscribe
    - 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:815,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_pt.c:817,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_pt.c:818,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: 819
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 819
    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:834,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: 842
      start: 821
    functionDepth: 2
    functionLinenumber: 821
    functionLinenumberEnd: 842
    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: 860
      start: 844
    functionDepth: 0
    functionLinenumber: 844
    functionLinenumberEnd: 860
    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:867,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_pt.c:870,1
    - Dst: strcmp
      Src: /src/haproxy/src/mux_pt.c:872,1
    - Dst: memprintf
      Src: /src/haproxy/src/mux_pt.c:875,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: 879
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 879
    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: 119
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:118,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:125,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:129,1
    - Dst: quic_cid_dump
      Src: /src/haproxy/src/quic_trace.c:130,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:131,1
    - Dst: quic_cid_dump
      Src: /src/haproxy/src/quic_trace.c:132,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: quic_transport_params_dump
      Src: /src/haproxy/src/quic_trace.c:141,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:149,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:151,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:151,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:154,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:162,1
    - Dst: quic_tls_secret_hexdump
      Src: /src/haproxy/src/quic_trace.c:164,1
    - Dst: quic_tls_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:165,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:166,1
    - Dst: quic_tls_secret_hexdump
      Src: /src/haproxy/src/quic_trace.c:168,1
    - Dst: quic_tls_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:169,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:178,1
    - Dst: quic_tls_secret_hexdump
      Src: /src/haproxy/src/quic_trace.c:180,1
    - Dst: quic_tls_kp_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:181,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:184,1
    - Dst: quic_tls_secret_hexdump
      Src: /src/haproxy/src/quic_trace.c:186,1
    - Dst: quic_tls_kp_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:187,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:196,1
    - Dst: qc_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:197,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:199,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:199,1
    - Dst: quic_tls_has_rx_sec
      Src: /src/haproxy/src/quic_trace.c:200,1
    - Dst: quic_tls_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:201,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:203,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:211,1
    - Dst: qc_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:212,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:214,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:214,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_trace.c:215,1
    - Dst: quic_tls_keys_hexdump
      Src: /src/haproxy/src/quic_trace.c:216,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:219,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:230,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:231,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:243,1
    - Dst: quic_enc_level_char_from_qel
      Src: /src/haproxy/src/quic_trace.c:245,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:257,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_trace.c:258,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:259,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:260,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:265,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:266,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:277,1
    - Dst: quic_hdshk_state_str
      Src: /src/haproxy/src/quic_trace.c:277,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:279,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:281,1
    - Dst: quic_ssl_early_data_status_str
      Src: /src/haproxy/src/quic_trace.c:282,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:291,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:293,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:295,1
    - Dst: quic_packet_type_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:296,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:298,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:301,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: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:310,1
    - Dst: SSL_quic_read_level
      Src: /src/haproxy/src/quic_trace.c:312,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:313,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:314,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:314,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:324,1
    - Dst: quic_packet_type_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:325,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:328,1
    - Dst: SSL_quic_read_level
      Src: /src/haproxy/src/quic_trace.c:332,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:333,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:334,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:334,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:338,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:345,1
    - Dst: quic_frame_type_string
      Src: /src/haproxy/src/quic_trace.c:345,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:354,1
    - Dst: quic_enc_level_char_from_qel
      Src: /src/haproxy/src/quic_trace.c:357,1
    - Dst: quic_hdshk_state_str
      Src: /src/haproxy/src/quic_trace.c:359,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:373,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:374,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:383,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:397,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:399,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:410,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:411,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:414,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:416,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:424,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:426,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:439,1
    - Dst: quic_cc_event_trace
      Src: /src/haproxy/src/quic_trace.c:448,1
    - Dst: quic_cc_state_trace
      Src: /src/haproxy/src/quic_trace.c:450,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:458,1
    - Dst: quic_pktns_char
      Src: /src/haproxy/src/quic_trace.c:458,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:460,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:461,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_trace.c:461,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_trace.c:463,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:466,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_trace.c:467,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:468,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:478,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:481,1
    - Dst: quic_pktns_char
      Src: /src/haproxy/src/quic_trace.c:482,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:486,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:488,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:489,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:493,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:494,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:496,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:496,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:501,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:502,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:509,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:517,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:518,1
    - Dst: quic_pktns_char
      Src: /src/haproxy/src/quic_trace.c:520,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:522,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_trace.c:525,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:526,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:527,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:531,1
    - Dst: quic_cid_dump
      Src: /src/haproxy/src/quic_trace.c:532,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:542,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:544,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:545,1
    - Dst: ssl_to_quic_enc_level
      Src: /src/haproxy/src/quic_trace.c:545,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:554,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:556,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:558,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:565,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:574,1
    - Dst: quic_hdshk_state_str
      Src: /src/haproxy/src/quic_trace.c:574,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:576,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:576,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:578,1
    - Dst: quic_enc_level_char
      Src: /src/haproxy/src/quic_trace.c:578,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_trace.c:583,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:584,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:585,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_trace.c:585,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_trace.c:586,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:587,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:588,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_trace.c:588,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_trace.c:589,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:590,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_trace.c:591,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_trace.c:591,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_trace.c:601,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_trace.c:602,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:603,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:607,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_trace.c:611,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_trace.c:612,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:613,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_trace.c:615,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_trace.c:616,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:617,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:621,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:632,1
    - Dst: qc_pkt_long
      Src: /src/haproxy/src/quic_trace.c:633,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:635,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:639,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_trace.c:642,1
    - Dst: quic_cid_dump
      Src: /src/haproxy/src/quic_trace.c:649,1
    CyclomaticComplexity: 127
    EdgeCount: 127
    ICount: 309
    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: 652
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 652
    functionName: quic_trace
    functionSourceFile: /src/haproxy/src/quic_trace.c
    functionUses: 0
    functionsReached:
    - ssl_to_quic_enc_level
    - quic_tls_secret_hexdump
    - quic_cc_event_trace
    - quic_cid_dump
    - qc_pkt_long
    - quic_enc_level_char_from_qel
    - quic_transport_params_dump
    - chunk_appendf
    - tick_remain
    - tick_isset
    - port_to_str
    - quic_enc_level_char
    - quic_cc_state_trace
    - LIST_ISEMPTY
    - addr_to_str
    - quic_frame_type_string
    - quic_tls_keys_hexdump
    - quic_packet_type_enc_level_char
    - quic_tls_has_rx_sec
    - quic_ssl_early_data_status_str
    - quic_tls_kp_keys_hexdump
    - quic_hdshk_state_str
    - quic_pktns_char
    - list_for_each_entry
    - qc_quic_enc_level
    - quic_tls_has_tx_sec
    - chunk_frm_appendf
    - SSL_quic_read_level
    - TICKS_TO_MS
    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:230,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 3
    functionLinenumber: 229
    functionLinenumberEnd: 232
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/quic_trace.c
    functionUses: 100
    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:373,1
    - Dst: chunk_frm_appendf
      Src: /src/haproxy/src/quic_trace.c:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 3
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/quic_trace.c
    functionUses: 100
    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:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - qc
    argTypes:
    - struct buffer*
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 658
    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: 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: 0
    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
    - pool_free
    - eb64_delete
    - eb64_first
    - eb64_entry
    - TRACE_ENTER
    - TRACE_LEAVE
    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
    - quic_int_getsize
    - TRACE_ENTER
    - sack_gap
    - eb64_last
    - eb64_prev
    - TRACE_LEAVE
    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_free
      Src: /src/haproxy/src/quic_ack.c:89,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_free
    - eb64_delete
    - eb64_insert
    - BUG_ON
    - eb64_first
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - TRACE_LEAVE
    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_next
    - pool_free
    - quic_insert_new_range
    - eb64_delete
    - new_node::new_node
    - eb64_lookup_le
    - TRACE_ENTER
    - eb64_entry
    - eb_is_empty
    - le::le
    - quic_arngs_set_enc_sz
    - TRACE_LEAVE
    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:
    - TRACE_DEVEL
    - eb64_next
    - pool_free
    - eb64_delete
    - eb64_insert
    - eb64_first
    - eb64_entry
    - TRACE_ENTER
    - TRACE_LEAVE
    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:
    - MT_LIST_FOR_EACH_ENTRY_UNLOCKED
    - _event_hdl_sub_list_destroy
    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:
    - strlen
    - XXH64_update
    - XXH64_digest
    - XXH64_reset
    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:
    - pool_free
    - struct event_hdl_async_event_data*::mfree
    - HA_ATOMIC_SUB_FETCH
    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:
    - HA_ATOMIC_DEC
    - unlikely
    - pool_free
    - event_hdl_sub_type_equal
    - event_hdl_drop
    - _event_hdl_async_data_drop
    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:
    - tasklet_wakeup
    - task_wakeup
    - TASK_IS_TASKLET
    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:
    - tasklet_free
    - pool_free
    - event_hdl_async_equeue_pop
    - struct event_hdl_async_task_default_ctx*::func
    - event_hdl_sub_type_equal
    - event_hdl_async_free_event
    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:
    - _event_hdl_getsub
    - mt_list_unlock_full
    - mt_list_lock_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:
    - mt_list_unlock_full
    - mt_list_lock_full
    - _event_hdl_resub
    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:
    - HA_ATOMIC_INC
    - mt_list_lock_prev
    - mt_list_lock_elem
    - event_hdl_drop
    - mt_list_unlock_full
    - event_hdl_task_wakeup
    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:
    - HA_ATOMIC_INC
    - tasklet_free
    - tasklet_new
    - MT_LIST_APPEND
    - pool_free
    - event_hdl_async_equeue_init
    - mt_list_lock_full
    - BUG_ON
    - event_hdl_report_hdl_state
    - pool_alloc
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - MT_LIST_INIT
    - MT_LIST_INSERT
    - EVENT_HDL_SUB_MGMT_ASYNC
    - 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:
    - pool_free
    - struct event_hdl_sub*::hdl::private_free
    - HA_ATOMIC_SUB_FETCH
    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_unlock_full
    - _event_hdl_pause
    - mt_list_lock_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:
    - mt_list_unlock_full
    - mt_list_lock_full
    - _event_hdl_resume
    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_unsubscribe_async
    - event_hdl_drop
    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_drop
    - event_hdl_subscribe_ptr
    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_FOR_EACH_ENTRY_LOCKED
    - _event_hdl_unsubscribe
    - mt_list_unlock_self
    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:
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - _event_hdl_resub
    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:
    - _event_hdl_pause
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    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:
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - _event_hdl_resume
    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:
    - event_hdl_take
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    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:
    - HA_ATOMIC_INC
    - EVENT_HDL_SUB_MGMT_ASYNC
    - event_hdl_task_wakeup
    - EVENT_HDL_SUB_MGMT_SYNC
    - MT_LIST_APPEND
    - pool_free
    - _event_hdl_unsubscribe
    - BUG_ON
    - event_hdl_report_hdl_state
    - struct event_hdl_cb_data*::_mfree
    - pool_alloc
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - mt_list_unlock_self
    - MT_LIST_INIT
    - struct event_hdl_sub*::hdl::sync_ptr
    - _event_hdl_async_data_drop
    - memcpy
    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: 6
    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:
    - BUG_ON
    - MT_LIST_INIT
    - MT_LIST_APPEND
    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:
    - MT_LIST_FOR_EACH_ENTRY_UNLOCKED
    - _event_hdl_unsubscribe
    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:
    - MT_LIST_DELETE
    - BUG_ON
    - _event_hdl_sub_list_destroy
    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:
    - memprintf
    - too_many_args
    - atoi
    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
    - obj_type
    - objt_conn
    - conn_src
    - __objt_check
    - sc_src
    - 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
    - obj_type
    - objt_conn
    - conn_src
    - __objt_check
    - sc_src
    - conn_get_src
    - get_host_port
    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
    - obj_type
    - objt_conn
    - __objt_check
    - sc_dst
    - conn_get_dst
    - conn_dst
    - sess_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
    - sc_dst
    - conn_get_dst
    - conn_dst
    - sess_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:
    - sess_src
    - addr_is_local
    - objt_conn
    - conn_src
    - 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
    - obj_type
    - objt_conn
    - __objt_check
    - sc_dst
    - conn_get_dst
    - conn_dst
    - sess_dst
    - get_host_port
    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:
    - chunk_destroy
    - memprintf
    - strcmp
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/tcp_sample.c:335,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: 4
    EdgeCount: 4
    ICount: 8
    argCount: 4
    argNames:
    - args
    - smp
    - dir
    - val
    argTypes:
    - struct arg*
    - struct sample*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 342
    functionName: get_tcp_info
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - 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:348,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: 356
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 356
    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:362,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: 370
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 370
    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:376,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: 384
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 384
    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:390,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: 398
      start: 387
    functionDepth: 2
    functionLinenumber: 387
    functionLinenumberEnd: 398
    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:406,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: 409
      start: 403
    functionDepth: 2
    functionLinenumber: 403
    functionLinenumberEnd: 409
    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:417,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: 420
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 420
    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:428,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: 431
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 431
    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:439,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: 442
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 442
    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:450,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: 453
      start: 447
    functionDepth: 2
    functionLinenumber: 447
    functionLinenumberEnd: 453
    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:461,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: 464
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 464
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_sample.c:478,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_sample.c:481,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_sample.c:484,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_sample.c:488,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/tcp_sample.c:493,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_sample.c:498,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 503
    functionName: smp_check_accept_date_unit
    functionSourceFile: /src/haproxy/src/tcp_sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - memprintf
    - strcmp
    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:517,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/tcp_sample.c:525,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: 549
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 549
    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:
    - memprintf
    - atol
    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:
    - getgrnam
    - memprintf
    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:
    - memprintf
    - atol
    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:
    - getpwnam
    - memprintf
    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:
    - quic_tune_test
    - quic_cc_hystart_reset
    - TRACE_ENTER
    - quic_cc_priv
    - TRACE_LEAVE
    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_priv
    - quic_cc_cubic_reset
    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:
    - container_of
    - cubic_root
    - TRACE_ENTER
    - quic_cc_priv
    - quic_cc_path_inc
    - quic_cc_cubic_reset
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void quic_cubic_update(struct quic_cc *cc, uint32_t acked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:393,1
    - Dst: quic_cc_cubic_reset
      Src: /src/haproxy/src/quic_cc_cubic.c:394,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 391
    functionDepth: 2
    functionLinenumber: 391
    functionLinenumberEnd: 396
    functionName: quic_cc_cubic_slow_start
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - quic_cc_cubic_reset
    - TRACE_ENTER
    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:400,1
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:401,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:404,1
    - Dst: quic_cc_path_set
      Src: /src/haproxy/src/quic_cc_cubic.c:433,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - cc
    argTypes:
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 398
    functionDepth: 3
    functionLinenumber: 398
    functionLinenumberEnd: 436
    functionName: quic_enter_recovery
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - container_of
    - TRACE_ENTER
    - quic_cc_path_set
    - quic_cc_priv
    - TRACE_LEAVE
    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:441,1
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:442,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:444,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:445,1
    - Dst: quic_tune_test
      Src: /src/haproxy/src/quic_cc_cubic.c:448,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_cc_cubic.c:450,1
    - Dst: quic_cc_path_inc
      Src: /src/haproxy/src/quic_cc_cubic.c:455,1
    - Dst: quic_cc_hystart_track_min_rtt
      Src: /src/haproxy/src/quic_cc_cubic.c:456,1
    - Dst: quic_cc_hystart_may_enter_cs
      Src: /src/haproxy/src/quic_cc_cubic.c:459,1
    - Dst: quic_cc_path_inc
      Src: /src/haproxy/src/quic_cc_cubic.c:466,1
    - Dst: quic_enter_recovery
      Src: /src/haproxy/src/quic_cc_cubic.c:474,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:483,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:484,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: 485
      start: 439
    functionDepth: 4
    functionLinenumber: 439
    functionLinenumberEnd: 485
    functionName: quic_cc_cubic_ss_cb
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_tune_test
    - container_of
    - TRACE_ENTER
    - TRACE_PROTO
    - quic_cc_hystart_may_enter_cs
    - quic_cc_priv
    - quic_enter_recovery
    - TRACE_LEAVE
    - quic_cc_path_inc
    - QUIC_MIN
    - quic_cc_hystart_track_min_rtt
    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:490,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:492,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:493,1
    - Dst: quic_cubic_update
      Src: /src/haproxy/src/quic_cc_cubic.c:497,1
    - Dst: QUIC_TUNE_FB_GET
      Src: /src/haproxy/src/quic_cc_cubic.c:510,1
    - Dst: quic_enter_recovery
      Src: /src/haproxy/src/quic_cc_cubic.c:512,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:520,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:521,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: 522
      start: 488
    functionDepth: 4
    functionLinenumber: 488
    functionLinenumberEnd: 522
    functionName: quic_cc_cubic_ca_cb
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - quic_cubic_update
    - TRACE_PROTO
    - quic_cc_priv
    - quic_enter_recovery
    - QUIC_TUNE_FB_GET
    - TRACE_LEAVE
    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:527,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:529,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:530,1
    - Dst: quic_cc_priv
      Src: /src/haproxy/src/quic_cc_cubic.c:535,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_cc_cubic.c:538,1
    - Dst: quic_cc_path_inc
      Src: /src/haproxy/src/quic_cc_cubic.c:543,1
    - Dst: quic_cc_hystart_track_min_rtt
      Src: /src/haproxy/src/quic_cc_cubic.c:544,1
    - Dst: quic_cc_hystart_may_reenter_ss
      Src: /src/haproxy/src/quic_cc_cubic.c:545,1
    - Dst: quic_enter_recovery
      Src: /src/haproxy/src/quic_cc_cubic.c:574,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:582,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:583,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: 584
      start: 525
    functionDepth: 4
    functionLinenumber: 525
    functionLinenumberEnd: 584
    functionName: quic_cc_cubic_cs_cb
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_cc_hystart_may_reenter_ss
    - container_of
    - TRACE_ENTER
    - TRACE_PROTO
    - quic_enter_recovery
    - quic_cc_priv
    - TRACE_LEAVE
    - quic_cc_path_inc
    - QUIC_MIN
    - quic_cc_hystart_track_min_rtt
    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:589,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_cc_cubic.c:591,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:592,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/quic_cc_cubic.c:600,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:601,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_cc_cubic.c:616,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_cc_cubic.c:617,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: 618
      start: 587
    functionDepth: 1
    functionLinenumber: 587
    functionLinenumberEnd: 618
    functionName: quic_cc_cubic_rp_cb
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - TRACE_PROTO
    - tick_is_le
    - quic_cc_priv
    - TRACE_LEAVE
    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:630,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: 633
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 633
    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:637,1
    - Dst: quic_cc_hystart_start_round
      Src: /src/haproxy/src/quic_cc_cubic.c:643,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - cc
    - pn
    argTypes:
    - struct quic_cc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 644
    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:649,1
    - Dst: container_of
      Src: /src/haproxy/src/quic_cc_cubic.c:651,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cc_cubic.c:652,1
    - Dst: quic_cc_state_str
      Src: /src/haproxy/src/quic_cc_cubic.c:653,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_cc_cubic.c:657,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_cc_cubic.c:658,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_cc_cubic.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - cc
    argTypes:
    - struct buffer*
    - struct quic_cc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 659
    functionName: quic_cc_cubic_state_trace
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_cc_state_str
    - chunk_appendf
    - container_of
    - tick_remain
    - tick_isset
    - quic_cc_priv
    - TICKS_TO_MS
    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:663,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cc_cubic.c:665,1
    - Dst: quic_cc_state_str
      Src: /src/haproxy/src/quic_cc_cubic.c:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - path
    argTypes:
    - struct buffer*
    - struct quic_cc_path*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 668
    functionName: quic_cc_cubic_state_cli
    functionSourceFile: /src/haproxy/src/quic_cc_cubic.c
    functionUses: 0
    functionsReached:
    - quic_cc_state_str
    - chunk_appendf
    - 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:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 687
    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: 31
    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: 147
    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: 8
    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:
    - ncb_orig
    - BUG_ON_HOT
    - 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:
    - ncb_orig
    - BUG_ON_HOT
    - 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_read_off
    - ncb_write_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_read_off
    - ncb_reserved
    - ncb_size
    - BUG_ON_HOT
    - ncb_head
    - ncb_peek
    - ncb_is_null
    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_read_off
    - ncb_off_reduced
    - ncb_blk_is_null
    - ncb_size
    - BUG_ON_HOT
    - ncb_peek
    - ncb_blk_is_last
    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_size
    - BUG_ON_HOT
    - ncb_blk_next
    - ncb_is_null
    - ncb_blk_first
    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:
    - ncb_orig
    - MIN
    - ncb_wrap
    - memcmp
    - ncb_blk_next
    - ncb_peek
    - ncb_blk_is_last
    - ncb_blk_off
    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
    - MIN
    - ncb_wrap
    - BUG_ON_HOT
    - ncb_peek
    - memcpy
    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_orig
    - ncb_off_reduced
    - ncb_write_off
    - MIN
    - ncb_wrap
    - BUG_ON_HOT
    - ncb_peek
    - memcpy
    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_write_off
    - ncb_is_null
    - ncb_reserved
    - ncb_size
    - BUG_ON_HOT
    - ncb_peek
    - ncb_head
    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_is_null
    - ncb_blk_next
    - ncb_blk_first
    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_read_off
    - ncb_reserved
    - ncb_size
    - BUG_ON_HOT
    - ncb_head
    - ncb_is_null
    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_read_off
    - ncb_reserved
    - ncb_size
    - BUG_ON_HOT
    - ncb_is_null
    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_empty
    - ncb_blk_next
    - ncb_blk_is_last
    - ncb_is_null
    - ncb_blk_first
    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_find
    - ncb_blk_next
    - ncb_blk_is_last
    - ncb_blk_off
    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_find
    - ncb_size
    - ncb_inc_off
    - BUG_ON_HOT
    - ncb_blk_next
    - ncb_peek
    - ncb_fill_data_blk
    - ncb_fill_gap_blk
    - ncb_check_insert
    - ncb_blk_off
    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_write_off
    - ncb_blk_find
    - ncb_reserved
    - ncb_size
    - BUG_ON_HOT
    - ncb_blk_next
    - ncb_head
    - ncb_peek
    - ncb_blk_is_last
    - ncb_init
    - ncb_blk_off
    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:
    - vfprintf
    - va_end
    - va_start
    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:
    - BUG_ON
    - calloc
    - ncb_size
    - rand
    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
    - ncbuf_printf
    - ncb_is_null_blk
    - ncb_blk_next
    - ncb_blk_first
    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:
    - ncb_loop
    - getchar
    - ncbuf_printf
    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:
    - usleep
    - ncb_add
    - ncb_is_empty
    - ncb_generate_rand_off
    - malloc
    - list_for_each_entry_safe
    - fprintf
    - ncbuf_print_buf
    - NCB_TOTAL_DATA_EQ
    - ncb_peek
    - NCB_ADD_EQ
    - NCB_ADVANCE_EQ
    - memset
    - LIST_INSERT
    - NCB_DATA_EQ
    - BUG_ON
    - ncb_size
    - NCB_INIT
    - abort
    - ncb_is_full
    - LIST_DELETE
    - free
    - LIST_HEAD_INIT
    - ncb_is_null
    - ncb_is_fragmented
    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:
    - ncbuf_test
    - exit
    - atoi
    - fprintf
    - getopt
    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:
    - NODEK
    - string_equal_bits
    - _ceb_clrtag
    - equal_bits
    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:
    - printf
    - _ceb_clrtag
    - _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:
    - flsnz
    - NODEK
    - printf
    - _ceb_clrtag
    - _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:
    - _ceb_dotag
    - NODEK
    - printf
    - _ceb_clrtag
    - _xor_branches
    - _ceb_untag
    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:
    - printf
    - NODEK
    - _xor_branches
    - flsnz
    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:
    - root_dump
    - _ceb_dotag
    - dups_dump
    - _ceb_clrtag
    - leaf_dump
    - node_dump
    - _xor_branches
    - ceb_imm_default_dump_tree
    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:44,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - saddr
    argTypes:
    - unsigned char*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 50
    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:67,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_retry.c:67,1
    - Dst: quic_saddr_cpy
      Src: /src/haproxy/src/quic_retry.c:69,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:70,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: 74
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: quic_generate_retry_token_aad
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - quic_saddr_cpy
    - write_u32
    - memcpy
    - htonl
    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:101,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/quic_retry.c:103,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_retry.c:107,1
    - Dst: quic_generate_retry_token_aad
      Src: /src/haproxy/src/quic_retry.c:116,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_retry.c:118,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:119,1
    - Dst: quic_tls_derive_retry_token_secret
      Src: /src/haproxy/src/quic_retry.c:123,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_retry.c:123,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:125,1
    - Dst: quic_tls_tx_ctx_init
      Src: /src/haproxy/src/quic_retry.c:129,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:130,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:138,1
    - Dst: write_u32
      Src: /src/haproxy/src/quic_retry.c:140,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_retry.c:140,1
    - Dst: quic_tls_encrypt
      Src: /src/haproxy/src/quic_retry.c:144,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:145,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:150,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_retry.c:152,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retry.c:156,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_retry.c:161,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: 163
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 163
    functionName: quic_generate_retry_token
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - QUIC_AEAD_CTX_free
    - write_u32
    - EVP_aes_128_gcm
    - TRACE_ENTER
    - EVP_aead_aes_128_gcm
    - RAND_bytes
    - TRACE_ERROR
    - quic_tls_derive_retry_token_secret
    - htonl
    - quic_generate_retry_token_aad
    - quic_tls_tx_ctx_init
    - EVP_sha256
    - quic_tls_encrypt
    - memcpy
    - TRACE_LEAVE
    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:180,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_retry.c:182,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:183,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:194,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:199,1
    - Dst: ntohl
      Src: /src/haproxy/src/quic_retry.c:203,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_retry.c:203,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:209,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_retry.c:214,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retry.c:217,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: 219
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 219
    functionName: parse_retry_token
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - quic_dec_int
    - ntohl
    - TRACE_ENTER
    - TRACE_ERROR
    - read_u32
    - memcpy
    - TRACE_LEAVE
    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:257,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/quic_retry.c:259,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_retry.c:262,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_retry.c:265,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_retry.c:268,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:271,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:281,1
    - Dst: quic_generate_retry_token_aad
      Src: /src/haproxy/src/quic_retry.c:285,1
    - Dst: quic_tls_derive_retry_token_secret
      Src: /src/haproxy/src/quic_retry.c:287,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_retry.c:287,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:289,1
    - Dst: quic_tls_rx_ctx_init
      Src: /src/haproxy/src/quic_retry.c:293,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:294,1
    - Dst: quic_tls_decrypt2
      Src: /src/haproxy/src/quic_retry.c:299,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:301,1
    - Dst: parse_retry_token
      Src: /src/haproxy/src/quic_retry.c:305,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_retry.c:306,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_retry.c:310,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_retry.c:313,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retry.c:316,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_retry.c:320,1
    - Dst: QUIC_AEAD_CTX_free
      Src: /src/haproxy/src/quic_retry.c:322,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: 324
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 324
    functionName: quic_retry_token_check
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - QUIC_AEAD_CTX_free
    - BUG_ON
    - EVP_aes_128_gcm
    - TRACE_ENTER
    - EVP_aead_aes_128_gcm
    - EXTRA_COUNTERS_GET
    - TRACE_ERROR
    - quic_tls_derive_retry_token_secret
    - quic_generate_retry_token_aad
    - quic_tls_decrypt2
    - parse_retry_token
    - EVP_sha256
    - quic_tls_rx_ctx_init
    - TRACE_LEAVE
    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:339,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:342,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:349,1
    - Dst: quic_tls_generate_retry_integrity_tag
      Src: /src/haproxy/src/quic_retry.c:353,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:356,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_retry.c:360,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:361,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_retry.c:367,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_retry.c:374,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_retry.c:377,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: 379
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 379
    functionName: quic_retry_packet_check
    functionSourceFile: /src/haproxy/src/quic_retry.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - memcmp
    - TRACE_ENTER
    - TRACE_PROTO
    - quic_tls_generate_retry_integrity_tag
    - TRACE_LEAVE
    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:384,1
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_retry.c:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 391
    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:
    - strncmp
    - strcmp
    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: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - jwt
    - items
    - item_num
    argTypes:
    - struct buffer*
    - struct jwt_item*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 130
    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:146,1
    - Dst: stat
      Src: /src/haproxy/src/jwt.c:151,1
    - Dst: BIO_new
      Src: /src/haproxy/src/jwt.c:152,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/jwt.c:152,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwt.c:154,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/jwt.c:158,1
    - Dst: PEM_read_bio_PUBKEY
      Src: /src/haproxy/src/jwt.c:159,1
    - Dst: calloc
      Src: /src/haproxy/src/jwt.c:166,1
    - Dst: memprintf
      Src: /src/haproxy/src/jwt.c:168,1
    - Dst: memcpy
      Src: /src/haproxy/src/jwt.c:171,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/jwt.c:177,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/jwt.c:191,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/jwt.c:194,1
    - Dst: ckch_store_new
      Src: /src/haproxy/src/jwt.c:200,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:202,1
    - Dst: ckch_store_load_files
      Src: /src/haproxy/src/jwt.c:208,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/jwt.c:210,1
    - Dst: ha_free
      Src: /src/haproxy/src/jwt.c:218,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:219,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/jwt.c:223,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/jwt.c:224,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:225,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:234,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwt.c:241,1
    - Dst: free
      Src: /src/haproxy/src/jwt.c:242,1
    - Dst: BIO_free
      Src: /src/haproxy/src/jwt.c:244,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: 247
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 247
    functionName: jwt_tree_load_cert
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - EVP_PKEY_free
    - BIO_new
    - ckchs_lookup
    - ebst_insert
    - stat
    - ha_free
    - ckch_store_free
    - BIO_free
    - HA_SPIN_UNLOCK
    - calloc
    - memprintf
    - PEM_read_bio_PUBKEY
    - ebst_lookup
    - BIO_read_filename
    - free
    - ckch_store_load_files
    - ckch_store_new
    - BIO_s_file
    - memcpy
    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:270,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jwt.c:273,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jwt.c:276,1
    - Dst: HMAC
      Src: /src/haproxy/src/jwt.c:281,1
    - Dst: CRYPTO_memcmp
      Src: /src/haproxy/src/jwt.c:285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ctx
    - decoded_signature
    argTypes:
    - struct jwt_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 289
    functionName: jwt_jwsverify_hmac
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - EVP_sha384
    - CRYPTO_memcmp
    - EVP_sha512
    - HMAC
    - 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:305,1
    - Dst: b_data
      Src: /src/haproxy/src/jwt.c:311,1
    - Dst: b_data
      Src: /src/haproxy/src/jwt.c:316,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/jwt.c:318,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwt.c:318,1
    - Dst: BN_bin2bn
      Src: /src/haproxy/src/jwt.c:319,1
    - Dst: b_orig
      Src: /src/haproxy/src/jwt.c:319,1
    - Dst: ECDSA_SIG_set0
      Src: /src/haproxy/src/jwt.c:327,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/haproxy/src/jwt.c:331,1
    - Dst: ECDSA_SIG_free
      Src: /src/haproxy/src/jwt.c:338,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ctx
    - signature
    argTypes:
    - struct jwt_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 340
    functionName: convert_ecdsa_sig
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - b_orig
    - ECDSA_SIG_new
    - b_data
    - i2d_ECDSA_SIG
    - ECDSA_SIG_free
    - BN_bin2bn
    - 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:362,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jwt.c:365,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jwt.c:368,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jwt.c:372,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jwt.c:376,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jwt.c:380,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jwt.c:385,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jwt.c:389,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jwt.c:393,1
    - Dst: EVP_MD_CTX_new
      Src: /src/haproxy/src/jwt.c:399,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/jwt.c:405,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/jwt.c:407,1
    - Dst: X509_get_pubkey
      Src: /src/haproxy/src/jwt.c:410,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/jwt.c:412,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/jwt.c:416,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/jwt.c:420,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/jwt.c:423,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/jwt.c:427,1
    - Dst: convert_ecdsa_sig
      Src: /src/haproxy/src/jwt.c:443,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/haproxy/src/jwt.c:450,1
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/haproxy/src/jwt.c:451,1
    - Dst: EVP_DigestVerifyUpdate
      Src: /src/haproxy/src/jwt.c:452,1
    - Dst: EVP_DigestVerifyFinal
      Src: /src/haproxy/src/jwt.c:454,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/jwt.c:461,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/jwt.c:467,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwt.c:469,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 91
    argCount: 2
    argNames:
    - ctx
    - decoded_signature
    argTypes:
    - struct jwt_ctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 471
    functionName: jwt_jwsverify_rsa_ecdsa
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - EVP_PKEY_CTX_set_rsa_padding
    - EVP_PKEY_free
    - ckchs_lookup
    - EVP_DigestVerifyUpdate
    - ebmb_entry
    - EVP_PKEY_up_ref
    - EVP_MD_CTX_free
    - EVP_DigestVerifyInit
    - HA_SPIN_UNLOCK
    - EVP_MD_CTX_new
    - EVP_sha384
    - EVP_sha512
    - X509_get_pubkey
    - ebst_lookup
    - ERR_clear_error
    - EVP_DigestVerifyFinal
    - EVP_sha256
    - convert_ecdsa_sig
    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: 22
    BranchProfiles: []
    Callsites:
    - Dst: jwt_parse_alg
      Src: /src/haproxy/src/jwt.c:491,1
    - Dst: jwt_tokenize
      Src: /src/haproxy/src/jwt.c:496,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jwt.c:515,1
    - Dst: base64urldec
      Src: /src/haproxy/src/jwt.c:519,1
    - Dst: jwt_jwsverify_hmac
      Src: /src/haproxy/src/jwt.c:539,1
    - Dst: jwt_jwsverify_rsa_ecdsa
      Src: /src/haproxy/src/jwt.c:553,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jwt.c:562,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 4
    argNames:
    - token
    - alg
    - key
    - is_x509_path
    argTypes:
    - struct buffer*
    - struct buffer*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 565
    functionName: jwt_verify
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - jwt_tokenize
    - jwt_jwsverify_rsa_ecdsa
    - base64urldec
    - jwt_parse_alg
    - jwt_jwsverify_hmac
    - alloc_trash_chunk
    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:573,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/jwt.c:575,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/jwt.c:576,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jwt.c:577,1
    - Dst: ha_free
      Src: /src/haproxy/src/jwt.c:578,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/jwt.c:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 581
    functionName: jwt_deinit
    functionSourceFile: /src/haproxy/src/jwt.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - ebmb_first
    - ha_free
    - ebmb_entry
    - ebmb_delete
    linkageType: ''
    returnType: void
    signature: void jwt_deinit(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_status_changed
      Src: /src/haproxy/src/lb_ss.c:34,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_ss.c:37,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_ss.c:40,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_ss.c:42,1
    - Dst: recalc_server_ss
      Src: /src/haproxy/src/lb_ss.c:57,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_ss.c:62,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_ss.c:63,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_ss.c:66,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 67
    functionName: ss_set_server_status_down
    functionSourceFile: /src/haproxy/src/lb_ss.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - recalc_server_ss
    - update_backend_weight
    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:77,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_ss.c:80,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_ss.c:83,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_ss.c:85,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_ss.c:106,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_ss.c:107,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_ss.c:110,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: ss_set_server_status_up
    functionSourceFile: /src/haproxy/src/lb_ss.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - update_backend_weight
    linkageType: ''
    returnType: void
    signature: void ss_set_server_status_up(struct server *srv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_ss.c:135,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 141
    functionName: recalc_server_ss
    functionSourceFile: /src/haproxy/src/lb_ss.c
    functionUses: 1
    functionsReached:
    - srv_willbe_usable
    linkageType: ''
    returnType: void
    signature: void recalc_server_ss(struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_ss.c:159,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_ss.c:163,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_ss.c:164,1
    - Dst: recalc_server_ss
      Src: /src/haproxy/src/lb_ss.c:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 166
    functionName: init_server_ss
    functionSourceFile: /src/haproxy/src/lb_ss.c
    functionUses: 0
    functionsReached:
    - update_backend_weight
    - recalc_server_ss
    - recount_servers
    - srv_lb_commit_status
    linkageType: ''
    returnType: void
    signature: void init_server_ss(struct proxy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_ss.c:179,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_ss.c:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 183
    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:70,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:71,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:71,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 74
    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:82,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:83,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/http_htx.c:86,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_htx.c:87,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 92
    functionName: http_get_hdrs_size
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_get_next_blk
    - htx_get_blk_type
    - htx_get_first_blk
    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:138,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:142,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:143,1
    - Dst: istnext
      Src: /src/haproxy/src/http_htx.c:150,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_htx.c:156,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:159,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/http_htx.c:159,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:161,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_htx.c:170,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/http_htx.c:171,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:178,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_htx.c:181,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:184,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:188,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:188,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:191,1
    - Dst: istptr
      Src: /src/haproxy/src/http_htx.c:191,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:191,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:192,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:196,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:196,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:199,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:199,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:199,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:200,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:201,1
    - Dst: strnistr
      Src: /src/haproxy/src/http_htx.c:205,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:214,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/http_htx.c:219,1
    - Dst: istnext
      Src: /src/haproxy/src/http_htx.c:220,1
    - Dst: http_find_hdr_value_end
      Src: /src/haproxy/src/http_htx.c:224,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:224,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/http_htx.c:226,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:226,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:239,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: 242
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 242
    functionName: __http_find_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - istlen
    - strnistr
    - htx_get_blk_value
    - istnext
    - http_find_hdr_value_end
    - htx_get_blk_type
    - istptr
    - htx_get_blk_name
    - ist2
    - htx_get_next_blk
    - regex_exec2
    - isteqi
    - htx_get_first_blk
    - istend
    - isttest
    - ist
    - HTTP_IS_LWS
    - htx_is_empty
    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:248,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: 249
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 249
    functionName: http_find_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 21
    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:254,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: 255
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 255
    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:261,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: 262
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 262
    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:267,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: 268
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 268
    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:272,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: 273
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 273
    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:278,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: 279
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 279
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/http_htx.c:289,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_htx.c:292,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_htx.c:296,1
    - Dst: htx_get_prev
      Src: /src/haproxy/src/http_htx.c:301,1
    - Dst: htx_get_prev
      Src: /src/haproxy/src/http_htx.c:301,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:302,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:303,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_htx.c:310,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:320,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:321,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:321,1
    - Dst: http_update_authority
      Src: /src/haproxy/src/http_htx.c:322,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 33
    argCount: 3
    argNames:
    - htx
    - n
    - v
    argTypes:
    - struct htx*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 329
    functionName: http_add_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 3
    functionsReached:
    - htx_get_blksz
    - htx_add_header
    - unlikely
    - htx_get_prev
    - htx_get_blk_type
    - http_update_authority
    - htx_get_tail_type
    - http_get_stline
    - isteqi
    - htx_get_blk
    - ist
    linkageType: ''
    returnType: int
    signature: int http_add_header(struct htx *htx, const struct ist n, const struct
      ist v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:338,1
    - Dst: htx_replace_stline
      Src: /src/haproxy/src/http_htx.c:339,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: 342
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 342
    functionName: http_replace_stline
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_replace_stline
    - htx_get_first_blk
    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:349,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:350,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:357,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_htx.c:357,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_htx.c:357,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:358,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_htx.c:358,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:360,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:360,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:360,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:361,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:361,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/http_htx.c:364,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - htx
    - meth
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 366
    functionName: http_replace_req_meth
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - http_replace_stline
    - get_trash_chunk
    - HTX_SL_REQ_VLEN
    - find_http_meth
    - HTX_SL_REQ_ULEN
    - ist2
    - HTX_SL_REQ_VPTR
    - http_get_stline
    - HTX_SL_REQ_UPTR
    - chunk_memcat
    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:373,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:374,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:381,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:381,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:381,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:382,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:382,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:384,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:384,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:384,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:385,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:385,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:388,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/http_htx.c:392,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:392,1
    - Dst: http_update_host
      Src: /src/haproxy/src/http_htx.c:395,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - htx
    - uri
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 401
    functionName: http_replace_req_uri
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_MPTR
    - http_replace_stline
    - HTX_SL_REQ_MLEN
    - get_trash_chunk
    - HTX_SL_REQ_VLEN
    - ist2
    - HTX_SL_REQ_VPTR
    - http_get_stline
    - ASSUME_NONNULL
    - http_update_host
    - chunk_memcat
    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:410,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:411,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_htx.c:419,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_htx.c:420,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_htx.c:421,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:422,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:432,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:432,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:432,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:433,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:433,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:435,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:435,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:435,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:436,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:436,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:438,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:439,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:440,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:441,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:444,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: 445
      start: 408
    functionDepth: 4
    functionLinenumber: 408
    functionLinenumberEnd: 445
    functionName: http_replace_req_path
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_MPTR
    - http_replace_stline
    - get_trash_chunk
    - HTX_SL_REQ_MLEN
    - http_parse_path
    - HTX_SL_REQ_VLEN
    - http_uri_parser_init
    - ist2
    - http_get_stline
    - HTX_SL_REQ_VPTR
    - chunk_istcat
    - htx_sl_req_uri
    - isttest
    - chunk_memcat
    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:453,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:454,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_htx.c:461,1
    - Dst: istnext
      Src: /src/haproxy/src/http_htx.c:464,1
    - Dst: istnext
      Src: /src/haproxy/src/http_htx.c:471,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:477,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:477,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:477,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:478,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:478,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:480,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:480,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:480,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:481,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:481,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:483,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:484,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:485,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - htx
    - query
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 489
    functionName: http_replace_req_query
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - HTX_SL_REQ_MPTR
    - http_replace_stline
    - get_trash_chunk
    - HTX_SL_REQ_MLEN
    - istnext
    - HTX_SL_REQ_VLEN
    - ist2
    - HTX_SL_REQ_VPTR
    - http_get_stline
    - htx_sl_req_uri
    - chunk_memcat
    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:496,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:497,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:504,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/http_htx.c:504,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_htx.c:504,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:505,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_htx.c:505,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:507,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:508,1
    - Dst: HTX_SL_RES_RPTR
      Src: /src/haproxy/src/http_htx.c:508,1
    - Dst: HTX_SL_RES_RLEN
      Src: /src/haproxy/src/http_htx.c:508,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:509,1
    - Dst: HTX_SL_RES_RLEN
      Src: /src/haproxy/src/http_htx.c:509,1
    - Dst: strl2ui
      Src: /src/haproxy/src/http_htx.c:513,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:514,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: 515
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 515
    functionName: http_replace_res_status
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - http_replace_stline
    - get_trash_chunk
    - HTX_SL_RES_VPTR
    - ist2
    - http_get_stline
    - HTX_SL_RES_RLEN
    - isttest
    - HTX_SL_RES_RPTR
    - chunk_memcat
    - strl2ui
    - HTX_SL_RES_VLEN
    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:522,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:523,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:530,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/http_htx.c:530,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_htx.c:530,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:531,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/http_htx.c:531,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:533,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/http_htx.c:533,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/http_htx.c:533,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:534,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/http_htx.c:534,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:537,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - htx
    - reason
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 538
    functionName: http_replace_res_reason
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - http_replace_stline
    - get_trash_chunk
    - HTX_SL_RES_VPTR
    - ist2
    - http_get_stline
    - HTX_SL_RES_CPTR
    - HTX_SL_RES_CLEN
    - chunk_memcat
    - HTX_SL_RES_VLEN
    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:560,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:562,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_htx.c:566,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:566,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:569,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:572,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:572,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:572,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:576,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:580,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:580,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:583,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:586,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: 592
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 592
    functionName: http_append_header_value
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 1
    functionsReached:
    - istlen
    - unlikely
    - htx_get_blk_value
    - htx_replace_blk_value
    - ist2
    - istend
    - ist
    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:613,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:615,1
    - Dst: istptr
      Src: /src/haproxy/src/http_htx.c:616,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_htx.c:618,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:618,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:623,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:623,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:626,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:633,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:633,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:633,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:636,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:640,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: 646
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 646
    functionName: http_prepend_header_value
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - istlen
    - unlikely
    - htx_get_blk_value
    - istptr
    - htx_replace_blk_value
    - ist2
    - ist
    linkageType: ''
    returnType: int
    signature: int http_prepend_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:663,1
    - Dst: htx_replace_blk_value
      Src: /src/haproxy/src/http_htx.c:668,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:668,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:672,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:674,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_htx.c:676,1
    - Dst: isteq
      Src: /src/haproxy/src/http_htx.c:678,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:678,1
    - Dst: http_update_authority
      Src: /src/haproxy/src/http_htx.c:679,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:682,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:682,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:684,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:689,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 3
    argNames:
    - htx
    - ctx
    - data
    argTypes:
    - struct htx*
    - struct http_hdr_ctx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 695
    functionName: http_replace_header_value
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 1
    functionsReached:
    - isteq
    - http_find_header
    - htx_get_blk_value
    - http_update_authority
    - htx_replace_blk_value
    - ist2
    - htx_get_blk_name
    - http_get_stline
    - ist
    linkageType: ''
    returnType: int
    signature: int http_replace_header_value(struct htx *htx, struct http_hdr_ctx
      *ctx, const struct ist data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htx_replace_header
      Src: /src/haproxy/src/http_htx.c:710,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_htx.c:714,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_htx.c:715,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:715,1
    - Dst: http_update_authority
      Src: /src/haproxy/src/http_htx.c:716,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:719,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:719,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:724,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - htx
    - ctx
    - name
    - value
    argTypes:
    - struct htx*
    - struct http_hdr_ctx*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 730
    functionName: http_replace_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - http_update_authority
    - htx_replace_header
    - http_get_stline
    - isteqi
    - ist
    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)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:752,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_htx.c:754,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_htx.c:755,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:761,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:762,1
    - Dst: memmove
      Src: /src/haproxy/src/http_htx.c:784,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/http_htx.c:785,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:788,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - htx
    - ctx
    argTypes:
    - struct htx*
    - struct http_hdr_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 792
    functionName: http_remove_header
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 4
    functionsReached:
    - htx_get_blk_value
    - memmove
    - ist2
    - htx_remove_blk
    - htx_change_blk_value_len
    - htx_get_blk
    - htx_is_empty
    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:802,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_htx.c:806,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_htx.c:807,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/http_htx.c:808,1
    - Dst: isteq
      Src: /src/haproxy/src/http_htx.c:813,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:817,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:817,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:817,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:818,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:818,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:820,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:820,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:820,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:821,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:821,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:823,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:824,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:825,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:825,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:825,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:825,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:826,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:828,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: 830
      start: 800
    functionDepth: 3
    functionLinenumber: 800
    functionLinenumberEnd: 830
    functionName: http_update_authority
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 3
    functionsReached:
    - isteq
    - HTX_SL_REQ_MPTR
    - http_replace_stline
    - get_trash_chunk
    - HTX_SL_REQ_MLEN
    - http_parse_authority
    - HTX_SL_REQ_VLEN
    - http_uri_parser_init
    - ist2
    - HTX_SL_REQ_VPTR
    - chunk_istcat
    - htx_sl_req_uri
    - istend
    - chunk_memcat
    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:843,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/http_htx.c:858,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:869,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:869,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_htx.c:870,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: 878
      start: 839
    functionDepth: 3
    functionLinenumber: 839
    functionLinenumberEnd: 878
    functionName: http_update_host
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 1
    functionsReached:
    - http_find_header
    - http_parse_authority
    - http_replace_header_value
    - http_uri_parser_init
    - ist
    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:906,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:922,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: 942
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 942
    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:970,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:986,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: 1006
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 1006
    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:1018,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1026,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/http_htx.c:1030,1
    - Dst: h1_headers_to_hdr_list
      Src: /src/haproxy/src/http_htx.c:1032,1
    - Dst: istend
      Src: /src/haproxy/src/http_htx.c:1032,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1035,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_htx.c:1039,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1040,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1048,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1069,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1082,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1086,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_htx.c:1091,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_htx.c:1092,1
    - Dst: htx_add_all_headers
      Src: /src/haproxy/src/http_htx.c:1093,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1094,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/http_htx.c:1100,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1100,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1102,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1114,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 90
    argCount: 3
    argNames:
    - buf
    - raw
    - errmsg
    argTypes:
    - struct buffer*
    - struct ist
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1008
    functionDepth: 4
    functionLinenumber: 1008
    functionLinenumberEnd: 1116
    functionName: http_str_to_htx
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - h1_headers_to_hdr_list
    - unlikely
    - htx_add_stline
    - h1m_init_res
    - htx_add_data
    - ist2
    - free
    - malloc
    - memprintf
    - htx_from_buf
    - istend
    - htx_add_all_headers
    - b_reset
    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:1125,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:1126,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:1127,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_htx.c:1128,1
    - Dst: istfree
      Src: /src/haproxy/src/http_htx.c:1129,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1130,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1134,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:1137,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_htx.c:1139,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1140,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - http_reply
    argTypes:
    - struct http_reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1118
    functionDepth: 3
    functionLinenumber: 1118
    functionLinenumberEnd: 1141
    functionName: release_http_reply
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - istfree
    - ha_free
    - chunk_destroy
    - free
    - 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:1153,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1158,1
    - Dst: http_str_to_htx
      Src: /src/haproxy/src/http_htx.c:1159,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:1160,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1165,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1170,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:1176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1143
    functionDepth: 5
    functionLinenumber: 1143
    functionLinenumberEnd: 1181
    functionName: http_htx_init
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - ha_free
    - http_str_to_htx
    - LIST_INIT
    - ha_alert
    - ist
    linkageType: ''
    returnType: int
    signature: int http_htx_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_first
      Src: /src/haproxy/src/http_htx.c:1191,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/http_htx.c:1193,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/http_htx.c:1194,1
    - Dst: container_of
      Src: /src/haproxy/src/http_htx.c:1195,1
    - Dst: typeof
      Src: /src/haproxy/src/http_htx.c:1195,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:1196,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1197,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1198,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:1202,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1203,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1204,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:1206,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:1207,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1208,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:1211,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:1212,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:1213,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:1217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1183
    functionDepth: 4
    functionLinenumber: 1183
    functionLinenumberEnd: 1218
    functionName: http_htx_deinit
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ebpt_next
    - LIST_DELETE
    - list_for_each_entry_safe
    - container_of
    - release_http_reply
    - chunk_destroy
    - free
    - typeof
    - ebpt_delete
    - ebpt_first
    linkageType: ''
    returnType: void
    signature: void http_htx_deinit(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/http_htx.c:1239,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1239,1
    - Dst: container_of
      Src: /src/haproxy/src/http_htx.c:1241,1
    - Dst: typeof
      Src: /src/haproxy/src/http_htx.c:1241,1
    - Dst: open
      Src: /src/haproxy/src/http_htx.c:1247,1
    - Dst: fstat
      Src: /src/haproxy/src/http_htx.c:1248,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1249,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1256,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1261,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1263,1
    - Dst: read
      Src: /src/haproxy/src/http_htx.c:1267,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1269,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:1274,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1276,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1279,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1281,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1282,1
    - Dst: http_str_to_htx
      Src: /src/haproxy/src/http_htx.c:1287,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1287,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1288,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1289,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1290,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/http_htx.c:1296,1
    - Dst: close
      Src: /src/haproxy/src/http_htx.c:1301,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1302,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 60
    argCount: 2
    argNames:
    - file
    - errmsg
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1227
    functionDepth: 5
    functionLinenumber: 1227
    functionLinenumberEnd: 1304
    functionName: http_load_errorfile
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ebis_lookup_len
    - strdup
    - ha_warning
    - ebis_insert
    - open
    - container_of
    - fstat
    - read
    - close
    - http_str_to_htx
    - strlen
    - free
    - malloc
    - typeof
    - memprintf
    - ist2
    - calloc
    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:1318,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1318,1
    - Dst: container_of
      Src: /src/haproxy/src/http_htx.c:1320,1
    - Dst: typeof
      Src: /src/haproxy/src/http_htx.c:1320,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:1325,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1327,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1330,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1332,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1333,1
    - Dst: http_str_to_htx
      Src: /src/haproxy/src/http_htx.c:1338,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1339,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1340,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1341,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/http_htx.c:1347,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 3
    argNames:
    - key
    - msg
    - errmsg
    argTypes:
    - char*
    - struct ist
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1310
    functionDepth: 5
    functionLinenumber: 1310
    functionLinenumberEnd: 1351
    functionName: http_load_errormsg
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ebis_lookup_len
    - strdup
    - ebis_insert
    - container_of
    - http_str_to_htx
    - strlen
    - free
    - typeof
    - memprintf
    - calloc
    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:1364,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - status
    - file
    - errmsg
    argTypes:
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1357
    functionDepth: 6
    functionLinenumber: 1357
    functionLinenumberEnd: 1372
    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:1401,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1402,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1407,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1407,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1408,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1410,1
    - Dst: snprintf
      Src: /src/haproxy/src/http_htx.c:1413,1
    - Dst: http_load_errormsg
      Src: /src/haproxy/src/http_htx.c:1416,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1416,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1422,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1424,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1425,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 4
    argNames:
    - errloc
    - status
    - url
    - errmsg
    argTypes:
    - int
    - int
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1380
    functionDepth: 6
    functionLinenumber: 1380
    functionLinenumberEnd: 1427
    functionName: http_parse_errorloc
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - snprintf
    - ist2
    - strlen
    - free
    - malloc
    - memprintf
    - http_load_errormsg
    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:1446,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1447,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1449,1
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/http_htx.c:1450,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1452,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1460,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: 1467
      start: 1438
    functionDepth: 3
    functionLinenumber: 1438
    functionLinenumberEnd: 1467
    functionName: http_check_http_reply
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - list_for_each_entry
    - strcmp
    - free
    - memprintf
    - 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:1496,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1498,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:1501,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1516,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1519,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:1522,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1524,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1529,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1532,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1535,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1536,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1539,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1541,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1547,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1550,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1552,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1558,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1560,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1567,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1569,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1575,1
    - Dst: http_load_errorfile
      Src: /src/haproxy/src/http_htx.c:1578,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1585,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1587,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1593,1
    - Dst: open
      Src: /src/haproxy/src/http_htx.c:1596,1
    - Dst: fstat
      Src: /src/haproxy/src/http_htx.c:1597,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1598,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1602,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1607,1
    - Dst: read
      Src: /src/haproxy/src/http_htx.c:1608,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1609,1
    - Dst: close
      Src: /src/haproxy/src/http_htx.c:1612,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:1615,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1619,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1621,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1627,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1630,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1631,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1633,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:1637,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1641,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1643,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1649,1
    - Dst: open
      Src: /src/haproxy/src/http_htx.c:1652,1
    - Dst: fstat
      Src: /src/haproxy/src/http_htx.c:1653,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1654,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1658,1
    - Dst: malloc
      Src: /src/haproxy/src/http_htx.c:1663,1
    - Dst: read
      Src: /src/haproxy/src/http_htx.c:1664,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1665,1
    - Dst: close
      Src: /src/haproxy/src/http_htx.c:1668,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_htx.c:1672,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1675,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1677,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1683,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1686,1
    - Dst: strlen
      Src: /src/haproxy/src/http_htx.c:1687,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_htx.c:1689,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:1692,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1695,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_htx.c:1698,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_htx.c:1699,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_htx.c:1700,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1701,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:1706,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1708,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:1711,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_htx.c:1712,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1713,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:1713,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:1714,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1715,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_htx.c:1718,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1729,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1732,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1747,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1754,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1757,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/http_htx.c:1759,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1760,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:1763,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:1764,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_htx.c:1765,1
    - Dst: istfree
      Src: /src/haproxy/src/http_htx.c:1766,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1767,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1773,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1777,1
    - Dst: b_data
      Src: /src/haproxy/src/http_htx.c:1780,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1781,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_htx.c:1784,1
    - Dst: b_room
      Src: /src/haproxy/src/http_htx.c:1786,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:1787,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_htx.c:1793,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1795,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1799,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_htx.c:1802,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1806,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:1811,1
    - Dst: close
      Src: /src/haproxy/src/http_htx.c:1813,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:1814,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: 1816
      start: 1485
    functionDepth: 6
    functionLinenumber: 1485
    functionLinenumberEnd: 1816
    functionName: http_parse_http_reply
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - read
    - close
    - malloc
    - lf_expr_deinit
    - http_load_errorfile
    - ha_warning
    - lf_expr_init
    - strcmp
    - open
    - list_for_each_entry_safe
    - ha_free
    - fstat
    - istfree
    - b_data
    - release_http_reply
    - strlen
    - LIST_INIT
    - atol
    - LIST_ISEMPTY
    - calloc
    - strdup
    - strcasecmp
    - parse_logformat_string
    - LIST_APPEND
    - b_room
    - memprintf
    - ist
    - LIST_DELETE
    - free
    - chunk_initlen
    - isttest
    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:1835,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_htx.c:1840,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_htx.c:1842,1
    - Dst: http_parse_scheme
      Src: /src/haproxy/src/http_htx.c:1843,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:1845,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/http_htx.c:1849,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_htx.c:1850,1
    - Dst: http_get_host_port
      Src: /src/haproxy/src/http_htx.c:1851,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:1852,1
    - Dst: http_is_default_port
      Src: /src/haproxy/src/http_htx.c:1852,1
    - Dst: isttrim
      Src: /src/haproxy/src/http_htx.c:1855,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:1855,1
    - Dst: istlen
      Src: /src/haproxy/src/http_htx.c:1855,1
    - Dst: isttest
      Src: /src/haproxy/src/http_htx.c:1859,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1860,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:1866,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:1870,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/http_htx.c:1870,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:1870,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1871,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/http_htx.c:1871,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:1874,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/http_htx.c:1874,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:1874,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1875,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_htx.c:1875,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_htx.c:1878,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:1879,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:1880,1
    - Dst: ist2
      Src: /src/haproxy/src/http_htx.c:1881,1
    - Dst: http_replace_stline
      Src: /src/haproxy/src/http_htx.c:1883,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_htx.c:1887,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1887,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_htx.c:1888,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1827
    functionDepth: 4
    functionLinenumber: 1827
    functionLinenumberEnd: 1897
    functionName: http_scheme_based_normalize
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - HTX_SL_REQ_VLEN
    - http_get_stline
    - HTX_SL_REQ_MPTR
    - istlen
    - http_parse_authority
    - ist2
    - http_is_default_port
    - isttrim
    - http_find_header
    - HTX_SL_REQ_MLEN
    - http_parse_path
    - http_uri_parser_init
    - chunk_memcat
    - ist
    - http_replace_stline
    - http_parse_scheme
    - http_get_host_port
    - http_replace_header_value
    - HTX_SL_REQ_VPTR
    - chunk_istcat
    - htx_sl_req_uri
    - isttest
    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:1914,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: 1928
      start: 1905
    functionDepth: 0
    functionLinenumber: 1905
    functionLinenumberEnd: 1928
    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:1950,1
    - Dst: ist
      Src: /src/haproxy/src/http_htx.c:1950,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/http_htx.c:1955,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_htx.c:1956,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/http_htx.c:1970,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:1971,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:1972,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_htx.c:1973,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:1973,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: 1979
      start: 1939
    functionDepth: 1
    functionLinenumber: 1939
    functionLinenumberEnd: 1979
    functionName: http_cookie_merge
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_free_data_space
    - htx_get_blksz
    - htx_add_header
    - htx_get_blk_ptr
    - htx_change_blk_value_len
    - memcpy
    - ist
    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:1992,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:1998,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2003,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:2008,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:2009,1
    - Dst: http_parse_errorloc
      Src: /src/haproxy/src/http_htx.c:2010,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2012,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2017,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2019,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:2026,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2028,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2030,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2032,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2033,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2041,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2043,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: 2051
      start: 1982
    functionDepth: 7
    functionLinenumber: 1982
    functionLinenumberEnd: 2051
    functionName: proxy_parse_errorloc
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcmp
    - warnifnotcap
    - LIST_APPEND
    - free
    - LIST_INIT
    - memprintf
    - atol
    - http_parse_errorloc
    - calloc
    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:2064,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2070,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2075,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:2080,1
    - Dst: http_parse_errorfile
      Src: /src/haproxy/src/http_htx.c:2081,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2083,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2088,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2090,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:2097,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2099,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2101,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2103,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2104,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2111,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2113,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: 2121
      start: 2054
    functionDepth: 7
    functionLinenumber: 2054
    functionLinenumberEnd: 2121
    functionName: proxy_parse_errorfile
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - strdup
    - warnifnotcap
    - LIST_APPEND
    - free
    - LIST_INIT
    - memprintf
    - atol
    - http_parse_errorfile
    - calloc
    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:2132,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2138,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2143,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2144,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2146,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:2159,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2168,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2173,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2175,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2180,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2181,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: 2184
      start: 2124
    functionDepth: 3
    functionLinenumber: 2124
    functionLinenumberEnd: 2184
    functionName: proxy_parse_errorfiles
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - strdup
    - warnifnotcap
    - LIST_APPEND
    - free
    - memprintf
    - atol
    - calloc
    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:2195,1
    - Dst: http_parse_http_reply
      Src: /src/haproxy/src/http_htx.c:2202,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2204,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2208,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2218,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2222,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2226,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2228,1
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/http_htx.c:2232,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:2238,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2244,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2246,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2248,1
    - Dst: release_http_reply
      Src: /src/haproxy/src/http_htx.c:2257,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: 2261
      start: 2187
    functionDepth: 7
    functionLinenumber: 2187
    functionLinenumberEnd: 2261
    functionName: proxy_parse_http_error
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - strdup
    - http_parse_http_reply
    - warnifnotcap
    - release_http_reply
    - LIST_APPEND
    - memprintf
    - http_get_status_idx
    - calloc
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/http_htx.c:2270,1
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/http_htx.c:2273,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_htx.c:2282,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:2283,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2289,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2292,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2296,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:2302,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:2310,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2311,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2312,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2317
      start: 2264
    functionDepth: 3
    functionLinenumber: 2264
    functionLinenumberEnd: 2317
    functionName: proxy_check_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - list_for_each_entry
    - LIST_DELETE
    - strcmp
    - list_for_each_entry_safe
    - free
    - ha_alert
    - http_get_status_idx
    linkageType: ''
    returnType: int
    signature: int proxy_check_errors(struct proxy *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ebpt_first
      Src: /src/haproxy/src/http_htx.c:2326,1
    - Dst: container_of
      Src: /src/haproxy/src/http_htx.c:2328,1
    - Dst: typeof
      Src: /src/haproxy/src/http_htx.c:2328,1
    - Dst: b_is_null
      Src: /src/haproxy/src/http_htx.c:2329,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_htx.c:2331,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/http_htx.c:2332,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:2333,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/http_htx.c:2340,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2319
    functionDepth: 1
    functionLinenumber: 2319
    functionLinenumberEnd: 2344
    functionName: post_check_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - htx_free_data_space
    - ha_warning
    - ebpt_next
    - b_is_null
    - container_of
    - typeof
    - ebpt_first
    linkageType: ''
    returnType: int
    signature: int post_check_errors()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_htx.c:2351,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2352,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2354,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2363,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2365,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_htx.c:2368,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2371,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2373,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2379,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - curpx
    - defpx
    - errmsg
    argTypes:
    - struct proxy*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2346
    functionDepth: 3
    functionLinenumber: 2346
    functionLinenumberEnd: 2381
    functionName: proxy_dup_default_conf_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - LIST_APPEND
    - free
    - memprintf
    - calloc
    - memcpy
    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:2387,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2389,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/http_htx.c:2390,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2391,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2383
    functionDepth: 3
    functionLinenumber: 2383
    functionLinenumberEnd: 2394
    functionName: proxy_release_conf_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - free
    - LIST_DELETE
    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:2413,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2415,1
    - Dst: invalid_char
      Src: /src/haproxy/src/http_htx.c:2420,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2422,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_htx.c:2427,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:2429,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2430,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2436,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2437,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_htx.c:2442,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2443,1
    - Dst: strdup
      Src: /src/haproxy/src/http_htx.c:2444,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_htx.c:2447,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2453,1
    - Dst: atol
      Src: /src/haproxy/src/http_htx.c:2459,1
    - Dst: http_parse_errorfile
      Src: /src/haproxy/src/http_htx.c:2460,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2462,1
    - Dst: ha_warning
      Src: /src/haproxy/src/http_htx.c:2467,1
    - Dst: calloc
      Src: /src/haproxy/src/http_htx.c:2471,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2473,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/http_htx.c:2480,1
    - Dst: http_get_status_idx
      Src: /src/haproxy/src/http_htx.c:2483,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_htx.c:2487,1
    - Dst: free
      Src: /src/haproxy/src/http_htx.c:2493,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2495
      start: 2406
    functionDepth: 7
    functionLinenumber: 2406
    functionLinenumberEnd: 2495
    functionName: cfg_parse_http_errors
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_warning
    - list_for_each_entry
    - strcmp
    - invalid_char
    - LIST_APPEND
    - free
    - http_parse_errorfile
    - LIST_INIT
    - atol
    - ha_alert
    - http_get_status_idx
    - calloc
    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:2524,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: 2527
      start: 2518
    functionDepth: 1
    functionLinenumber: 2518
    functionLinenumberEnd: 2527
    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:2541,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/http_htx.c:2545,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: 2549
      start: 2531
    functionDepth: 3
    functionLinenumber: 2531
    functionLinenumberEnd: 2549
    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:2563,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: 2571
      start: 2553
    functionDepth: 3
    functionLinenumber: 2553
    functionLinenumberEnd: 2571
    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:2585,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: 2593
      start: 2575
    functionDepth: 3
    functionLinenumber: 2575
    functionLinenumberEnd: 2593
    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:2607,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/http_htx.c:2611,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: 2615
      start: 2597
    functionDepth: 3
    functionLinenumber: 2597
    functionLinenumberEnd: 2615
    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:2629,1
    - Dst: htx_free_space
      Src: /src/haproxy/src/http_htx.c:2633,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: 2637
      start: 2619
    functionDepth: 3
    functionLinenumber: 2619
    functionLinenumberEnd: 2637
    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:2651,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/http_htx.c:2655,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: 2659
      start: 2641
    functionDepth: 3
    functionLinenumber: 2641
    functionLinenumberEnd: 2659
    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:2674,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: 2682
      start: 2664
    functionDepth: 3
    functionLinenumber: 2664
    functionLinenumberEnd: 2682
    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:2700,1
    - Dst: htx_get_head_type
      Src: /src/haproxy/src/http_htx.c:2706,1
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/http_htx.c:2708,1
    - Dst: htx_get_first_type
      Src: /src/haproxy/src/http_htx.c:2710,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2713,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2713,1
    - Dst: chunk_initstr
      Src: /src/haproxy/src/http_htx.c:2716,1
    - Dst: htx_blk_type_str
      Src: /src/haproxy/src/http_htx.c:2716,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: 2720
      start: 2688
    functionDepth: 3
    functionLinenumber: 2688
    functionLinenumberEnd: 2720
    functionName: smp_fetch_htx_blk_type
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_head_type
    - smp_prefetch_htx
    - htx_get_blk_type
    - chunk_initstr
    - htx_get_tail_type
    - htx_get_first_type
    - htx_get_blk
    - htx_blk_type_str
    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:2737,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2743,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2745,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2747,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2749,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_htx.c:2751,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: 2755
      start: 2725
    functionDepth: 3
    functionLinenumber: 2725
    functionLinenumberEnd: 2755
    functionName: smp_fetch_htx_blk_size
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_get_tail_blk
    - htx_get_head_blk
    - smp_prefetch_htx
    - htx_get_first_blk
    - htx_get_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:2775,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2781,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2783,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2785,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2787,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2789,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2789,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_htx.c:2795,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_htx.c:2797,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:2798,1
    - Dst: htx_sl_p1
      Src: /src/haproxy/src/http_htx.c:2798,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:2800,1
    - Dst: htx_sl_p2
      Src: /src/haproxy/src/http_htx.c:2800,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/http_htx.c:2802,1
    - Dst: htx_sl_p3
      Src: /src/haproxy/src/http_htx.c:2802,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: 2810
      start: 2761
    functionDepth: 3
    functionLinenumber: 2761
    functionLinenumberEnd: 2810
    functionName: smp_fetch_htx_blk_stline
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_sl_p3
    - htx_get_tail_blk
    - get_trash_chunk
    - htx_get_head_blk
    - smp_prefetch_htx
    - htx_get_blk_type
    - htx_get_blk_ptr
    - htx_sl_p1
    - chunk_istcat
    - htx_get_first_blk
    - htx_get_blk
    - htx_sl_p2
    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:2828,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2834,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2836,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2838,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2840,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2842,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2842,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_htx.c:2848,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:2850,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: 2855
      start: 2816
    functionDepth: 3
    functionLinenumber: 2816
    functionLinenumberEnd: 2855
    functionName: smp_fetch_htx_blk_hdrname
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_tail_blk
    - htx_get_head_blk
    - smp_prefetch_htx
    - htx_get_blk_type
    - htx_get_blk_name
    - chunk_initlen
    - htx_get_first_blk
    - htx_get_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:2873,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2879,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2881,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2883,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2885,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2887,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2887,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:2893,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:2895,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: 2900
      start: 2861
    functionDepth: 3
    functionLinenumber: 2861
    functionLinenumberEnd: 2900
    functionName: smp_fetch_htx_blk_hdrval
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_tail_blk
    - htx_get_blk_value
    - htx_get_head_blk
    - smp_prefetch_htx
    - htx_get_blk_type
    - chunk_initlen
    - htx_get_first_blk
    - htx_get_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:2918,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_htx.c:2924,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/http_htx.c:2926,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_htx.c:2928,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_htx.c:2930,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_htx.c:2932,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_htx.c:2938,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/http_htx.c:2940,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: 2945
      start: 2906
    functionDepth: 3
    functionLinenumber: 2906
    functionLinenumberEnd: 2945
    functionName: smp_fetch_htx_blk_data
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - htx_get_tail_blk
    - htx_get_blk_value
    - htx_get_head_blk
    - smp_prefetch_htx
    - htx_get_blk_type
    - chunk_initlen
    - htx_get_first_blk
    - htx_get_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:2955,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_htx.c:2958,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:2959,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_htx.c:2963,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:2964,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_htx.c:2968,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:2969,1
    - Dst: isdigit
      Src: /src/haproxy/src/http_htx.c:2977,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2978,1
    - Dst: strl2uic
      Src: /src/haproxy/src/http_htx.c:2983,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_htx.c:2985,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_htx.c:2988,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2994
      start: 2952
    functionDepth: 1
    functionLinenumber: 2952
    functionLinenumberEnd: 2994
    functionName: val_blk_arg
    functionSourceFile: /src/haproxy/src/http_htx.c
    functionUses: 0
    functionsReached:
    - strncmp
    - chunk_destroy
    - isdigit
    - memprintf
    - strl2uic
    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
    - list_for_each_entry
    - strm_flt
    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
    - free_acl_cond
    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:
    - istlen
    - get_strm_fcgi_app
    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_for_each_entry_safe
    - free
    - fcgi_release_rule
    - LIST_DELETE
    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:227,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:235,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:241,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:242,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:244,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:248,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/fcgi-app.c:250,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/fcgi-app.c:253,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:255,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/fcgi-app.c:261,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/fcgi-app.c:263,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:268,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:269,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 271
    functionName: fcgi_flt_check
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - lf_expr_init
    - list_for_each_entry_safe
    - parse_logformat_string
    - LIST_APPEND
    - free
    - ha_alert
    - fcgi_app_find_by_name
    - calloc
    - ist
    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:275,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/fcgi-app.c:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 289
    functionName: fcgi_flt_start
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - FLT_CONF
    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:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 299
    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:303,1
    - Dst: FLT_CONF
      Src: /src/haproxy/src/fcgi-app.c:305,1
    - Dst: htxbuf
      Src: /src/haproxy/src/fcgi-app.c:315,1
    - Dst: http_find_header
      Src: /src/haproxy/src/fcgi-app.c:322,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:322,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/fcgi-app.c:323,1
    - Dst: http_find_header
      Src: /src/haproxy/src/fcgi-app.c:327,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:327,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/fcgi-app.c:330,1
    - Dst: strftime
      Src: /src/haproxy/src/fcgi-app.c:331,1
    - Dst: http_add_header
      Src: /src/haproxy/src/fcgi-app.c:333,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:333,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi-app.c:333,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/fcgi-app.c:337,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/fcgi-app.c:345,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/fcgi-app.c:345,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/fcgi-app.c:346,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/fcgi-app.c:351,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/fcgi-app.c:353,1
    - Dst: http_add_header
      Src: /src/haproxy/src/fcgi-app.c:354,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:354,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi-app.c:354,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/fcgi-app.c:365,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/fcgi-app.c:369,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/fcgi-app.c:370,1
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/fcgi-app.c:374,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:376,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:377,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/fcgi-app.c:380,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/fcgi-app.c:388,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/fcgi-app.c:391,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/fcgi-app.c:392,1
    - Dst: ebis_lookup_len
      Src: /src/haproxy/src/fcgi-app.c:396,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:398,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:399,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/fcgi-app.c:402,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/fcgi-app.c:410,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/fcgi-app.c:413,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/fcgi-app.c:415,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:416,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:417,1
    - Dst: b_reset
      Src: /src/haproxy/src/fcgi-app.c:420,1
    - Dst: build_logline
      Src: /src/haproxy/src/fcgi-app.c:421,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:423,1
    - Dst: http_add_header
      Src: /src/haproxy/src/fcgi-app.c:426,1
    - Dst: ist2
      Src: /src/haproxy/src/fcgi-app.c:426,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:428,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/fcgi-app.c:431,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/fcgi-app.c:433,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:434,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:435,1
    - Dst: http_find_header
      Src: /src/haproxy/src/fcgi-app.c:440,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/fcgi-app.c:441,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:443,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/fcgi-app.c:450,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/fcgi-app.c:452,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/fcgi-app.c:454,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/fcgi-app.c:456,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/fcgi-app.c:458,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/fcgi-app.c:460,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:461,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:462,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:464,1
    - Dst: ebpt_first
      Src: /src/haproxy/src/fcgi-app.c:467,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/fcgi-app.c:469,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/fcgi-app.c:470,1
    - Dst: container_of
      Src: /src/haproxy/src/fcgi-app.c:471,1
    - Dst: pool_free
      Src: /src/haproxy/src/fcgi-app.c:473,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/fcgi-app.c:476,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: 478
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 478
    functionName: fcgi_flt_http_headers
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - pool_free
    - free_trash_chunk
    - ultoa_o
    - http_get_stline
    - pool_alloc
    - htx_get_first_blk
    - _HA_ATOMIC_INC
    - alloc_trash_chunk
    - ebpt_first
    - ebis_lookup_len
    - ebpt_next
    - FLT_CONF
    - ebis_insert
    - container_of
    - htx_get_blk_type
    - ist2
    - http_remove_header
    - strm_sess
    - ebpt_delete
    - get_gmtime
    - acl_match_cond
    - htxbuf
    - http_find_header
    - build_logline
    - strftime
    - htx_get_next_blk
    - ist
    - http_add_header
    - htx_get_blksz
    - list_for_each_entry
    - 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:505,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:508,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:510,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:516,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:520,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/fcgi-app.c:526,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:527,1
    - Dst: ha_free
      Src: /src/haproxy/src/fcgi-app.c:528,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:534,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:536,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:540,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:541,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:551,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: 553
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 553
    functionName: parse_fcgi_flt
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - strdup
    - LIST_DELETE
    - strcmp
    - list_for_each_entry_safe
    - ha_free
    - free
    - LIST_INIT
    - memprintf
    - calloc
    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:565,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:571,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/fcgi-app.c:578,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:581,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:583,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:590,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:593,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:596,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:597,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:600,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/fcgi-app.c:606,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:612,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:613,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:615,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: 618
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 618
    functionName: proxy_parse_use_fcgi_app
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - strcmp
    - LIST_APPEND
    - free
    - LIST_INIT
    - memprintf
    - calloc
    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:629,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:633,1
    - Dst: isteq
      Src: /src/haproxy/src/fcgi-app.c:646,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:646,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:650,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:657,1
    - Dst: istlen
      Src: /src/haproxy/src/fcgi-app.c:665,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:666,1
    - Dst: ha_warning
      Src: /src/haproxy/src/fcgi-app.c:673,1
    - Dst: postresolve_logger_list
      Src: /src/haproxy/src/fcgi-app.c:681,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 621
    functionDepth: 1
    functionLinenumber: 621
    functionLinenumberEnd: 686
    functionName: cfg_fcgi_apps_postparser
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - postresolve_logger_list
    - isteq
    - ha_warning
    - istlen
    - ha_alert
    - find_px_fcgi_conf
    - ist
    linkageType: ''
    returnType: int
    signature: int cfg_fcgi_apps_postparser()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:694,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:697,1
    - Dst: fcgi_param_name
      Src: /src/haproxy/src/fcgi-app.c:700,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:700,1
    - Dst: my_strndup
      Src: /src/haproxy/src/fcgi-app.c:701,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/src/fcgi-app.c:704,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:704,1
    - Dst: my_strndup
      Src: /src/haproxy/src/fcgi-app.c:705,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:711,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/fcgi-app.c:716,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:721,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_acl_cond
      Src: /src/haproxy/src/fcgi-app.c:725,1
    - Dst: memprintf
      Src: /src/haproxy/src/fcgi-app.c:726,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: 728
      start: 688
    functionDepth: 3
    functionLinenumber: 688
    functionLinenumberEnd: 728
    functionName: fcgi_app_add_rule
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - strdup
    - fcgi_param_name
    - LIST_APPEND
    - free
    - LIST_INIT
    - memprintf
    - ist2bin_lc
    - free_acl_cond
    - calloc
    - ist
    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:741,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:743,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/fcgi-app.c:748,1
    - Dst: invalid_char
      Src: /src/haproxy/src/fcgi-app.c:751,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:753,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:760,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:761,1
    - Dst: calloc
      Src: /src/haproxy/src/fcgi-app.c:767,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:769,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:777,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:778,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:780,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:782,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/fcgi-app.c:784,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: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:790,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:791,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:792,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:798,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: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:808,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:813,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:815,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:820,1
    - Dst: istfree
      Src: /src/haproxy/src/fcgi-app.c:822,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:823,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:823,1
    - Dst: isttest
      Src: /src/haproxy/src/fcgi-app.c:824,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:825,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:829,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:831,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:836,1
    - Dst: regex_free
      Src: /src/haproxy/src/fcgi-app.c:838,1
    - Dst: regex_comp
      Src: /src/haproxy/src/fcgi-app.c:839,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:841,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:846,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:848,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:853,1
    - Dst: istfree
      Src: /src/haproxy/src/fcgi-app.c:855,1
    - Dst: ist
      Src: /src/haproxy/src/fcgi-app.c:856,1
    - Dst: strdup
      Src: /src/haproxy/src/fcgi-app.c:856,1
    - Dst: isttest
      Src: /src/haproxy/src/fcgi-app.c:857,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:858,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:862,1
    - Dst: invalid_char
      Src: /src/haproxy/src/fcgi-app.c:864,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:866,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/fcgi-app.c:871,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:872,1
    - Dst: parse_acl
      Src: /src/haproxy/src/fcgi-app.c:878,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:879,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:885,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:887,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:902,1
    - Dst: parse_acl_cond
      Src: /src/haproxy/src/fcgi-app.c:903,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:905,1
    - Dst: parse_acl_cond
      Src: /src/haproxy/src/fcgi-app.c:906,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:909,1
    - Dst: fcgi_app_add_rule
      Src: /src/haproxy/src/fcgi-app.c:914,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:915,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:921,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:923,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:936,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:938,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:951,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:953,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:966,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:968,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:972,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:973,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:980,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:981,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:988,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:989,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:996,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:998,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1004,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/fcgi-app.c:1009,1
    - Dst: atol
      Src: /src/haproxy/src/fcgi-app.c:1012,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1014,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1021,1
    - Dst: strcmp
      Src: /src/haproxy/src/fcgi-app.c:1025,1
    - Dst: parse_logger
      Src: /src/haproxy/src/fcgi-app.c:1026,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1027,1
    - Dst: ha_alert
      Src: /src/haproxy/src/fcgi-app.c:1032,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 266
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 731
    functionDepth: 5
    functionLinenumber: 731
    functionLinenumberEnd: 1034
    functionName: cfg_parse_fcgi_app
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - parse_logger
    - alertif_too_many_args_idx
    - regex_comp
    - parse_acl
    - strcmp
    - istfree
    - fcgi_app_add_rule
    - LIST_INIT
    - atol
    - calloc
    - regex_free
    - strdup
    - strcasecmp
    - ha_alert
    - parse_acl_cond
    - ist
    - invalid_char
    - isttest
    - alertif_too_many_args
    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:1053,1
    - Dst: istfree
      Src: /src/haproxy/src/fcgi-app.c:1054,1
    - Dst: istfree
      Src: /src/haproxy/src/fcgi-app.c:1055,1
    - Dst: regex_free
      Src: /src/haproxy/src/fcgi-app.c:1056,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:1057,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:1059,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/fcgi-app.c:1060,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:1061,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/fcgi-app.c:1064,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/fcgi-app.c:1065,1
    - Dst: fcgi_release_rule_conf
      Src: /src/haproxy/src/fcgi-app.c:1066,1
    - Dst: free
      Src: /src/haproxy/src/fcgi-app.c:1070,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1045
    functionDepth: 4
    functionLinenumber: 1045
    functionLinenumberEnd: 1072
    functionName: fcgi_apps_deinit
    functionSourceFile: /src/haproxy/src/fcgi-app.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - istfree
    - list_for_each_entry_safe
    - free
    - fcgi_release_rule_conf
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: MAX
      Src: /src/haproxy/src/queue.c:114,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/queue.c:118,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/queue.c:119,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/queue.c:121,1
    - Dst: MAX
      Src: /src/haproxy/src/queue.c:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 125
    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:136,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/queue.c:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 138
    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:149,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/queue.c:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    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:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 160
    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:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 169
    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:187,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:188,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:189,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/queue.c:192,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:196,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:197,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:203,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:207,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:210,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct pendconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 213
    functionName: pendconn_unlink
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_DEC
    - _HA_ATOMIC_LOAD
    - eb32_delete
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void pendconn_unlink(struct pendconn *p)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eb32_first
      Src: /src/haproxy/src/queue.c:225,1
    - Dst: KEY_CLASS_OFFSET_BOUNDARY
      Src: /src/haproxy/src/queue.c:229,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/queue.c:230,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:233,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:233,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/queue.c:235,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/queue.c:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - pendconns
    argTypes:
    - struct eb_root*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 240
    functionName: pendconn_first
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - eb32_lookup_ge
    - KEY_CLASS_OFFSET_BOUNDARY
    - eb32_first
    - eb32_entry
    - 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:273,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:280,1
    - Dst: pendconn_first
      Src: /src/haproxy/src/queue.c:281,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:283,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:289,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/queue.c:290,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/queue.c:293,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:298,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:313,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:313,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:316,1
    - Dst: KEY_CLASS
      Src: /src/haproxy/src/queue.c:316,1
    - Dst: KEY_OFFSET
      Src: /src/haproxy/src/queue.c:319,1
    - Dst: KEY_OFFSET
      Src: /src/haproxy/src/queue.c:320,1
    - Dst: NOW_OFFSET_BOUNDARY
      Src: /src/haproxy/src/queue.c:322,1
    - Dst: NOW_OFFSET_BOUNDARY
      Src: /src/haproxy/src/queue.c:325,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:336,1
    - Dst: __pendconn_unlink_prx
      Src: /src/haproxy/src/queue.c:339,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:340,1
    - Dst: stream_add_srv_conn
      Src: /src/haproxy/src/queue.c:344,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/queue.c:351,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:352,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:354,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:355,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:356,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:362,1
    - Dst: stream_add_srv_conn
      Src: /src/haproxy/src/queue.c:366,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/queue.c:373,1
    - Dst: __pendconn_unlink_srv
      Src: /src/haproxy/src/queue.c:374,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:376,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:377,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/queue.c:378,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: 380
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 380
    functionName: pendconn_process_next_strm
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_DEC
    - _HA_ATOMIC_LOAD
    - srv_dynamic_maxconn
    - _HA_ATOMIC_INC
    - __pendconn_unlink_srv
    - stream_add_srv_conn
    - task_wakeup
    - __pendconn_unlink_prx
    - KEY_CLASS
    - KEY_OFFSET
    - pendconn_first
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - NOW_OFFSET_BOUNDARY
    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: srv_currently_usable
      Src: /src/haproxy/src/queue.c:398,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/queue.c:425,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:433,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:442,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/queue.c:461,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/queue.c:461,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/queue.c:470,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:475,1
    - Dst: pendconn_process_next_strm
      Src: /src/haproxy/src/queue.c:481,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:487,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/queue.c:492,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:493,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:497,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/queue.c:498,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/queue.c:499,1
    - Dst: struct proxy*::lbprm::server_take_conn
      Src: /src/haproxy/src/queue.c:501,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:503,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/queue.c:514,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:521,1
    - Dst: pendconn_process_next_strm
      Src: /src/haproxy/src/queue.c:522,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:523,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:524,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/queue.c:525,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:529,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 64
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 533
    functionName: process_srv_queue
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 5
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - srv_dynamic_maxconn
    - srv_currently_usable
    - HA_ATOMIC_XCHG
    - HA_ATOMIC_STORE
    - _HA_ATOMIC_SUB
    - __ha_cpu_relax
    - __ha_barrier_atomic_store
    - struct proxy*::lbprm::server_take_conn
    - _HA_ATOMIC_ADD
    - HA_ATOMIC_LOAD
    - _HA_ATOMIC_STORE
    - HA_SPIN_LOCK
    - pendconn_process_next_strm
    - _HA_ATOMIC_INC
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: int
    signature: int process_srv_queue(struct server *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/queue.c:564,1
    - Dst: MAKE_KEY
      Src: /src/haproxy/src/queue.c:569,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/queue.c:572,1
    - Dst: objt_server
      Src: /src/haproxy/src/queue.c:577,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:593,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/queue.c:594,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:595,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/queue.c:596,1
    - Dst: likely
      Src: /src/haproxy/src/queue.c:598,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/queue.c:598,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/queue.c:601,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:603,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/queue.c:604,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:605,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/queue.c:607,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 609
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 609
    functionName: pendconn_add
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 1
    functionsReached:
    - MAKE_KEY
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_ADD_FETCH
    - _HA_ATOMIC_LOAD
    - objt_server
    - __ha_barrier_atomic_store
    - pool_alloc
    - HA_SPIN_INIT
    - likely
    - _HA_ATOMIC_INC
    - HA_SPIN_LOCK
    - eb32_insert
    - HA_SPIN_UNLOCK
    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:635,1
    - Dst: eb32_first
      Src: /src/haproxy/src/queue.c:636,1
    - Dst: eb32_next
      Src: /src/haproxy/src/queue.c:637,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/queue.c:639,1
    - Dst: __pendconn_unlink_srv
      Src: /src/haproxy/src/queue.c:644,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/queue.c:648,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:651,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:654,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:658,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:659,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:670,1
    - Dst: eb32_first
      Src: /src/haproxy/src/queue.c:671,1
    - Dst: eb32_next
      Src: /src/haproxy/src/queue.c:672,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/queue.c:673,1
    - Dst: __pendconn_unlink_prx
      Src: /src/haproxy/src/queue.c:679,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/queue.c:681,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:684,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:686,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:691,1
    - Dst: _HA_ATOMIC_SUB
      Src: /src/haproxy/src/queue.c:692,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 615
    functionDepth: 2
    functionLinenumber: 615
    functionLinenumberEnd: 696
    functionName: pendconn_redistribute
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - __pendconn_unlink_srv
    - task_wakeup
    - eb32_next
    - eb32_first
    - _HA_ATOMIC_SUB
    - eb32_entry
    - __pendconn_unlink_prx
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: int
    signature: int pendconn_redistribute(struct server *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/queue.c:717,1
    - Dst: pendconn_queue_lock
      Src: /src/haproxy/src/queue.c:727,1
    - Dst: pendconn_queue_unlock
      Src: /src/haproxy/src/queue.c:729,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/queue.c:732,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/queue.c:733,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/queue.c:746,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/queue.c:750,1
    - Dst: pool_free
      Src: /src/haproxy/src/queue.c:755,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 757
      start: 707
    functionDepth: 2
    functionLinenumber: 707
    functionLinenumberEnd: 757
    functionName: pendconn_dequeue
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 1
    functionsReached:
    - stream_set_srv_target
    - sockaddr_free
    - pool_free
    - BUG_ON
    - pendconn_queue_lock
    - pendconn_queue_unlock
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:764,1
    - Dst: queue_limit_class
      Src: /src/haproxy/src/queue.c:768,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: 770
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 770
    functionName: action_set_priority_class
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    - queue_limit_class
    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:777,1
    - Dst: queue_limit_offset
      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: 784
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 784
    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:791,1
    - Dst: memprintf
      Src: /src/haproxy/src/queue.c:802,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/queue.c:804,1
    - Dst: free
      Src: /src/haproxy/src/queue.c:805,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: 812
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 812
    functionName: parse_set_priority_class
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - sample_src_names
    - memprintf
    - free
    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:819,1
    - Dst: memprintf
      Src: /src/haproxy/src/queue.c:830,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/queue.c:832,1
    - Dst: free
      Src: /src/haproxy/src/queue.c:833,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: 840
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 840
    functionName: parse_set_priority_offset
    functionSourceFile: /src/haproxy/src/queue.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - sample_src_names
    - memprintf
    - free
    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: 868
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 868
    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: 880
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 880
    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:
    - HA_RWLOCK_WRUNLOCK
    - fas_dequeue_srv
    - fas_queue_srv
    - 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:
    - fas_remove_from_tree
    - fas_dequeue_srv
    - srv_currently_usable
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - update_backend_weight
    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
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - update_backend_weight
    - fas_queue_srv
    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:
    - fas_dequeue_srv
    - srv_currently_usable
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - fas_set_server_status_down
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - fas_set_server_status_up
    - update_backend_weight
    - fas_queue_srv
    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:272,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_fas.c:275,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fas.c:276,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fas.c:283,1
    - Dst: fas_queue_srv
      Src: /src/haproxy/src/lb_fas.c:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 288
    functionName: fas_init_server_tree
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 0
    functionsReached:
    - recount_servers
    - srv_currently_usable
    - srv_lb_commit_status
    - update_backend_weight
    - fas_queue_srv
    linkageType: ''
    returnType: void
    signature: void fas_init_server_tree(struct proxy *p)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_fas.c:302,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_fas.c:304,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_fas.c:310,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_fas.c:324,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_fas.c:325,1
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_fas.c:332,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fas.c:338,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 2
    argNames:
    - p
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 340
    functionName: fas_get_next_server
    functionSourceFile: /src/haproxy/src/lb_fas.c
    functionUses: 1
    functionsReached:
    - srv_dynamic_maxconn
    - eb32_next
    - eb32_first
    - eb32_entry
    - HA_RWLOCK_RDUNLOCK
    - 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:
    - my_timegm
    - parse_http_date
    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_gmtime
    - get_trash_chunk
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_conv.c:266,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_conv.c:267,1
    - Dst: url_decode
      Src: /src/haproxy/src/http_conv.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 284
    functionName: sample_conv_url_dec
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - memcpy
    - url_decode
    - get_trash_chunk
    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:298,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_conv.c:300,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_conv.c:303,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/http_conv.c:308,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: 312
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 312
    functionName: sample_conv_url_enc_check
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - memprintf
    - strcmp
    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:319,1
    - Dst: ha_bit_set
      Src: /src/haproxy/src/http_conv.c:326,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 328
    functionName: sample_conf_url_enc_init
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - ha_bit_set
    - memset
    linkageType: ''
    returnType: void
    signature: void sample_conf_url_enc_init()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_conv.c:337,1
    - Dst: encode_chunk
      Src: /src/haproxy/src/http_conv.c:349,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 356
    functionName: sample_conv_url_enc
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - encode_chunk
    - get_trash_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:371,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_conv.c:387,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_conv.c:397,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 401
    functionName: smp_conv_req_capture
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - strm_fe
    - pool_alloc
    - memcpy
    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:416,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_conv.c:432,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_conv.c:442,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 446
    functionName: smp_conv_res_capture
    functionSourceFile: /src/haproxy/src/http_conv.c
    functionUses: 0
    functionsReached:
    - strm_fe
    - pool_alloc
    - memcpy
    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:
    - list_for_each_entry
    - strcmp
    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:
    - strdup
    - ha_free
    - BUG_ON
    - LIST_APPEND
    - memprintf
    - _sink_find
    - calloc
    linkageType: ''
    returnType: struct sink
    signature: struct sink *sink_find_early(const char *name, const char *from, const
      char *file, int line)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: _sink_find
      Src: /src/haproxy/src/sink.c:126,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:129,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: LIST_APPEND
      Src: /src/haproxy/src/sink.c:156,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:161,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:162,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:163,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 3
    argNames:
    - name
    - desc
    - fmt
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 166
    functionName: __sink_new
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_free
    - LIST_APPEND
    - _sink_find
    - calloc
    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:176,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: 189
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 189
    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:200,1
    - Dst: ring_resize
      Src: /src/haproxy/src/sink.c:206,1
    - Dst: ring_new
      Src: /src/haproxy/src/sink.c:216,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/sink.c:218,1
    - Dst: free
      Src: /src/haproxy/src/sink.c:219,1
    - Dst: free
      Src: /src/haproxy/src/sink.c:220,1
    - Dst: free
      Src: /src/haproxy/src/sink.c:221,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: 230
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 230
    functionName: sink_new_buf
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - ring_resize
    - LIST_DELETE
    - free
    - ring_new
    - __sink_new
    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:255,1
    - Dst: fd_write_frag_line
      Src: /src/haproxy/src/sink.c:261,1
    - Dst: MIN
      Src: /src/haproxy/src/sink.c:261,1
    - Dst: ring_write
      Src: /src/haproxy/src/sink.c:264,1
    - Dst: MIN
      Src: /src/haproxy/src/sink.c:264,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: 267
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 267
    functionName: __sink_write
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - fd_write_frag_line
    - build_log_header
    - ring_write
    - MIN
    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:301,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/sink.c:307,1
    - Dst: unlikely
      Src: /src/haproxy/src/sink.c:312,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/sink.c:321,1
    - Dst: ist2
      Src: /src/haproxy/src/sink.c:325,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sink.c:326,1
    - Dst: __sink_write
      Src: /src/haproxy/src/sink.c:335,1
    - Dst: HA_ATOMIC_SUB
      Src: /src/haproxy/src/sink.c:339,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/sink.c:346,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - sink
    - hdr
    argTypes:
    - struct sink*
    - struct log_header
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 284
    functionDepth: 3
    functionLinenumber: 284
    functionLinenumberEnd: 349
    functionName: sink_announce_dropped
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    - HA_ATOMIC_AND
    - unlikely
    - __sink_write
    - HA_ATOMIC_SUB
    - HA_ATOMIC_LOAD
    - ist2
    - 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:362,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sink.c:363,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/sink.c:364,1
    - Dst: cli_msg
      Src: /src/haproxy/src/sink.c:373,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/sink.c:376,1
    - Dst: sink_find
      Src: /src/haproxy/src/sink.c:379,1
    - Dst: cli_err
      Src: /src/haproxy/src/sink.c:381,1
    - Dst: cli_msg
      Src: /src/haproxy/src/sink.c:384,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:388,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:390,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:394,1
    - Dst: cli_err
      Src: /src/haproxy/src/sink.c:397,1
    - Dst: ring_attach_cli
      Src: /src/haproxy/src/sink.c:399,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: 400
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 400
    functionName: cli_parse_show_events
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strcmp
    - chunk_printf
    - chunk_appendf
    - cli_err
    - sink_find
    - ring_attach_cli
    - cli_msg
    - cli_has_level
    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: 419
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 419
    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:431,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/sink.c:431,1
    - Dst: unlikely
      Src: /src/haproxy/src/sink.c:435,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/sink.c:441,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/sink.c:442,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/sink.c:443,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/sink.c:447,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/sink.c:448,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/sink.c:452,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sink.c:453,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/sink.c:455,1
    - Dst: ring_dispatch_messages
      Src: /src/haproxy/src/sink.c:457,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:474,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/sink.c:481,1
    - Dst: ring_tail
      Src: /src/haproxy/src/sink.c:482,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/sink.c:488,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/sink.c:490,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:492,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/sink.c:496,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/sink.c:504,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 510
    functionName: _sink_forward_io_handler
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - MT_LIST_DELETE
    - applet_get_outbuf
    - applet_need_more_data
    - unlikely
    - MT_LIST_APPEND
    - se_fl_test
    - ring_tail
    - BUG_ON
    - applet_have_no_more_data
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - applet_reset_input
    - applet_set_eos
    - applet_have_more_data
    - ring_dispatch_messages
    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:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 3
    functionLinenumber: 516
    functionLinenumberEnd: 519
    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:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 3
    functionLinenumber: 526
    functionLinenumberEnd: 529
    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:539,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/sink.c:542,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sft
    argTypes:
    - struct sink_forward_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 543
    functionName: __sink_forward_session_deinit
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - task_wakeup
    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:554,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sink.c:556,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/sink.c:558,1
    - Dst: set_host_port
      Src: /src/haproxy/src/sink.c:561,1
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/sink.c:563,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/sink.c:566,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/sink.c:570,1
    - Dst: se_need_remote_conn
      Src: /src/haproxy/src/sink.c:576,1
    - Dst: applet_expect_no_data
      Src: /src/haproxy/src/sink.c:577,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:579,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/sink.c:584,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 588
    functionName: sink_forward_session_init
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - sockaddr_alloc
    - stream_set_srv_target
    - set_host_port
    - sockaddr_free
    - BUG_ON
    - appctx_finalize_startup
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - se_need_remote_conn
    - applet_expect_no_data
    - appctx_strm
    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:597,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sink.c:598,1
    - Dst: __sink_forward_session_deinit
      Src: /src/haproxy/src/sink.c:599,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: sink_forward_session_release
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - __sink_forward_session_deinit
    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:639,1
    - Dst: MIN
      Src: /src/haproxy/src/sink.c:640,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/sink.c:655,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sink.c:656,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sink.c:665,1
    - Dst: appctx_new_on
      Src: /src/haproxy/src/sink.c:669,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/sink.c:673,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - sink
    - sft
    argTypes:
    - struct sink*
    - struct sink_forward_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 680
    functionName: sink_forward_session_create
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - MIN
    - statistical_prng_range
    - BUG_ON
    - HA_ATOMIC_LOAD
    - appctx_new_on
    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:694,1
    - Dst: tick_add
      Src: /src/haproxy/src/sink.c:704,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/sink.c:704,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/sink.c:706,1
    - Dst: sink_forward_session_create
      Src: /src/haproxy/src/sink.c:707,1
    - Dst: tick_first
      Src: /src/haproxy/src/sink.c:711,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:713,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/sink.c:719,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/sink.c:722,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/sink.c:723,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 729
    functionName: process_sink_forward
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - tick_add
    - tick_is_expired
    - sink_forward_session_create
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - tick_first
    - MS_TO_TICKS
    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:737,1
    - Dst: signal_register_task
      Src: /src/haproxy/src/sink.c:743,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/sink.c:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sink
    argTypes:
    - struct sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 746
    functionName: sink_init_forward
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - signal_register_task
    - task_new_anywhere
    - task_wakeup
    linkageType: ''
    returnType: int
    signature: int sink_init_forward(struct sink *sink)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: open
      Src: /src/haproxy/src/sink.c:760,1
    - Dst: read
      Src: /src/haproxy/src/sink.c:765,1
    - Dst: close
      Src: /src/haproxy/src/sink.c:766,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:786,1
    - Dst: unlink
      Src: /src/haproxy/src/sink.c:792,1
    - Dst: rename
      Src: /src/haproxy/src/sink.c:793,1
    - Dst: unlink
      Src: /src/haproxy/src/sink.c:794,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:795,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 797
    functionName: sink_rotate_file_backed_ring
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - rename
    - unlink
    - open
    - read
    - ha_free
    - close
    - memprintf
    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:810,1
    - Dst: ring_allocated_area
      Src: /src/haproxy/src/sink.c:811,1
    - Dst: msync
      Src: /src/haproxy/src/sink.c:813,1
    - Dst: munmap
      Src: /src/haproxy/src/sink.c:814,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:815,1
    - Dst: ring_free
      Src: /src/haproxy/src/sink.c:817,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/sink.c:819,1
    - Dst: task_destroy
      Src: /src/haproxy/src/sink.c:820,1
    - Dst: free_proxy
      Src: /src/haproxy/src/sink.c:821,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:822,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:823,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:826,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:829,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - sink
    argTypes:
    - struct sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 830
    functionName: sink_free
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - ring_free
    - free_proxy
    - ha_free
    - LIST_DEL_INIT
    - munmap
    - ring_allocated_area
    - msync
    - task_destroy
    - ring_allocated_size
    linkageType: ''
    returnType: void
    signature: void sink_free(struct sink *sink)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/sink.c:849,1
    - Dst: sink_setup_proxy
      Src: /src/haproxy/src/sink.c:853,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/sink.c:854,1
    - Dst: sink_new_buf
      Src: /src/haproxy/src/sink.c:857,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:859,1
    - Dst: free_proxy
      Src: /src/haproxy/src/sink.c:869,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: 871
      start: 839
    functionDepth: 5
    functionLinenumber: 839
    functionLinenumberEnd: 871
    functionName: sink_new_ringbuf
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - free_proxy
    - sink_setup_proxy
    - copy_file_name
    - sink_new_buf
    - memprintf
    - alloc_new_proxy
    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:882,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:884,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/sink.c:892,1
    - Dst: ring_attach
      Src: /src/haproxy/src/sink.c:895,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:896,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - sink
    - srv
    argTypes:
    - struct sink*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 877
    functionDepth: 2
    functionLinenumber: 877
    functionLinenumberEnd: 902
    functionName: sink_add_srv
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - ring_attach
    - ha_free
    - HA_SPIN_INIT
    - ha_alert
    - calloc
    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:918,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sink.c:920,1
    - Dst: ring_max_payload
      Src: /src/haproxy/src/sink.c:921,1
    - Dst: ring_max_payload
      Src: /src/haproxy/src/sink.c:922,1
    - Dst: sink_add_srv
      Src: /src/haproxy/src/sink.c:931,1
    - Dst: sink_init_forward
      Src: /src/haproxy/src/sink.c:939,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:940,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/sink.c:945,1
    - Dst: ring_allocated_area
      Src: /src/haproxy/src/sink.c:945,1
    - Dst: ring_allocated_size
      Src: /src/haproxy/src/sink.c:946,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - sink
    argTypes:
    - struct sink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 951
    functionName: sink_finalize
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - ring_max_payload
    - vma_set_name
    - ring_allocated_size
    - ring_allocated_area
    - ha_alert
    - sink_add_srv
    - sink_init_forward
    linkageType: ''
    returnType: int
    signature: int sink_finalize(struct sink *sink)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:965,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:967,1
    - Dst: invalid_char
      Src: /src/haproxy/src/sink.c:972,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:974,1
    - Dst: sink_find
      Src: /src/haproxy/src/sink.c:979,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:980,1
    - Dst: sink_new_ringbuf
      Src: /src/haproxy/src/sink.c:985,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:987,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:988,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:998,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1002,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/sink.c:1007,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1008,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1014,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1020,1
    - Dst: ring_data
      Src: /src/haproxy/src/sink.c:1025,1
    - Dst: ha_warning
      Src: /src/haproxy/src/sink.c:1026,1
    - Dst: ring_data
      Src: /src/haproxy/src/sink.c:1027,1
    - Dst: ring_resize
      Src: /src/haproxy/src/sink.c:1032,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1033,1
    - Dst: ring_size
      Src: /src/haproxy/src/sink.c:1034,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1039,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1049,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1055,1
    - Dst: sink_rotate_file_backed_ring
      Src: /src/haproxy/src/sink.c:1065,1
    - Dst: open
      Src: /src/haproxy/src/sink.c:1067,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1069,1
    - Dst: strerror
      Src: /src/haproxy/src/sink.c:1069,1
    - Dst: ring_size
      Src: /src/haproxy/src/sink.c:1074,1
    - Dst: ftruncate
      Src: /src/haproxy/src/sink.c:1075,1
    - Dst: close
      Src: /src/haproxy/src/sink.c:1076,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1077,1
    - Dst: strerror
      Src: /src/haproxy/src/sink.c:1077,1
    - Dst: mmap
      Src: /src/haproxy/src/sink.c:1082,1
    - Dst: close
      Src: /src/haproxy/src/sink.c:1084,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1085,1
    - Dst: strerror
      Src: /src/haproxy/src/sink.c:1085,1
    - Dst: close
      Src: /src/haproxy/src/sink.c:1091,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:1092,1
    - Dst: ring_free
      Src: /src/haproxy/src/sink.c:1095,1
    - Dst: ring_make_from_area
      Src: /src/haproxy/src/sink.c:1096,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1098,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1100,1
    - Dst: parse_server
      Src: /src/haproxy/src/sink.c:1105,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1111,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1113,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1118,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1119,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1124,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/sink.c:1129,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1131,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1137,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1143,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1154,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1156,1
    - Dst: get_log_format
      Src: /src/haproxy/src/sink.c:1161,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1163,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1168,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1170,1
    - Dst: atol
      Src: /src/haproxy/src/sink.c:1175,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1177,1
    - Dst: strcmp
      Src: /src/haproxy/src/sink.c:1182,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1184,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1190,1
    - Dst: free
      Src: /src/haproxy/src/sink.c:1195,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:1197,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1199,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1205,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 221
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1212
      start: 959
    functionDepth: 6
    functionLinenumber: 959
    functionLinenumberEnd: 1212
    functionName: cfg_parse_ring
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - close
    - sink_find
    - strerror
    - ha_warning
    - strcmp
    - open
    - ha_free
    - atol
    - strdup
    - ring_resize
    - ring_free
    - sink_rotate_file_backed_ring
    - ring_make_from_area
    - ring_size
    - ftruncate
    - ha_alert
    - sink_new_ringbuf
    - ring_data
    - parse_size_err
    - invalid_char
    - parse_time_err
    - free
    - parse_server
    - mmap
    - get_log_format
    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:1235,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sink.c:1236,1
    - Dst: sink_new_ringbuf
      Src: /src/haproxy/src/sink.c:1239,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1241,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:1242,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/sink.c:1258,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/sink.c:1259,1
    - Dst: new_server
      Src: /src/haproxy/src/sink.c:1264,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:1269,1
    - Dst: strdup
      Src: /src/haproxy/src/sink.c:1270,1
    - Dst: get_host_port
      Src: /src/haproxy/src/sink.c:1273,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/sink.c:1274,1
    - Dst: sink_finalize
      Src: /src/haproxy/src/sink.c:1276,1
    - Dst: sink_free
      Src: /src/haproxy/src/sink.c:1282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - logger
    argTypes:
    - struct logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1228
    functionDepth: 6
    functionLinenumber: 1228
    functionLinenumberEnd: 1285
    functionName: sink_new_from_logger
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - get_host_port
    - strdup
    - sink_finalize
    - chunk_printf
    - ha_free
    - sink_free
    - HA_SPIN_INIT
    - sink_new_ringbuf
    - ha_alert
    - MS_TO_TICKS
    - new_server
    - chunk_reset
    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:1310,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sink.c:1311,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1313,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1315,1
    - Dst: sink_new_buf
      Src: /src/haproxy/src/sink.c:1324,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:1325,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1328,1
    - Dst: sink_add_srv
      Src: /src/haproxy/src/sink.c:1338,1
    - Dst: sink_finalize
      Src: /src/haproxy/src/sink.c:1341,1
    - Dst: sink_free
      Src: /src/haproxy/src/sink.c:1347,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - srv
    - from
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 1303
    functionDepth: 5
    functionLinenumber: 1303
    functionLinenumberEnd: 1350
    functionName: sink_new_from_srv
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - sink_finalize
    - chunk_printf
    - ha_free
    - sink_new_buf
    - sink_free
    - memprintf
    - ha_alert
    - sink_add_srv
    - chunk_reset
    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:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1358
    functionDepth: 4
    functionLinenumber: 1358
    functionLinenumberEnd: 1366
    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:1382,1
    - Dst: sink_new_from_logger
      Src: /src/haproxy/src/sink.c:1384,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1386,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:1390,1
    - Dst: sink_find
      Src: /src/haproxy/src/sink.c:1393,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1395,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1400,1
    - Dst: ring_max_payload
      Src: /src/haproxy/src/sink.c:1406,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1407,1
    - Dst: ring_max_payload
      Src: /src/haproxy/src/sink.c:1408,1
    - Dst: memprintf
      Src: /src/haproxy/src/sink.c:1411,1
    - Dst: ha_free
      Src: /src/haproxy/src/sink.c:1415,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - logger
    - msg
    argTypes:
    - struct logger*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1418
      start: 1376
    functionDepth: 7
    functionLinenumber: 1376
    functionLinenumberEnd: 1418
    functionName: sink_resolve_logger_buffer
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - ring_max_payload
    - ha_free
    - BUG_ON
    - sink_new_from_logger
    - sink_find
    - memprintf
    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:1422,1
    - Dst: sink_new_fd
      Src: /src/haproxy/src/sink.c:1423,1
    - Dst: sink_new_buf
      Src: /src/haproxy/src/sink.c:1424,1
    - Dst: sink_new_buf
      Src: /src/haproxy/src/sink.c:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1420
    functionDepth: 5
    functionLinenumber: 1420
    functionLinenumberEnd: 1426
    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:1432,1
    - Dst: ha_alert
      Src: /src/haproxy/src/sink.c:1438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1443
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1443
    functionName: sink_postcheck
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int sink_postcheck()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/sink.c:1449,1
    - Dst: sink_free
      Src: /src/haproxy/src/sink.c:1450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1445
    functionDepth: 3
    functionLinenumber: 1445
    functionLinenumberEnd: 1451
    functionName: sink_deinit
    functionSourceFile: /src/haproxy/src/sink.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - sink_free
    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:
    - swrate_avg
    - MIN
    - MAX
    - struct quic_pacer*::cc::algo::pacing_burst
    - struct quic_pacer*::cc::algo::pacing_inter
    - task_mono_time
    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:
    - _HA_ATOMIC_CAS
    - unlikely
    - __ha_barrier_atomic_store
    - HA_ATOMIC_LOAD
    - fd::fd
    - __ha_barrier_store
    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:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_DWCAS
    - unlikely
    - __ha_barrier_atomic_store
    - HA_ATOMIC_LOAD
    - likely
    - __ha_compiler_barrier
    - __ha_barrier_store
    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:
    - fd_rm_from_fd_list
    - _HA_ATOMIC_DEC
    - _HA_ATOMIC_LOAD
    - clo
    - HA_ATOMIC_STORE
    - __ha_cpu_relax
    - close
    - fd_tgid
    - DISGUISE
    - fd_reset_tgid
    - setsockopt
    - port_range_release_port
    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:
    - thread_release
    - HA_ATOMIC_OR
    - unlikely
    - thread_isolate
    - HA_ATOMIC_STORE
    - BUG_ON
    - HA_ATOMIC_BTR
    - _fd_delete_orphan
    - fd_tgid
    - thread_isolated
    - fd_clr_running
    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:
    - fd_lock_tgid
    - fd_unlock_tgid
    - fd_drop_tgid
    - HA_ATOMIC_STORE
    - fd_stop_both
    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:
    - fd_unlock_tgid
    - fd_stop_recv
    - HA_ATOMIC_AND
    - unlikely
    - fd_drop_tgid
    - HA_ATOMIC_STORE
    - fd_update_tgid
    - BUG_ON
    - my_ffsl
    - fd_lock_tgid_cur
    - fd_grab_tgid
    - HA_ATOMIC_CAS
    - fd_tgid
    - fixup_tgid_takeover
    - 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:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - unlikely
    - statistical_prng_range
    - one_among_mask
    - fd_drop_tgid
    - __ha_cpu_relax
    - fd_take_tgid
    - fd_add_to_fd_list
    - fd_active
    - HA_ATOMIC_BTS
    - wake_thread
    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:
    - _HA_ATOMIC_CAS
    - new_flags::new_flags
    - HA_ATOMIC_OR
    - _HA_ATOMIC_LOAD
    - fd_send_active
    - unlikely
    - old::old
    - fd_drop_tgid
    - fd_recv_active
    - iocb
    - _HA_ATOMIC_AND
    - HA_ATOMIC_BTR
    - fd_grab_tgid
    - _fd_delete_orphan
    - fd_active
    - HA_ATOMIC_BTS
    - fd_clr_running
    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:
    - fd_drop_tgid
    - _HA_ATOMIC_LOAD
    - updt_fd_polling
    - 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:
    - HA_ATOMIC_OR
    - unlikely
    - MIN
    - fd_set_nonblock
    - HA_ATOMIC_BTR
    - writev
    - isatty
    - ha_thread_relax
    - HA_ATOMIC_BTS
    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
    - poll
    - close
    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:
    - TICKS_TO_MS
    - tick_is_expired
    - tick_remain
    - tick_isset
    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:
    - _HA_ATOMIC_AND
    - thread_idle_end
    - clock_leaving_poll
    - thread_harmless_end
    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_set_nonblock
    - fd_insert
    - pipe
    - fd_stop_both
    - fd_want_recv
    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: 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:
    - struct poller*::init
    - vma_set_name
    - ha_aligned_free
    - ha_aligned_zalloc
    - free
    - ha_alert
    - calloc
    - memcpy
    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:
    - test
    - fprintf
    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:
    - term
    - fork
    - HA_ATOMIC_OR
    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:118,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/applet.c:120,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/applet.c:121,1
    - Dst: sc_ic
      Src: /src/haproxy/src/applet.c:122,1
    - Dst: sc_oc
      Src: /src/haproxy/src/applet.c:123,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:128,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:131,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:135,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/applet.c:136,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/applet.c:136,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:139,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:144,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:145,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:145,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:151,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:153,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:156,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/applet.c:156,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:156,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/applet.c:156,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:157,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/applet.c:157,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:157,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/applet.c:157,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:158,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/applet.c:158,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:158,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/applet.c:158,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:159,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/applet.c:159,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:159,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/applet.c:159,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:164,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:165,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:165,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:166,1
    - Dst: tick_isset
      Src: /src/haproxy/src/applet.c:167,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/applet.c:167,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:170,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:173,1
    - Dst: htxbuf
      Src: /src/haproxy/src/applet.c:185,1
    - Dst: htxbuf
      Src: /src/haproxy/src/applet.c:186,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:188,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/applet.c:189,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/applet.c:190,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:193,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:194,1
    - Dst: b_orig
      Src: /src/haproxy/src/applet.c:194,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/applet.c:195,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:195,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:196,1
    - Dst: b_orig
      Src: /src/haproxy/src/applet.c:196,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/applet.c:197,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:197,1
    - Dst: htxbuf
      Src: /src/haproxy/src/applet.c:203,1
    - Dst: htxbuf
      Src: /src/haproxy/src/applet.c:204,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:206,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/applet.c:207,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/applet.c:208,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/applet.c:211,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:212,1
    - Dst: b_orig
      Src: /src/haproxy/src/applet.c:212,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/applet.c:213,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:213,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:214,1
    - Dst: b_orig
      Src: /src/haproxy/src/applet.c:214,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/applet.c:215,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:215,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: 218
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 218
    functionName: applet_trace
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - b_orig
    - htxbuf
    - sc_ep_rcv_ex
    - __sc_strm
    - htx_nbblks
    - b_data
    - chunk_appendf
    - sc_opposite
    - sc_oc
    - sc_ic
    - tick_isset
    - appctx_sc
    - sc_ep_snd_ex
    - b_size
    - sc_state_str
    - TICKS_TO_MS
    - b_head_ofs
    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:232,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:234,1
    - Dst: unlikely
      Src: /src/haproxy/src/applet.c:236,1
    - Dst: send_log
      Src: /src/haproxy/src/applet.c:237,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/applet.c:243,1
    - Dst: unlikely
      Src: /src/haproxy/src/applet.c:244,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:245,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/applet.c:249,1
    - Dst: task_new_on
      Src: /src/haproxy/src/applet.c:254,1
    - Dst: unlikely
      Src: /src/haproxy/src/applet.c:255,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:256,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/applet.c:261,1
    - Dst: unlikely
      Src: /src/haproxy/src/applet.c:262,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:263,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:267,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/applet.c:293,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/applet.c:297,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:299,1
    - Dst: task_destroy
      Src: /src/haproxy/src/applet.c:303,1
    - Dst: pool_free
      Src: /src/haproxy/src/applet.c:305,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 62
    argCount: 3
    argNames:
    - applet
    - sedesc
    - thr
    argTypes:
    - struct applet*
    - struct sedesc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 308
    functionName: appctx_new_on
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 2
    functionsReached:
    - unlikely
    - se_fl_set
    - pool_free
    - task_new_on
    - sedesc_new
    - BUG_ON
    - pool_zalloc
    - send_log
    - TRACE_ENTER
    - TRACE_ERROR
    - LIST_INIT
    - task_destroy
    - MT_LIST_INIT
    - _HA_ATOMIC_INC
    - TRACE_LEAVE
    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:327,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:327,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:329,1
    - Dst: session_new
      Src: /src/haproxy/src/applet.c:331,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:333,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/applet.c:336,1
    - Dst: session_free
      Src: /src/haproxy/src/applet.c:337,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/applet.c:338,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:343,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: 345
      start: 320
    functionDepth: 7
    functionLinenumber: 320
    functionLinenumberEnd: 345
    functionName: appctx_finalize_startup
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 3
    functionsReached:
    - se_fl_test
    - BUG_ON
    - TRACE_ENTER
    - TRACE_ERROR
    - session_free
    - session_new
    - sc_new_from_endp
    - TRACE_LEAVE
    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:355,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:355,1
    - Dst: stream_free
      Src: /src/haproxy/src/applet.c:356,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/applet.c:356,1
    - Dst: __appctx_free
      Src: /src/haproxy/src/applet.c:359,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: appctx_free_on_early_error
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - se_fl_test
    - stream_free
    - __appctx_free
    - appctx_sc
    - appctx_strm
    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:368,1
    - Dst: __appctx_free
      Src: /src/haproxy/src/applet.c:369,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:375,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/applet.c:376,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 379
    functionName: appctx_free
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 3
    functionsReached:
    - TRACE_DEVEL
    - task_wakeup
    - __appctx_free
    - applet_fl_set
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void appctx_free(struct appctx *appctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - size
    argTypes:
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 398
    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:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 407
    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:414,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:417,1
    - Dst: struct appctx*::applet::release
      Src: /src/haproxy/src/applet.c:420,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:421,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/applet.c:423,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 426
    functionName: appctx_shut
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - struct appctx*::applet::release
    - TRACE_ENTER
    - applet_fl_set
    - TRACE_LEAVE
    - b_dequeue
    linkageType: ''
    returnType: void
    signature: void appctx_shut(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:435,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:435,1
    - Dst: b_free
      Src: /src/haproxy/src/applet.c:437,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:439,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:439,1
    - Dst: b_free
      Src: /src/haproxy/src/applet.c:441,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/applet.c:448,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 449
    functionName: appctx_release_buffers
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - b_size
    - offer_buffers
    - b_data
    - 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:460,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:463,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/applet.c:464,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:465,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:466,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:470,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/applet.c:471,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:472,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:473,1
    - Dst: sc_have_buff
      Src: /src/haproxy/src/applet.c:479,1
    - Dst: c_size
      Src: /src/haproxy/src/applet.c:487,1
    - Dst: sc_ic
      Src: /src/haproxy/src/applet.c:487,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/applet.c:487,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/applet.c:487,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/applet.c:491,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 493
    functionName: appctx_buf_available
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - applet_fl_clr
    - sc_opposite
    - sc_have_buff
    - TRACE_STATE
    - c_size
    - sc_ic
    - task_wakeup
    - appctx_sc
    - applet_fl_set
    - sc_ep_have_ff_data
    linkageType: ''
    returnType: int
    signature: int appctx_buf_available(void *arg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_from_buf
      Src: /src/haproxy/src/applet.c:497,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:501,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:502,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/applet.c:507,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:508,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/applet.c:508,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:509,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:510,1
    - Dst: b_xfer
      Src: /src/haproxy/src/applet.c:511,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:511,1
    - Dst: htx_xfer_blks
      Src: /src/haproxy/src/applet.c:515,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:517,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:520,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:521,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 4
    argNames:
    - appctx
    - buf
    - count
    - flags
    argTypes:
    - struct appctx*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 526
    functionName: appctx_htx_rcv_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - b_data
    - htx_xfer_blks
    - htx_from_buf
    - htx_used_space
    - htx_to_buf
    - htx_is_empty
    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:530,1
    - Dst: MIN
      Src: /src/haproxy/src/applet.c:530,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:530,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: 531
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 531
    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:535,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:538,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:540,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/applet.c:546,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:547,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:552,1
    - Dst: struct appctx*::applet::rcv_buf
      Src: /src/haproxy/src/applet.c:554,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/applet.c:556,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:558,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:559,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:560,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:564,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:565,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/applet.c:568,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:569,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/applet.c:573,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:574,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:575,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:576,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:578,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:579,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:580,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:582,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:583,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:584,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:587,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:588,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:588,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:589,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:590,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:590,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:594,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 596
    functionName: appctx_rcv_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - applet_fl_clr
    - struct appctx*::applet::rcv_buf
    - appctx_get_buf
    - se_fl_set
    - b_data
    - se_report_term_evt
    - TRACE_STATE
    - TRACE_ENTER
    - __sc_appctx
    - applet_fl_set
    - TRACE_LEAVE
    - se_fl_clr
    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:600,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/applet.c:601,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:605,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:606,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:607,1
    - Dst: b_xfer
      Src: /src/haproxy/src/applet.c:608,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:608,1
    - Dst: htx_xfer_blks
      Src: /src/haproxy/src/applet.c:612,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/applet.c:613,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:617,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/applet.c:618,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:622,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:623,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: 626
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 626
    functionName: appctx_htx_snd_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - b_data
    - TRACE_STATE
    - htx_xfer_blks
    - htx_from_buf
    - applet_fl_set
    - htx_to_buf
    - htx_is_empty
    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:632,1
    - Dst: MIN
      Src: /src/haproxy/src/applet.c:632,1
    - Dst: b_room
      Src: /src/haproxy/src/applet.c:632,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:634,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:635,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: 639
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 639
    functionName: appctx_raw_snd_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - MIN
    - b_xfer
    - TRACE_STATE
    - b_room
    - 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:643,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:646,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:648,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:651,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/applet.c:657,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:658,1
    - Dst: struct appctx*::applet::snd_buf
      Src: /src/haproxy/src/applet.c:662,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:664,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:665,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:668,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:669,1
    - Dst: applet_fl_get
      Src: /src/haproxy/src/applet.c:669,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/applet.c:670,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:671,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:673,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: 675
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 675
    functionName: appctx_snd_buf
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - appctx_get_buf
    - TRACE_STATE
    - BUG_ON
    - TRACE_ENTER
    - applet_fl_get
    - applet_set_error
    - __sc_appctx
    - struct appctx*::applet::snd_buf
    - TRACE_LEAVE
    - 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:679,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:684,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/applet.c:686,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:689,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:690,1
    - Dst: se_opposite
      Src: /src/haproxy/src/applet.c:694,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:696,1
    - Dst: se_nego_ff
      Src: /src/haproxy/src/applet.c:705,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/applet.c:707,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/applet.c:708,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:709,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/applet.c:713,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:714,1
    - Dst: b_add
      Src: /src/haproxy/src/applet.c:718,1
    - Dst: struct appctx*::applet::fastfwd
      Src: /src/haproxy/src/applet.c:719,1
    - Dst: b_sub
      Src: /src/haproxy/src/applet.c:720,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:723,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:726,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:729,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:730,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:734,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:736,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:737,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:738,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:740,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:741,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:742,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:747,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:748,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:748,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:749,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/applet.c:750,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:750,1
    - Dst: se_done_ff
      Src: /src/haproxy/src/applet.c:752,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/applet.c:755,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:756,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:760,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: 762
      start: 677
    functionDepth: 1
    functionLinenumber: 677
    functionLinenumberEnd: 762
    functionName: appctx_fastfwd
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_sub
    - __sc_appctx
    - se_fl_clr
    - TRACE_LEAVE
    - sc_ep_clr
    - b_data
    - se_report_term_evt
    - applet_fl_clr
    - se_fl_set
    - se_fl_test
    - sc_ep_set
    - applet_fl_set
    - struct appctx*::applet::fastfwd
    - se_nego_ff
    - applet_fl_test
    - TRACE_STATE
    - se_opposite
    - TRACE_ENTER
    - se_done_ff
    - b_add
    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:776,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:776,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/applet.c:781,1
    - Dst: vp_peek_ofs
      Src: /src/haproxy/src/applet.c:782,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/applet.c:785,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: 788
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 788
    functionName: applet_append_line
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - unlikely
    - vp_peek_ofs
    - applet_putchk
    - b_size
    - chunk_reset
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:800,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:802,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:803,1
    - Dst: __appctx_free
      Src: /src/haproxy/src/applet.c:804,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:808,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:812,1
    - Dst: appctx_init
      Src: /src/haproxy/src/applet.c:814,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:815,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/applet.c:816,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:819,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:819,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/applet.c:819,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:820,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:823,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/applet.c:824,1
    - Dst: sc_ic
      Src: /src/haproxy/src/applet.c:826,1
    - Dst: sc_oc
      Src: /src/haproxy/src/applet.c:827,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/applet.c:833,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/applet.c:834,1
    - Dst: sc_alloc_ibuf
      Src: /src/haproxy/src/applet.c:842,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/applet.c:843,1
    - Dst: channel_check_idletimer
      Src: /src/haproxy/src/applet.c:845,1
    - Dst: sc_ep_fwd_kip
      Src: /src/haproxy/src/applet.c:847,1
    - Dst: co_data
      Src: /src/haproxy/src/applet.c:850,1
    - Dst: struct appctx*::applet::fct
      Src: /src/haproxy/src/applet.c:851,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/applet.c:853,1
    - Dst: co_data
      Src: /src/haproxy/src/applet.c:858,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/applet.c:860,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/applet.c:861,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/applet.c:866,1
    - Dst: channel_check_xfer
      Src: /src/haproxy/src/applet.c:871,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/applet.c:872,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/applet.c:876,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/applet.c:877,1
    - Dst: co_data
      Src: /src/haproxy/src/applet.c:880,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/src/applet.c:882,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/applet.c:885,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:888,1
    - Dst: sc_ib
      Src: /src/haproxy/src/applet.c:888,1
    - Dst: b_size
      Src: /src/haproxy/src/applet.c:889,1
    - Dst: sc_ib
      Src: /src/haproxy/src/applet.c:889,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:889,1
    - Dst: sc_ib
      Src: /src/haproxy/src/applet.c:889,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:890,1
    - Dst: sc_ob
      Src: /src/haproxy/src/applet.c:890,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/applet.c:890,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:891,1
    - Dst: sc_ob
      Src: /src/haproxy/src/applet.c:891,1
    - Dst: sc_oc
      Src: /src/haproxy/src/applet.c:892,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/applet.c:893,1
    - Dst: stream_dump_and_crash
      Src: /src/haproxy/src/applet.c:895,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/applet.c:895,1
    - Dst: struct stconn*::app_ops::wake
      Src: /src/haproxy/src/applet.c:898,1
    - Dst: channel_release_buffer
      Src: /src/haproxy/src/applet.c:899,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:900,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 62
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 791
    functionDepth: 2
    functionLinenumber: 791
    functionLinenumberEnd: 902
    functionName: task_run_applet
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - co_data
    - channel_check_idletimer
    - applet_have_no_more_data
    - sc_ib
    - update_freq_ctr
    - struct appctx*::applet::fct
    - TRACE_LEAVE
    - b_data
    - sc_opposite
    - sc_have_room
    - sc_is_send_allowed
    - appctx_sc
    - sc_waiting_room
    - sc_ep_report_blocked_send
    - appctx_free_on_early_error
    - channel_check_xfer
    - applet_need_more_data
    - se_fl_test
    - __appctx_free
    - BUG_ON
    - sc_ic
    - sc_ep_set
    - struct stconn*::app_ops::wake
    - channel_release_buffer
    - sc_ep_report_read_activity
    - sc_ob
    - b_size
    - applet_have_more_data
    - sc_alloc_ibuf
    - appctx_strm
    - applet_fl_test
    - channel_recv_max
    - stream_dump_and_crash
    - read_freq_ctr
    - sc_oc
    - appctx_init
    - TRACE_ENTER
    - sc_ep_fwd_kip
    - TRACE_POINT
    - sc_ep_report_send_activity
    linkageType: ''
    returnType: struct task
    signature: struct task *task_run_applet(struct task *t, void *context, unsigned
      int state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/applet.c:913,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:915,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:916,1
    - Dst: __appctx_free
      Src: /src/haproxy/src/applet.c:917,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:921,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:925,1
    - Dst: appctx_init
      Src: /src/haproxy/src/applet.c:927,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:928,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/applet.c:929,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/applet.c:932,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:932,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/applet.c:932,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/applet.c:933,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/applet.c:936,1
    - Dst: sc_applet_sync_send
      Src: /src/haproxy/src/applet.c:938,1
    - Dst: sc_oc
      Src: /src/haproxy/src/applet.c:939,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/applet.c:945,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/applet.c:946,1
    - Dst: struct appctx*::applet::fct
      Src: /src/haproxy/src/applet.c:948,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/applet.c:950,1
    - Dst: b_data
      Src: /src/haproxy/src/applet.c:952,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:952,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/applet.c:953,1
    - Dst: sc_applet_sync_recv
      Src: /src/haproxy/src/applet.c:955,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:957,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:961,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:961,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:962,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:963,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:965,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:965,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:966,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:967,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/applet.c:969,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/applet.c:969,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/applet.c:970,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/applet.c:971,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/applet.c:976,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/applet.c:977,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/applet.c:981,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/applet.c:981,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/applet.c:982,1
    - Dst: stream_dump_and_crash
      Src: /src/haproxy/src/applet.c:984,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/applet.c:984,1
    - Dst: struct stconn*::app_ops::wake
      Src: /src/haproxy/src/applet.c:987,1
    - Dst: appctx_release_buffers
      Src: /src/haproxy/src/applet.c:988,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/applet.c:989,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 53
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 991
    functionName: task_process_applet
    functionSourceFile: /src/haproxy/src/applet.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - applet_have_no_more_data
    - update_freq_ctr
    - struct appctx*::applet::fct
    - TRACE_LEAVE
    - sc_applet_sync_recv
    - b_data
    - sc_is_send_allowed
    - appctx_sc
    - sc_waiting_room
    - appctx_free_on_early_error
    - applet_need_more_data
    - sc_is_recv_allowed
    - se_fl_set
    - se_fl_test
    - appctx_release_buffers
    - __appctx_free
    - BUG_ON
    - struct stconn*::app_ops::wake
    - sc_ep_set
    - sc_applet_sync_send
    - applet_have_more_data
    - appctx_strm
    - applet_fl_test
    - stream_dump_and_crash
    - read_freq_ctr
    - sc_oc
    - TRACE_STATE
    - appctx_init
    - TRACE_ENTER
    - TRACE_POINT
    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:998,1
    - Dst: strcmp
      Src: /src/haproxy/src/applet.c:1001,1
    - Dst: strcmp
      Src: /src/haproxy/src/applet.c:1003,1
    - Dst: memprintf
      Src: /src/haproxy/src/applet.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_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
    - eb_untag
    - container_of
    - struct eb32sc_node::struct eb32sc_node
    - branches::branches
    - eb_dotag
    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:
    - flsnz
    - eb_gettag
    - eb32sc_insert_dup
    - unlikely
    - eb_untag
    - container_of
    - key::key
    - node::node
    - eb_dotag
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - eb32sc_next_with_parent
    - eb_dotag
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - eb32sc_walk_down_left
    - container_of
    - eb32sc_next_with_parent
    - eb_dotag
    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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_untag
    - container_of
    - eb_dotag
    linkageType: ''
    returnType: void
    signature: void eb32sc_delete(struct eb32sc_node *eb32)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      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: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: http_req_keywords_register
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void http_req_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      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: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: http_res_keywords_register
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void http_res_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      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: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: http_after_res_keywords_register
    functionSourceFile: /src/haproxy/src/http_rules.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    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:
    - action_build_list
    - ha_warning
    - action_suggest
    - strcmp
    - struct action_kw*::parse
    - build_acl_cond
    - free
    - free_act_rule
    - ha_alert
    - proxy_type_str
    - new_act_rule
    - action_http_req_custom
    - mark_tainted
    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:
    - ha_warning
    - action_suggest
    - strcmp
    - struct action_kw*::parse
    - action_http_res_custom
    - build_acl_cond
    - free
    - free_act_rule
    - ha_alert
    - proxy_type_str
    - new_act_rule
    - action_build_list
    - mark_tainted
    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:
    - action_http_after_res_custom
    - ha_warning
    - action_suggest
    - strcmp
    - struct action_kw*::parse
    - build_acl_cond
    - free
    - free_act_rule
    - ha_alert
    - proxy_type_str
    - new_act_rule
    - action_build_list
    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
    - free
    - lf_expr_deinit
    - free_acl_cond
    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:
    - istcpy
    - istalloc
    - free_acl_cond
    - lf_expr_init
    - strcmp
    - ist2
    - strlen
    - LIST_INIT
    - chunk_strcat
    - atol
    - calloc
    - strdup
    - parse_logformat_string
    - memprintf
    - chunk_memcpy
    - http_free_redirect_rule
    - istcat
    - build_acl_cond
    - 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:
    - istlen
    - htx_add_data_atonce
    - htx_add_header
    - htx_add_stline
    - htx_add_endof
    - isteqi
    - http_update_host
    - htx_from_buf
    - ultoa
    - isttest
    - b_alloc
    - htx_to_buf
    - ist
    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: appctx_wakeup
      Src: /src/haproxy/src/http_client.c:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - hc
    - dst
    argTypes:
    - struct httpclient*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 190
    functionName: httpclient_res_xfer
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 2
    functionsReached:
    - appctx_wakeup
    - MIN
    - b_data
    - b_force_xfer
    - b_room
    - b_free
    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:209,1
    - Dst: b_alloc
      Src: /src/haproxy/src/http_client.c:213,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_client.c:216,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/http_client.c:219,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/http_client.c:222,1
    - Dst: istlen
      Src: /src/haproxy/src/http_client.c:225,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:232,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_client.c:233,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:238,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - hc
    - src
    - end
    argTypes:
    - struct httpclient*
    - struct ist
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 243
    functionName: httpclient_req_xfer
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 1
    functionsReached:
    - appctx_wakeup
    - istlen
    - htx_add_data
    - htx_from_buf
    - htx_add_endof
    - b_alloc
    - htx_to_buf
    - htx_is_empty
    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: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    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:261,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/http_client.c:263,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:267,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:268,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/http_client.c:272,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - hc
    - dst
    argTypes:
    - struct httpclient*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 278
    functionName: httpclient_set_dst
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 1
    functionsReached:
    - sockaddr_alloc
    - sockaddr_free
    - free
    - ha_alert
    - str2sa_range
    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:292,1
    - Dst: http_parse_scheme
      Src: /src/haproxy/src/http_client.c:293,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:294,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_client.c:298,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:298,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_client.c:301,1
    - Dst: ist
      Src: /src/haproxy/src/http_client.c:301,1
    - Dst: http_parse_authority
      Src: /src/haproxy/src/http_client.c:306,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:307,1
    - Dst: istend
      Src: /src/haproxy/src/http_client.c:310,1
    - Dst: istptr
      Src: /src/haproxy/src/http_client.c:313,1
    - Dst: isdigit
      Src: /src/haproxy/src/http_client.c:313,1
    - Dst: ist2
      Src: /src/haproxy/src/http_client.c:317,1
    - Dst: istptr
      Src: /src/haproxy/src/http_client.c:317,1
    - Dst: istptr
      Src: /src/haproxy/src/http_client.c:317,1
    - Dst: istnext
      Src: /src/haproxy/src/http_client.c:318,1
    - Dst: ist2
      Src: /src/haproxy/src/http_client.c:318,1
    - Dst: ist2str
      Src: /src/haproxy/src/http_client.c:319,1
    - Dst: atoi
      Src: /src/haproxy/src/http_client.c:320,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: 333
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 333
    functionName: httpclient_spliturl
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - http_parse_scheme
    - http_parse_authority
    - istnext
    - istptr
    - atoi
    - http_uri_parser_init
    - isdigit
    - ist2
    - isteqi
    - istend
    - isttest
    - ist2str
    - ist
    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:348,1
    - Dst: httpclient_ended
      Src: /src/haproxy/src/http_client.c:348,1
    - Dst: appctx_new_here
      Src: /src/haproxy/src/http_client.c:353,1
    - Dst: appctx_init
      Src: /src/haproxy/src/http_client.c:359,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:360,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/http_client.c:367,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 371
    functionName: httpclient_start
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 3
    functionsReached:
    - httpclient_ended
    - appctx_init
    - ha_alert
    - appctx_new_here
    - appctx_free_on_early_error
    - httpclient_started
    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:385,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/http_client.c:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 394
    functionName: httpclient_stop_and_destroy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 5
    functionsReached:
    - appctx_wakeup
    - httpclient_destroy
    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:406,1
    - Dst: httpclient_started
      Src: /src/haproxy/src/http_client.c:406,1
    - Dst: httpclient_ended
      Src: /src/haproxy/src/http_client.c:406,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:409,1
    - Dst: b_free
      Src: /src/haproxy/src/http_client.c:410,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:414,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:415,1
    - Dst: isttest
      Src: /src/haproxy/src/http_client.c:417,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:418,1
    - Dst: istfree
      Src: /src/haproxy/src/http_client.c:419,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_client.c:422,1
    - Dst: b_free
      Src: /src/haproxy/src/http_client.c:425,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/http_client.c:426,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:428,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 431
    functionName: httpclient_destroy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 1
    functionsReached:
    - sockaddr_free
    - httpclient_ended
    - istfree
    - ha_free
    - BUG_ON
    - free
    - isttest
    - b_free
    - httpclient_started
    linkageType: ''
    returnType: void
    signature: void httpclient_destroy(struct httpclient *hc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/http_client.c:444,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:451,1
    - Dst: httpclient_set_proxy
      Src: /src/haproxy/src/http_client.c:453,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/http_client.c:458,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: 460
      start: 437
    functionDepth: 4
    functionLinenumber: 437
    functionLinenumberEnd: 460
    functionName: httpclient_new
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 2
    functionsReached:
    - istdup
    - httpclient_set_proxy
    - calloc
    - httpclient_destroy
    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:474,1
    - Dst: httpclient_set_proxy
      Src: /src/haproxy/src/http_client.c:478,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: 481
      start: 467
    functionDepth: 5
    functionLinenumber: 467
    functionLinenumberEnd: 481
    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:496,1
    - Dst: xprt_get
      Src: /src/haproxy/src/http_client.c:499,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - hc
    - px
    argTypes:
    - struct httpclient*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 506
    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: 53
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/http_client.c:518,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/http_client.c:518,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/http_client.c:519,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/http_client.c:535,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:537,1
    - Dst: b_xfer
      Src: /src/haproxy/src/http_client.c:544,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:544,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:546,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:550,1
    - Dst: b_free
      Src: /src/haproxy/src/http_client.c:551,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:553,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:554,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:555,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/http_client.c:561,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:565,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/http_client.c:570,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:572,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/http_client.c:580,1
    - Dst: b_reset
      Src: /src/haproxy/src/http_client.c:585,1
    - Dst: struct httpclient*::ops::req_payload
      Src: /src/haproxy/src/http_client.c:592,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:594,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:595,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_client.c:598,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:599,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:603,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:604,1
    - Dst: b_xfer
      Src: /src/haproxy/src/http_client.c:605,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:605,1
    - Dst: htx_xfer_blks
      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:611,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:616,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:619,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:620,1
    - Dst: b_data
      Src: /src/haproxy/src/http_client.c:623,1
    - Dst: b_free
      Src: /src/haproxy/src/http_client.c:624,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:627,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/http_client.c:632,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/http_client.c:636,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/http_client.c:640,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/http_client.c:641,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/http_client.c:642,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:643,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:655,1
    - Dst: htx_get_head_type
      Src: /src/haproxy/src/http_client.c:656,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/http_client.c:658,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_client.c:658,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/http_client.c:659,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_client.c:668,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:670,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:672,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:681,1
    - Dst: htx_sl_res_vsn
      Src: /src/haproxy/src/http_client.c:681,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:682,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/http_client.c:682,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:683,1
    - Dst: struct httpclient*::ops::res_stline
      Src: /src/haproxy/src/http_client.c:687,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:691,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:696,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:697,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/http_client.c:701,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/http_client.c:702,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/http_client.c:703,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:704,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:708,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_client.c:709,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:709,1
    - Dst: b_alloc
      Src: /src/haproxy/src/http_client.c:716,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/http_client.c:717,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:720,1
    - Dst: htx_xfer_blks
      Src: /src/haproxy/src/http_client.c:723,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/http_client.c:723,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:725,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:729,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:734,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_client.c:745,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_client.c:747,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:750,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_client.c:750,1
    - Dst: istdup
      Src: /src/haproxy/src/http_client.c:751,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_client.c:751,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:758,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:761,1
    - Dst: calloc
      Src: /src/haproxy/src/http_client.c:766,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_client.c:769,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:770,1
    - Dst: struct httpclient*::ops::res_headers
      Src: /src/haproxy/src/http_client.c:775,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:779,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:785,1
    - Dst: applet_will_consume
      Src: /src/haproxy/src/http_client.c:789,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/http_client.c:790,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/http_client.c:791,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:792,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:800,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:801,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:802,1
    - Dst: b_alloc
      Src: /src/haproxy/src/http_client.c:806,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/http_client.c:807,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_client.c:816,1
    - Dst: htx_xfer_blks
      Src: /src/haproxy/src/http_client.c:818,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/http_client.c:818,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/http_client.c:820,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:822,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:824,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:827,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/http_client.c:831,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_client.c:833,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_client.c:838,1
    - Dst: b_room
      Src: /src/haproxy/src/http_client.c:839,1
    - Dst: MIN
      Src: /src/haproxy/src/http_client.c:842,1
    - Dst: __b_putblk
      Src: /src/haproxy/src/http_client.c:843,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:846,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/http_client.c:848,1
    - Dst: applet_wont_consume
      Src: /src/haproxy/src/http_client.c:850,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_client.c:855,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/http_client.c:860,1
    - Dst: struct httpclient*::ops::res_payload
      Src: /src/haproxy/src/http_client.c:864,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_client.c:867,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:869,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_client.c:873,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:874,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/http_client.c:878,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/http_client.c:887,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/http_client.c:888,1
    CyclomaticComplexity: 92
    EdgeCount: 92
    ICount: 271
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 890
    functionName: httpclient_applet_io_handler
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - applet_will_consume
    - struct httpclient*::ops::req_payload
    - unlikely
    - applet_set_eoi
    - htx_get_blk_value
    - applet_wont_consume
    - htx_get_blk_name
    - htx_get_blk_ptr
    - applet_input_data
    - memcpy
    - htx_from_buf
    - struct httpclient*::ops::res_payload
    - b_free
    - applet_get_inbuf
    - __b_putblk
    - MIN
    - b_xfer
    - b_data
    - htx_get_head_blk
    - htx_cut_data_blk
    - htx_get_blk_type
    - DISGUISE
    - struct httpclient*::ops::res_stline
    - calloc
    - htxbuf
    - applet_fl_clr
    - applet_get_outbuf
    - applet_need_more_data
    - BUG_ON
    - htx_remove_blk
    - b_room
    - applet_reset_input
    - istdup
    - applet_set_eos
    - applet_have_more_data
    - htx_sl_res_vsn
    - htx_is_empty
    - applet_fl_test
    - applet_set_error
    - b_reset
    - htx_get_head_type
    - htx_xfer_blks
    - htx_sl_res_reason
    - struct httpclient*::ops::res_headers
    - htx_used_space
    - b_alloc
    - htx_to_buf
    linkageType: ''
    returnType: void
    signature: void httpclient_applet_io_handler(struct appctx *appctx)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_spliturl
      Src: /src/haproxy/src/http_client.c:907,1
    - Dst: ist2str
      Src: /src/haproxy/src/http_client.c:915,1
    - Dst: str2ip2
      Src: /src/haproxy/src/http_client.c:916,1
    - Dst: str2ip2
      Src: /src/haproxy/src/http_client.c:919,1
    - Dst: sock_inet_set_port
      Src: /src/haproxy/src/http_client.c:921,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/http_client.c:924,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:937,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:941,1
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/http_client.c:947,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:948,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/http_client.c:952,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_client.c:954,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_client.c:955,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/http_client.c:974,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/http_client.c:975,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/http_client.c:987,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/http_client.c:992,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 892
    functionDepth: 8
    functionLinenumber: 892
    functionLinenumberEnd: 995
    functionName: httpclient_applet_init
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - str2ip2
    - appctx_wakeup
    - sockaddr_alloc
    - applet_need_more_data
    - applet_set_eoi
    - sockaddr_free
    - __objt_server
    - objt_server
    - appctx_finalize_startup
    - appctx_strm
    - ha_alert
    - sock_inet_set_port
    - httpclient_spliturl
    - ist2str
    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:1008,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/http_client.c:1012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 997
    functionDepth: 4
    functionLinenumber: 997
    functionLinenumberEnd: 1020
    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:1054,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1056,1
    - Dst: resolvers_create_default
      Src: /src/haproxy/src/http_client.c:1060,1
    - Dst: find_resolvers_by_id
      Src: /src/haproxy/src/http_client.c:1063,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1064,1
    - Dst: parse_http_req_cond
      Src: /src/haproxy/src/http_client.c:1070,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1072,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1073,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_client.c:1076,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1079,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1035
    functionDepth: 7
    functionLinenumber: 1035
    functionLinenumberEnd: 1081
    functionName: httpclient_resolve_init
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - strdup
    - resolvers_create_default
    - LIST_APPEND
    - free
    - memprintf
    - ha_alert
    - find_resolvers_by_id
    - parse_http_req_cond
    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:1105,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1107,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1123,1
    - Dst: new_server
      Src: /src/haproxy/src/http_client.c:1127,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1129,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/http_client.c:1134,1
    - Dst: xprt_get
      Src: /src/haproxy/src/http_client.c:1137,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1139,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1141,1
    - Dst: new_server
      Src: /src/haproxy/src/http_client.c:1148,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1150,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/http_client.c:1154,1
    - Dst: xprt_get
      Src: /src/haproxy/src/http_client.c:1157,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1160,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1162,1
    - Dst: ssl_sock_parse_alpn
      Src: /src/haproxy/src/http_client.c:1168,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1177,1
    - Dst: __ssl_store_load_locations_file
      Src: /src/haproxy/src/http_client.c:1178,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1183,1
    - Dst: ha_free
      Src: /src/haproxy/src/http_client.c:1187,1
    - Dst: srv_detach
      Src: /src/haproxy/src/http_client.c:1188,1
    - Dst: srv_drop
      Src: /src/haproxy/src/http_client.c:1189,1
    - Dst: httpclient_resolve_init
      Src: /src/haproxy/src/http_client.c:1201,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1202,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1209,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1210,1
    - Dst: free_proxy
      Src: /src/haproxy/src/http_client.c:1211,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 100
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1091
    functionDepth: 8
    functionLinenumber: 1091
    functionLinenumberEnd: 1216
    functionName: httpclient_create_proxy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 1
    functionsReached:
    - strdup
    - srv_settings_cpy
    - free_proxy
    - ha_free
    - srv_detach
    - free
    - xprt_get
    - memprintf
    - ssl_sock_parse_alpn
    - __ssl_store_load_locations_file
    - srv_drop
    - httpclient_resolve_init
    - ha_alert
    - new_server
    - alloc_new_proxy
    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:1229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1222
    functionDepth: 9
    functionLinenumber: 1222
    functionLinenumberEnd: 1234
    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:1255,1
    - Dst: dup_logger
      Src: /src/haproxy/src/http_client.c:1256,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1259,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/http_client.c:1263,1
    - Dst: xprt_get
      Src: /src/haproxy/src/http_client.c:1270,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1277,1
    - Dst: _parse_srv_expr
      Src: /src/haproxy/src/http_client.c:1278,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1282,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1287,1
    - Dst: _parse_srv_expr
      Src: /src/haproxy/src/http_client.c:1288,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1292,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1301,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1302,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1237
    functionDepth: 3
    functionLinenumber: 1237
    functionLinenumberEnd: 1306
    functionName: httpclient_postcheck_proxy
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - _parse_srv_expr
    - LIST_APPEND
    - free
    - xprt_get
    - memprintf
    - ha_alert
    - dup_logger
    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:1317,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1323,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1324,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: 1327
      start: 1313
    functionDepth: 3
    functionLinenumber: 1313
    functionLinenumberEnd: 1327
    functionName: httpclient_parse_global_resolvers
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - too_many_args
    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:1334,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1337,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1339,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1342,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: 1346
      start: 1330
    functionDepth: 1
    functionLinenumber: 1330
    functionLinenumberEnd: 1346
    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:1352,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1359,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1361,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1364,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: 1369
      start: 1348
    functionDepth: 1
    functionLinenumber: 1348
    functionLinenumberEnd: 1369
    functionName: httpclient_parse_global_prefer
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - ha_alert
    - strcmp
    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:1377,1
    - Dst: free
      Src: /src/haproxy/src/http_client.c:1383,1
    - Dst: strdup
      Src: /src/haproxy/src/http_client.c:1384,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: 1387
      start: 1373
    functionDepth: 3
    functionLinenumber: 1373
    functionLinenumberEnd: 1387
    functionName: httpclient_parse_global_ca_file
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - too_many_args
    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:1393,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1399,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_client.c:1401,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1404,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: 1409
      start: 1389
    functionDepth: 1
    functionLinenumber: 1389
    functionLinenumberEnd: 1409
    functionName: httpclient_parse_global_verify
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - ha_alert
    - strcmp
    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:1416,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1420,1
    - Dst: atol
      Src: /src/haproxy/src/http_client.c:1424,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: 1427
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1427
    functionName: httpclient_parse_global_retries
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - atol
    - ha_alert
    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:1436,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_client.c:1440,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/http_client.c:1445,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1447,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1452,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1457,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_client.c:1462,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_client.c:1466,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: 1469
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1469
    functionName: httpclient_parse_global_timeout_connect
    functionSourceFile: /src/haproxy/src/http_client.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - parse_time_err
    - memprintf
    - ha_alert
    - MS_TO_TICKS
    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:
    - write
    - getenv
    - unsetenv
    - close
    - socket
    - fcntl
    - strlen
    - connect
    - memcpy
    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:
    - free
    - memvprintf
    - va_start
    - sd_notify
    - va_end
    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: 95
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 95
    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: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    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: 239
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 239
    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: 351
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 351
    functionName: ultoa_o
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    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:368,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/tools.c:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - n
    - dst
    - size
    argTypes:
    - long int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 373
    functionName: ltoa_o
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    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:390,1
    - Dst: ulltoa
      Src: /src/haproxy/src/tools.c:392,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - n
    - dst
    - size
    argTypes:
    - long long
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 395
    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: 459
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 459
    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: 478
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 478
    functionName: strlcpy2
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 11
    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: 496
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 496
    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: 525
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 525
    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:536,1
    - Dst: ultoa_r
      Src: /src/haproxy/src/tools.c:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - n
    - buffer
    - size
    argTypes:
    - long
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 541
    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:559,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:567,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - n
    - buffer
    - size
    argTypes:
    - unsigned long long
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 573
    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:585,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: 586
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 586
    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: 619
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 619
    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:628,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - n
    - buffer
    - size
    argTypes:
    - double
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 630
    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: 663
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 663
    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: 684
      start: 672
    functionDepth: 0
    functionLinenumber: 672
    functionLinenumberEnd: 684
    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: 696
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 696
    functionName: round_2dig
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    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:709,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 715
    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:729,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 9
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 737
    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:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 746
    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:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 755
    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:777,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:781,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:797,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:810,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:818,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:824,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:826,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:832,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:834,1
    - Dst: resolv_hostname_validation
      Src: /src/haproxy/src/tools.c:841,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:849,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:850,1
    - Dst: getaddrinfo
      Src: /src/haproxy/src/tools.c:856,1
    - Dst: freeaddrinfo
      Src: /src/haproxy/src/tools.c:860,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:866,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:867,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:871,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:872,1
    - Dst: freeaddrinfo
      Src: /src/haproxy/src/tools.c:879,1
    - Dst: gethostbyname
      Src: /src/haproxy/src/tools.c:886,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:896,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:900,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 103
    argCount: 3
    argNames:
    - str
    - sa
    - resolve
    argTypes:
    - char*
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 908
    functionName: str2ip2
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - freeaddrinfo
    - memset
    - set_host_port
    - getaddrinfo
    - strlen
    - inet_pton
    - gethostbyname
    - resolv_hostname_validation
    - memcpy
    - get_host_port
    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:996,1
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:996,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:998,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1003,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1007,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1020,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1025,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1031,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1037,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1041,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1048,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1054,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1058,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1062,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1066,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1070,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1074,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1080,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1087,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1094,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1100,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1107,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1114,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1120,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:1127,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:1408,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1413,1
    - Dst: USE_QUIC
      Src: /src/haproxy/src/tools.c:1418,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1430,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:1453,1
    CyclomaticComplexity: 138
    EdgeCount: 138
    ICount: 393
    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: 1455
      start: 977
    functionDepth: 3
    functionLinenumber: 977
    functionLinenumberEnd: 1455
    functionName: str2sa_range
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - set_host_port
    - protocol_lookup
    - strerror
    - get_host_port
    - mark_tainted
    - str2ip2
    - memmove
    - strlen
    - env_expand
    - strtol
    - strdup
    - memset
    - getsockname
    - strncmp
    - memprintf
    - getsockopt
    - isdigit
    - free
    - USE_QUIC
    - strchr
    - memcpy
    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:1489,1
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:1491,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1494,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/tools.c:1498,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:1499,1
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:1504,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1507,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:1509,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: 1510
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1510
    functionName: sa2str
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - inet_ntop
    - strdup
    - memprintf
    - BUG_ON
    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:1519,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:1520,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1525,1
    - Dst: len2mask4
      Src: /src/haproxy/src/tools.c:1530,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - str
    - mask
    argTypes:
    - char*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1533
      start: 1517
    functionDepth: 1
    functionLinenumber: 1517
    functionLinenumberEnd: 1533
    functionName: str2mask
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - inet_pton
    - len2mask4
    - strtol
    - strchr
    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:1541,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:1542,1
    - Dst: strtol
      Src: /src/haproxy/src/tools.c:1547,1
    - Dst: len2mask6
      Src: /src/haproxy/src/tools.c:1552,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - str
    - mask
    argTypes:
    - char*
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1539
    functionDepth: 1
    functionLinenumber: 1539
    functionLinenumberEnd: 1555
    functionName: str2mask6
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - len2mask6
    - inet_pton
    - strtol
    - strchr
    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:1565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cidr
    - mask
    argTypes:
    - int
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1567
    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:1583,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - len
    - addr
    argTypes:
    - int
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1572
    functionDepth: 0
    functionLinenumber: 1572
    functionLinenumberEnd: 1584
    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:1591,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - len
    - addr
    argTypes:
    - int
    - struct in6_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1598
    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:1612,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1616,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1617,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:1619,1
    - Dst: str2mask
      Src: /src/haproxy/src/tools.c:1622,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:1628,1
    - Dst: gethostbyname
      Src: /src/haproxy/src/tools.c:1634,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:1643,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: 1648
      start: 1606
    functionDepth: 3
    functionLinenumber: 1606
    functionLinenumberEnd: 1648
    functionName: str2net
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - strdup
    - memset
    - strrchr
    - inet_pton
    - free
    - gethostbyname
    - str2mask
    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:1664,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1668,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:1669,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:1671,1
    - Dst: strtoul
      Src: /src/haproxy/src/tools.c:1676,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:1682,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:1687,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: 1689
      start: 1657
    functionDepth: 3
    functionLinenumber: 1657
    functionLinenumberEnd: 1689
    functionName: str62net
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - strdup
    - memset
    - strrchr
    - inet_pton
    - free
    - strtoul
    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:1734,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 2
    argNames:
    - addr
    - dst
    argTypes:
    - char*
    - struct in_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1736
    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:1818,1
    - Dst: read_uint
      Src: /src/haproxy/src/tools.c:1825,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:1827,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:1837,1
    - Dst: url2ipv4
      Src: /src/haproxy/src/tools.c:1845,1
    - Dst: read_uint
      Src: /src/haproxy/src/tools.c:1858,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:1860,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:1875,1
    - Dst: gethostbyname
      Src: /src/haproxy/src/tools.c:1879,1
    - Dst: read_uint
      Src: /src/haproxy/src/tools.c:1892,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:1899,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:1905,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: 1912
      start: 1749
    functionDepth: 1
    functionLinenumber: 1749
    functionLinenumberEnd: 1912
    functionName: url2sa
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - htons
    - read_uint
    - inet_pton
    - gethostbyname
    - url2ipv4
    - memcpy
    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:1939,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/tools.c:1945,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - addr
    - str
    - size
    argTypes:
    - struct sockaddr_storage*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1920
    functionDepth: 0
    functionLinenumber: 1920
    functionLinenumberEnd: 1950
    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:1978,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:1984,1
    - Dst: ntohs
      Src: /src/haproxy/src/tools.c:1984,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - addr
    - str
    - size
    argTypes:
    - struct sockaddr_storage*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1986
      start: 1958
    functionDepth: 0
    functionLinenumber: 1958
    functionLinenumberEnd: 1986
    functionName: port_to_str
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - snprintf
    - ntohs
    - memcpy
    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:2004,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:2007,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tools.c:2008,1
    - Dst: proto_fam_lookup
      Src: /src/haproxy/src/tools.c:2010,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:2011,1
    - Dst: my_socketat
      Src: /src/haproxy/src/tools.c:2013,1
    - Dst: bind
      Src: /src/haproxy/src/tools.c:2018,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/tools.c:2018,1
    - Dst: connect
      Src: /src/haproxy/src/tools.c:2019,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/tools.c:2019,1
    - Dst: close
      Src: /src/haproxy/src/tools.c:2028,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ns
    - orig
    argTypes:
    - struct netns_entry*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 1996
    functionDepth: 1
    functionLinenumber: 1996
    functionLinenumberEnd: 2031
    functionName: addr_is_local
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - bind
    - proto_fam_lookup
    - is_inet_addr
    - set_host_port
    - my_socketat
    - BUG_ON
    - close
    - connect
    - get_addr_len
    - memcpy
    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:2051,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: 2066
      start: 2044
    functionDepth: 1
    functionLinenumber: 2044
    functionLinenumberEnd: 2066
    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:2082,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: 2097
      start: 2072
    functionDepth: 1
    functionLinenumber: 2072
    functionLinenumberEnd: 2097
    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:2116,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: 2130
      start: 2109
    functionDepth: 1
    functionLinenumber: 2109
    functionLinenumberEnd: 2130
    functionName: escape_string
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: struct cbor_encode_ctx*::e_fct_byte
      Src: /src/haproxy/src/tools.c:2177,1
    - Dst: struct cbor_encode_ctx*::e_fct_byte
      Src: /src/haproxy/src/tools.c:2185,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: 2193
      start: 2140
    functionDepth: 0
    functionLinenumber: 2140
    functionLinenumberEnd: 2193
    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:2205,1
    - Dst: cbor_encode_uint64_prefix
      Src: /src/haproxy/src/tools.c:2219,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: 2221
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2221
    functionName: cbor_encode_int64
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - cbor_encode_uint64_prefix
    - llabs
    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:2242,1
    - Dst: struct cbor_encode_ctx*::e_fct_byte
      Src: /src/haproxy/src/tools.c:2249,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: 2255
      start: 2233
    functionDepth: 1
    functionLinenumber: 2233
    functionLinenumberEnd: 2255
    functionName: cbor_encode_bytes_prefix
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - cbor_encode_uint64_prefix
    - struct cbor_encode_ctx*::e_fct_byte
    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:2270,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: 2271
      start: 2266
    functionDepth: 2
    functionLinenumber: 2266
    functionLinenumberEnd: 2271
    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:2287,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: 2288
      start: 2283
    functionDepth: 2
    functionLinenumber: 2283
    functionLinenumberEnd: 2288
    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:2335,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: 2381
      start: 2327
    functionDepth: 0
    functionLinenumber: 2327
    functionLinenumberEnd: 2381
    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:2405,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:2405,1
    - Dst: hex2i
      Src: /src/haproxy/src/tools.c:2407,1
    - Dst: hex2i
      Src: /src/haproxy/src/tools.c:2407,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - string
    - in_form
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2423
      start: 2392
    functionDepth: 1
    functionLinenumber: 2392
    functionLinenumberEnd: 2423
    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:2427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2425
    functionDepth: 1
    functionLinenumber: 2425
    functionLinenumberEnd: 2428
    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:2432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2433
      start: 2430
    functionDepth: 1
    functionLinenumber: 2430
    functionLinenumberEnd: 2433
    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:2437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2435
    functionDepth: 1
    functionLinenumber: 2435
    functionLinenumberEnd: 2438
    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:2442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2443
      start: 2440
    functionDepth: 1
    functionLinenumber: 2440
    functionLinenumberEnd: 2443
    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:2447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2448
      start: 2445
    functionDepth: 1
    functionLinenumber: 2445
    functionLinenumberEnd: 2448
    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: 2491
      start: 2455
    functionDepth: 0
    functionLinenumber: 2455
    functionLinenumberEnd: 2491
    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:2513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - s
    - end
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2499
    functionDepth: 1
    functionLinenumber: 2499
    functionLinenumberEnd: 2523
    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: 2557
      start: 2529
    functionDepth: 0
    functionLinenumber: 2529
    functionLinenumberEnd: 2557
    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: 2600
      start: 2568
    functionDepth: 0
    functionLinenumber: 2568
    functionLinenumberEnd: 2600
    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: 2644
      start: 2612
    functionDepth: 0
    functionLinenumber: 2612
    functionLinenumberEnd: 2644
    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:2668,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/tools.c:2678,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 3
    argNames:
    - text
    - len
    - ret
    argTypes:
    - char*
    - int
    - long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2656
    functionDepth: 1
    functionLinenumber: 2656
    functionLinenumberEnd: 2688
    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:2707,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:2766,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 93
    argCount: 3
    argNames:
    - text
    - ret
    - unit_flags
    argTypes:
    - char*
    - unsigned*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2700
    functionDepth: 1
    functionLinenumber: 2700
    functionLinenumberEnd: 2784
    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:2794,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 2
    argNames:
    - text
    - ret
    argTypes:
    - char*
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2842
      start: 2790
    functionDepth: 0
    functionLinenumber: 2790
    functionLinenumberEnd: 2842
    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:2852,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 55
    argCount: 2
    argNames:
    - text
    - ret
    argTypes:
    - char*
    - ullong*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2912
      start: 2848
    functionDepth: 0
    functionLinenumber: 2848
    functionLinenumberEnd: 2912
    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:2927,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:2929,1
    - Dst: calloc
      Src: /src/haproxy/src/tools.c:2936,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:2938,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:2945,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:2955,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:2957,1
    - Dst: hex2i
      Src: /src/haproxy/src/tools.c:2959,1
    - Dst: hex2i
      Src: /src/haproxy/src/tools.c:2959,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:2964,1
    - Dst: ha_free
      Src: /src/haproxy/src/tools.c:2966,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 4
    argNames:
    - source
    - binstr
    - binstrlen
    - err
    argTypes:
    - char*
    - char**
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2968
      start: 2920
    functionDepth: 1
    functionLinenumber: 2920
    functionLinenumberEnd: 2968
    functionName: parse_binary
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - ha_free
    - ishex
    - strlen
    - memprintf
    - hex2i
    - calloc
    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:2979,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:2982,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - src
    - n
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2985
      start: 2971
    functionDepth: 0
    functionLinenumber: 2971
    functionLinenumberEnd: 2985
    functionName: my_strndup
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    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:3001,1
    - Dst: memcmp
      Src: /src/haproxy/src/tools.c:3005,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: 3010
      start: 2991
    functionDepth: 0
    functionLinenumber: 2991
    functionLinenumberEnd: 3010
    functionName: my_memmem
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    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:3017,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: 3022
      start: 3013
    functionDepth: 0
    functionLinenumber: 3013
    functionLinenumberEnd: 3022
    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:3030,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: 3036
      start: 3025
    functionDepth: 0
    functionLinenumber: 3025
    functionLinenumberEnd: 3036
    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:3046,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - root
    - key
    argTypes:
    - struct eb_root*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3052
      start: 3041
    functionDepth: 1
    functionLinenumber: 3041
    functionLinenumberEnd: 3052
    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:3066,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3069,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3075,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3078,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3081,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3082,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3083,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3083,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3084,1
    - Dst: eb32sc_first
      Src: /src/haproxy/src/tools.c:3086,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3090,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3094,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3096,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3096,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3097,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3099,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3101,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3101,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3102,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3104,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3106,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3106,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3107,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3110,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3114,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3116,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3116,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3117,1
    - Dst: eb32sc_next
      Src: /src/haproxy/src/tools.c:3118,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3120,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: 3121
      start: 3061
    functionDepth: 1
    functionLinenumber: 3061
    functionLinenumberEnd: 3121
    functionName: eb32sc_to_file
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - eb_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb32sc_first
    - fprintf
    - eb32sc_next
    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:3136,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3139,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3145,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3148,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3151,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3152,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3153,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3153,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3154,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/tools.c:3156,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3160,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3161,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3164,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3166,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3166,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3167,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3169,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3171,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3171,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3172,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3174,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3176,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3176,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3177,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3180,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3181,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3184,1
    - Dst: eb_root_to_node
      Src: /src/haproxy/src/tools.c:3186,1
    - Dst: eb_clrtag
      Src: /src/haproxy/src/tools.c:3186,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/tools.c:3187,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/tools.c:3188,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:3190,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: 3191
      start: 3132
    functionDepth: 1
    functionLinenumber: 3132
    functionLinenumberEnd: 3191
    functionName: ebmb_to_file
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - eb_clrtag
    - eb_gettag
    - eb_root_to_node
    - ebmb_first
    - fprintf
    - ebmb_next
    - read_u32
    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: 3221
      start: 3199
    functionDepth: 0
    functionLinenumber: 3199
    functionLinenumberEnd: 3221
    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: 3273
      start: 3228
    functionDepth: 0
    functionLinenumber: 3228
    functionLinenumberEnd: 3273
    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: 3323
      start: 3278
    functionDepth: 0
    functionLinenumber: 3278
    functionLinenumberEnd: 3323
    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: 3375
      start: 3329
    functionDepth: 0
    functionLinenumber: 3329
    functionLinenumberEnd: 3375
    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:3426,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: 3428
      start: 3383
    functionDepth: 0
    functionLinenumber: 3383
    functionLinenumberEnd: 3428
    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:3443,1
    - Dst: inet_pton
      Src: /src/haproxy/src/tools.c:3446,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: 3451
      start: 3435
    functionDepth: 0
    functionLinenumber: 3435
    functionLinenumberEnd: 3451
    functionName: buf2ip6
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - inet_pton
    - memcpy
    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: 3470
      start: 3457
    functionDepth: 0
    functionLinenumber: 3457
    functionLinenumberEnd: 3470
    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: 3493
      start: 3473
    functionDepth: 0
    functionLinenumber: 3473
    functionLinenumberEnd: 3493
    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:3498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3496
    functionDepth: 1
    functionLinenumber: 3496
    functionLinenumberEnd: 3499
    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: 3540
      start: 3507
    functionDepth: 0
    functionLinenumber: 3507
    functionLinenumberEnd: 3540
    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: 3575
      start: 3546
    functionDepth: 0
    functionLinenumber: 3546
    functionLinenumberEnd: 3575
    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: 3588
      start: 3580
    functionDepth: 0
    functionLinenumber: 3580
    functionLinenumberEnd: 3588
    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: 3642
      start: 3603
    functionDepth: 0
    functionLinenumber: 3603
    functionLinenumberEnd: 3642
    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:3652,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: 3654
      start: 3648
    functionDepth: 0
    functionLinenumber: 3648
    functionLinenumberEnd: 3654
    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:3665,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: 3671
      start: 3660
    functionDepth: 0
    functionLinenumber: 3660
    functionLinenumberEnd: 3671
    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:3683,1
    - Dst: write_u16
      Src: /src/haproxy/src/tools.c:3684,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:3684,1
    - Dst: write_u32
      Src: /src/haproxy/src/tools.c:3685,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: 3686
      start: 3678
    functionDepth: 1
    functionLinenumber: 3678
    functionLinenumberEnd: 3686
    functionName: v4tov6
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - write_u16
    - htons
    - memset
    - write_u32
    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:3701,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3702,1
    - Dst: htonl
      Src: /src/haproxy/src/tools.c:3702,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3703,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3705,1
    - Dst: read_u16
      Src: /src/haproxy/src/tools.c:3706,1
    - Dst: htons
      Src: /src/haproxy/src/tools.c:3706,1
    - Dst: htonl
      Src: /src/haproxy/src/tools.c:3708,1
    - Dst: ntohs
      Src: /src/haproxy/src/tools.c:3708,1
    - Dst: read_u16
      Src: /src/haproxy/src/tools.c:3708,1
    - Dst: ntohs
      Src: /src/haproxy/src/tools.c:3709,1
    - Dst: read_u16
      Src: /src/haproxy/src/tools.c:3709,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: 3714
      start: 3699
    functionDepth: 1
    functionLinenumber: 3699
    functionLinenumberEnd: 3714
    functionName: v6tov4
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - htons
    - ntohs
    - read_u64
    - htonl
    - read_u16
    - read_u32
    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:3735,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tools.c:3738,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tools.c:3738,1
    - Dst: memcmp
      Src: /src/haproxy/src/tools.c:3740,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tools.c:3743,1
    - Dst: get_net_port
      Src: /src/haproxy/src/tools.c:3743,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: 3747
      start: 3722
    functionDepth: 1
    functionLinenumber: 3722
    functionLinenumberEnd: 3747
    functionName: ipcmp
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memcmp
    - get_net_port
    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:3773,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3773,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3773,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3774,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3774,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3774,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3775,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3775,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3775,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3776,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3776,1
    - Dst: read_u32
      Src: /src/haproxy/src/tools.c:3776,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 13
    argCount: 2
    argNames:
    - addr
    - net
    argTypes:
    - struct sockaddr_storage*
    - struct net_addr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3781
      start: 3754
    functionDepth: 1
    functionLinenumber: 3754
    functionLinenumberEnd: 3781
    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:3794,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:3795,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3805,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - source
    - dest
    argTypes:
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3811
      start: 3790
    functionDepth: 1
    functionLinenumber: 3790
    functionLinenumberEnd: 3811
    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:3833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - saddr
    argTypes:
    - unsigned char*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3818
    functionDepth: 0
    functionLinenumber: 3818
    functionLinenumberEnd: 3837
    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:3846,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3847,1
    - Dst: unlikely
      Src: /src/haproxy/src/tools.c:3851,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3855,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3860,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3865,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3870,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 2
    argNames:
    - t
    - hz_div
    argTypes:
    - int
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3873
      start: 3840
    functionDepth: 1
    functionLinenumber: 3840
    functionLinenumberEnd: 3873
    functionName: human_time
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 6
    functionsReached:
    - snprintf
    - unlikely
    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:3894,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:3899,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3903,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3908,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3913,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3918,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:3923,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: 3929
      start: 3888
    functionDepth: 1
    functionLinenumber: 3888
    functionLinenumberEnd: 3929
    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: 3956
      start: 3937
    functionDepth: 0
    functionLinenumber: 3937
    functionLinenumberEnd: 3956
    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:3979,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/tools.c:3980,1
    - Dst: my_tm_diff
      Src: /src/haproxy/src/tools.c:3981,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:3990,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - t
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3994
      start: 3963
    functionDepth: 1
    functionLinenumber: 3963
    functionLinenumberEnd: 3994
    functionName: get_gmt_offset
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - snprintf
    - my_tm_diff
    - get_gmtime
    - unlikely
    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:4006,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4011,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4015,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4020,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4025,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4030,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 3
    argNames:
    - dst
    - tm
    - size
    argTypes:
    - char*
    - struct tm*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4042
      start: 4001
    functionDepth: 1
    functionLinenumber: 4001
    functionLinenumberEnd: 4042
    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:4056,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4058,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4063,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4067,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4072,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4077,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/tools.c:4082,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4087,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: 4092
      start: 4050
    functionDepth: 2
    functionLinenumber: 4050
    functionLinenumberEnd: 4092
    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:4132,1
    - Dst: days_since_zero
      Src: /src/haproxy/src/tools.c:4132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4098
    functionDepth: 1
    functionLinenumber: 4098
    functionLinenumberEnd: 4146
    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: 4159
      start: 4152
    functionDepth: 0
    functionLinenumber: 4152
    functionLinenumberEnd: 4159
    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:4166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - date
    - len
    - str
    - l
    argTypes:
    - char**
    - int*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4171
      start: 4164
    functionDepth: 0
    functionLinenumber: 4164
    functionLinenumberEnd: 4171
    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: 4175
      start: 4174
    functionDepth: 0
    functionLinenumber: 4174
    functionLinenumberEnd: 4175
    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:4190,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4191,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4192,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4193,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4194,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4195,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4196,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char**
    - int*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4203
      start: 4186
    functionDepth: 1
    functionLinenumber: 4186
    functionLinenumberEnd: 4203
    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:4224,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4225,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4226,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4227,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4228,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4229,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4230,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4231,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4232,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4233,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4234,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4235,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4236,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 46
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char**
    - int*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4242
      start: 4220
    functionDepth: 1
    functionLinenumber: 4220
    functionLinenumberEnd: 4242
    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:4258,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4259,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4260,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4260,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4263,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4264,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4264,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4267,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4268,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4268,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4271,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4272,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4272,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4275,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4276,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4276,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4279,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4280,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4280,1
    - Dst: STR2I3
      Src: /src/haproxy/src/tools.c:4283,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4284,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char**
    - int*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4289
      start: 4254
    functionDepth: 1
    functionLinenumber: 4254
    functionLinenumberEnd: 4289
    functionName: parse_http_ldayname
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - RET0_UNLESS
    - parse_strcmp
    - STR2I3
    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: 4300
      start: 4292
    functionDepth: 0
    functionLinenumber: 4292
    functionLinenumberEnd: 4300
    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:4307,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4307,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4309,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - date
    - len
    - digit
    argTypes:
    - char**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4313
      start: 4303
    functionDepth: 1
    functionLinenumber: 4303
    functionLinenumberEnd: 4313
    functionName: parse_2digit
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - RET0_UNLESS
    - parse_digit
    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:4320,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4320,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4323,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4323,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4326,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4326,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4329,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - date
    - len
    - digit
    argTypes:
    - char**
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4333
      start: 4316
    functionDepth: 1
    functionLinenumber: 4316
    functionLinenumberEnd: 4333
    functionName: parse_4digit
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - RET0_UNLESS
    - parse_digit
    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:4344,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4344,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4345,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4345,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4346,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4346,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4347,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4347,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4348,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char**
    - int*
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4350
      start: 4342
    functionDepth: 2
    functionLinenumber: 4342
    functionLinenumberEnd: 4350
    functionName: parse_http_time
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_expect_char
    - parse_2digit
    - RET0_UNLESS
    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:4380,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4382,1
    - Dst: parse_http_dayname
      Src: /src/haproxy/src/tools.c:4382,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4383,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4383,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4384,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4384,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4385,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4385,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4386,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4386,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4387,1
    - Dst: parse_http_monthname
      Src: /src/haproxy/src/tools.c:4387,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4388,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4388,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4389,1
    - Dst: parse_4digit
      Src: /src/haproxy/src/tools.c:4389,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4391,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4391,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4392,1
    - Dst: parse_http_time
      Src: /src/haproxy/src/tools.c:4392,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4393,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4393,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4394,1
    - Dst: parse_strcmp
      Src: /src/haproxy/src/tools.c:4394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4397
      start: 4377
    functionDepth: 3
    functionLinenumber: 4377
    functionLinenumberEnd: 4397
    functionName: parse_imf_date
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_expect_char
    - parse_http_monthname
    - memset
    - parse_http_time
    - parse_2digit
    - RET0_UNLESS
    - parse_4digit
    - parse_http_dayname
    - parse_strcmp
    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:4413,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4415,1
    - Dst: parse_http_ldayname
      Src: /src/haproxy/src/tools.c:4415,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4416,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4416,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4417,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4417,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4418,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4418,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4419,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4419,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4420,1
    - Dst: parse_http_monthname
      Src: /src/haproxy/src/tools.c:4420,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4421,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4421,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4430,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4430,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4433,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4435,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4435,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4438,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4438,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: 2
    EdgeCount: 2
    ICount: 23
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4454
      start: 4408
    functionDepth: 3
    functionLinenumber: 4408
    functionLinenumberEnd: 4454
    functionName: parse_rfc850_date
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_expect_char
    - parse_http_monthname
    - memset
    - parse_http_time
    - parse_2digit
    - RET0_UNLESS
    - parse_http_ldayname
    - parse_strcmp
    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:4470,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4472,1
    - Dst: parse_http_dayname
      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_http_monthname
      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: parse_expect_char
      Src: /src/haproxy/src/tools.c:4478,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4479,1
    - Dst: parse_digit
      Src: /src/haproxy/src/tools.c:4479,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4481,1
    - Dst: parse_2digit
      Src: /src/haproxy/src/tools.c:4481,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4483,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4483,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4484,1
    - Dst: parse_http_time
      Src: /src/haproxy/src/tools.c:4484,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4485,1
    - Dst: parse_expect_char
      Src: /src/haproxy/src/tools.c:4485,1
    - Dst: RET0_UNLESS
      Src: /src/haproxy/src/tools.c:4486,1
    - Dst: parse_4digit
      Src: /src/haproxy/src/tools.c:4486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4490
      start: 4467
    functionDepth: 3
    functionLinenumber: 4467
    functionLinenumberEnd: 4490
    functionName: parse_asctime_date
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - parse_expect_char
    - parse_http_monthname
    - memset
    - parse_http_time
    - parse_2digit
    - RET0_UNLESS
    - parse_4digit
    - parse_http_dayname
    - parse_digit
    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:4505,1
    - Dst: parse_rfc850_date
      Src: /src/haproxy/src/tools.c:4508,1
    - Dst: parse_asctime_date
      Src: /src/haproxy/src/tools.c:4511,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - date
    - len
    - tm
    argTypes:
    - char*
    - int
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4515
      start: 4503
    functionDepth: 4
    functionLinenumber: 4503
    functionLinenumberEnd: 4515
    functionName: parse_http_date
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - parse_rfc850_date
    - parse_asctime_date
    - parse_imf_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:4546,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:4548,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:4550,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:4552,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: 4553
      start: 4522
    functionDepth: 1
    functionLinenumber: 4522
    functionLinenumberEnd: 4553
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: va_copy
      Src: /src/haproxy/src/tools.c:4602,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/tools.c:4603,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:4604,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/tools.c:4617,1
    - Dst: ha_free
      Src: /src/haproxy/src/tools.c:4622,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:4626,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - out
    - format
    - orig_args
    argTypes:
    - char**
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4631
      start: 4585
    functionDepth: 3
    functionLinenumber: 4585
    functionLinenumberEnd: 4631
    functionName: memvprintf
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - ha_free
    - vsnprintf
    - free
    - my_realloc2
    - va_end
    - va_copy
    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:4638,1
    - Dst: memvprintf
      Src: /src/haproxy/src/tools.c:4639,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:4640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - format
    argTypes:
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4643
      start: 4633
    functionDepth: 4
    functionLinenumber: 4633
    functionLinenumberEnd: 4643
    functionName: memprintf
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 218
    functionsReached:
    - memvprintf
    - va_end
    - va_start
    linkageType: ''
    returnType: char
    signature: char *memprintf(char **out, const char *format, ...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:4666,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:4674,1
    - Dst: malloc
      Src: /src/haproxy/src/tools.c:4691,1
    - Dst: unlikely
      Src: /src/haproxy/src/tools.c:4692,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:4703,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:4713,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 2
    argNames:
    - out
    - level
    argTypes:
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4717
      start: 4654
    functionDepth: 3
    functionLinenumber: 4654
    functionLinenumberEnd: 4717
    functionName: indent_msg
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - memset
    - unlikely
    - strlen
    - free
    - malloc
    - strchr
    linkageType: ''
    returnType: char
    signature: char *indent_msg(char **out, int level)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:4730,1
    - Dst: b_putblk
      Src: /src/haproxy/src/tools.c:4742,1
    - Dst: b_putchr
      Src: /src/haproxy/src/tools.c:4748,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: 4752
      start: 4727
    functionDepth: 1
    functionLinenumber: 4727
    functionLinenumberEnd: 4752
    functionName: append_prefixed_str
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - strlen
    - b_putblk
    - b_putchr
    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:4770,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:4775,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4784
      start: 4762
    functionDepth: 0
    functionLinenumber: 4762
    functionLinenumberEnd: 4784
    functionName: my_unsetenv
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - strlen
    - strncmp
    linkageType: ''
    returnType: int
    signature: int my_unsetenv(const char *name)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: isalnum
      Src: /src/haproxy/src/tools.c:4830,1
    - Dst: getenv
      Src: /src/haproxy/src/tools.c:4841,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:4843,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/tools.c:4846,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4851,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:4855,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:4863,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 1
    argNames:
    - in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4866
      start: 4794
    functionDepth: 3
    functionLinenumber: 4794
    functionLinenumberEnd: 4866
    functionName: env_expand
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - isalnum
    - getenv
    - strlen
    - free
    - my_realloc2
    - memcpy
    linkageType: ''
    returnType: char
    signature: char *env_expand(char *in)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:4886,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:4886,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:4903,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:4903,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: 4915
      start: 4870
    functionDepth: 0
    functionLinenumber: 4870
    functionLinenumberEnd: 4915
    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:4923,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:4923,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - s1
    - s2
    - s3
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4924
      start: 4921
    functionDepth: 0
    functionLinenumber: 4921
    functionLinenumberEnd: 4924
    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: 5044
      start: 4932
    functionDepth: 0
    functionLinenumber: 4932
    functionLinenumberEnd: 5044
    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:5059,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5064
      start: 5055
    functionDepth: 0
    functionLinenumber: 5055
    functionLinenumberEnd: 5064
    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:5078,1
    - Dst: isascii
      Src: /src/haproxy/src/tools.c:5078,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 47
    argCount: 3
    argNames:
    - out
    - buf
    - bsize
    argTypes:
    - struct buffer*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5110
      start: 5071
    functionDepth: 0
    functionLinenumber: 5071
    functionLinenumberEnd: 5110
    functionName: dump_text
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - isascii
    - isprint
    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: 5131
      start: 5115
    functionDepth: 0
    functionLinenumber: 5115
    functionLinenumberEnd: 5131
    functionName: dump_binary
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    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:5150,1
    - Dst: may_access
      Src: /src/haproxy/src/tools.c:5154,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5159,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5161,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5163,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5166,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5168,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5171,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5173,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:5174,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5175,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5177,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5179,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: 5181
      start: 5141
    functionDepth: 1
    functionLinenumber: 5141
    functionLinenumberEnd: 5181
    functionName: dump_hex
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - isprint
    - chunk_appendf
    - may_access
    - chunk_strcat
    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:5201,1
    - Dst: may_access
      Src: /src/haproxy/src/tools.c:5210,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5212,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5214,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: 5216
      start: 5196
    functionDepth: 1
    functionLinenumber: 5196
    functionLinenumberEnd: 5216
    functionName: dump_addr_and_bytes
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    - may_access
    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:5230,1
    - Dst: dump_addr_and_bytes
      Src: /src/haproxy/src/tools.c:5237,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5238,1
    - Dst: may_access
      Src: /src/haproxy/src/tools.c:5240,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5241,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:5242,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5243,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5245,1
    - Dst: may_access
      Src: /src/haproxy/src/tools.c:5248,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5255,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5260,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/tools.c:5261,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tools.c:5265,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: 5268
      start: 5224
    functionDepth: 2
    functionLinenumber: 5224
    functionLinenumberEnd: 5268
    functionName: dump_area_with_syms
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - resolve_sym_name
    - chunk_appendf
    - isprint
    - chunk_strcat
    - dump_addr_and_bytes
    - may_access
    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:5288,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:5292,1
    - Dst: isascii
      Src: /src/haproxy/src/tools.c:5292,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: 5326
      start: 5278
    functionDepth: 1
    functionLinenumber: 5278
    functionLinenumberEnd: 5326
    functionName: dump_text_line
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    - isprint
    - 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:5340,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5343,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5345,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5349,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5351,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5355,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5357,1
    - Dst: fprintf
      Src: /src/haproxy/src/tools.c:5360,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:5363,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5364,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5366,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5369,1
    - Dst: fputc
      Src: /src/haproxy/src/tools.c:5371,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: 5373
      start: 5332
    functionDepth: 0
    functionLinenumber: 5332
    functionLinenumberEnd: 5373
    functionName: debug_hexdump
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 5
    functionsReached:
    - fputc
    - isprint
    - fprintf
    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:5383,1
    - Dst: elf_aux_info
      Src: /src/haproxy/src/tools.c:5400,1
    - Dst: _dlauxinfo
      Src: /src/haproxy/src/tools.c:5406,1
    - Dst: getexecname
      Src: /src/haproxy/src/tools.c:5413,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5416
      start: 5378
    functionDepth: 0
    functionLinenumber: 5378
    functionLinenumberEnd: 5416
    functionName: get_exec_path
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - getexecname
    - elf_aux_info
    - getauxval
    - _dlauxinfo
    linkageType: ''
    returnType: char
    signature: char *get_exec_path()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dladdr1
      Src: /src/haproxy/src/tools.c:5428,1
    - Dst: dladdr
      Src: /src/haproxy/src/tools.c:5433,1
    - Dst: dladdr
      Src: /src/haproxy/src/tools.c:5435,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - addr
    - dli
    - size
    argTypes:
    - void*
    - Dl_info*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5440
      start: 5422
    functionDepth: 0
    functionLinenumber: 5422
    functionLinenumberEnd: 5440
    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:5454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5458
      start: 5448
    functionDepth: 1
    functionLinenumber: 5448
    functionLinenumberEnd: 5458
    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:5472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5475
      start: 5466
    functionDepth: 0
    functionLinenumber: 5466
    functionLinenumberEnd: 5475
    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:5488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5491
      start: 5482
    functionDepth: 0
    functionLinenumber: 5482
    functionLinenumberEnd: 5491
    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: 5499
      start: 5496
    functionDepth: 0
    functionLinenumber: 5496
    functionLinenumberEnd: 5499
    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: 5504
      start: 5501
    functionDepth: 0
    functionLinenumber: 5501
    functionLinenumberEnd: 5504
    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:5532,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5533,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5534,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5535,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5536,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5537,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5538,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5539,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5540,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5541,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5542,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5543,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5544,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5545,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5546,1
    - Dst: ha_dump_backtrace
      Src: /src/haproxy/src/tools.c:5546,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5547,1
    - Dst: cli_io_handler
      Src: /src/haproxy/src/tools.c:5547,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5549,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5552,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5555,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5556,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5559,1
    - Dst: DEF_SYM
      Src: /src/haproxy/src/tools.c:5561,1
    - Dst: defined
      Src: /src/haproxy/src/tools.c:5564,1
    - Dst: defined
      Src: /src/haproxy/src/tools.c:5564,1
    - Dst: defined
      Src: /src/haproxy/src/tools.c:5564,1
    - Dst: __decl_thread_var
      Src: /src/haproxy/src/tools.c:5567,1
    - Dst: best_idx
      Src: /src/haproxy/src/tools.c:5575,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5578,1
    - Dst: thread_isolated
      Src: /src/haproxy/src/tools.c:5611,1
    - Dst: get_tainted
      Src: /src/haproxy/src/tools.c:5611,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/tools.c:5614,1
    - Dst: sigemptyset
      Src: /src/haproxy/src/tools.c:5621,1
    - Dst: sigaddset
      Src: /src/haproxy/src/tools.c:5623,1
    - Dst: sigaddset
      Src: /src/haproxy/src/tools.c:5626,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/tools.c:5628,1
    - Dst: dladdr_and_size
      Src: /src/haproxy/src/tools.c:5631,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/tools.c:5635,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/tools.c:5638,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/tools.c:5649,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/tools.c:5652,1
    - Dst: dladdr
      Src: /src/haproxy/src/tools.c:5654,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/tools.c:5656,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/tools.c:5659,1
    - Dst: ha_sigmask
      Src: /src/haproxy/src/tools.c:5663,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/tools.c:5666,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:5670,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:5673,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:5675,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5677,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5683,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5685,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5687,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5693,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5702,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5704,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5708,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5710,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 72
    argCount: 3
    argNames:
    - buf
    - pfx
    - addr
    argTypes:
    - struct buffer*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5712
      start: 5526
    functionDepth: 5
    functionLinenumber: 5526
    functionLinenumberEnd: 5712
    functionName: resolve_sym_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 11
    functionsReached:
    - HA_SPIN_TRYLOCK
    - __decl_thread_var
    - HA_ATOMIC_STORE
    - dladdr
    - best_idx
    - chunk_appendf
    - strrchr
    - strlen
    - ha_dump_backtrace
    - HA_SPIN_UNLOCK
    - sigaddset
    - thread_isolated
    - cli_io_handler
    - ha_sigmask
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_CAS
    - get_tainted
    - defined
    - sigemptyset
    - DEF_SYM
    - ha_thread_relax
    - strchr
    - dladdr_and_size
    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:5730,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5734,1
    - Dst: strrchr
      Src: /src/haproxy/src/tools.c:5740,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:5743,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:5745,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5746,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5752,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - buf
    - pfx
    - addr
    argTypes:
    - struct buffer*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5754
      start: 5722
    functionDepth: 1
    functionLinenumber: 5722
    functionLinenumberEnd: 5754
    functionName: resolve_dso_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    - strrchr
    - strlen
    - strchr
    - dladdr_and_size
    linkageType: ''
    returnType: void
    signature: void *resolve_dso_name(struct buffer *buf, const char *pfx, const void
      *addr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_exec_path
      Src: /src/haproxy/src/tools.c:5784,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:5785,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5814,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tools.c:5819,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: 5822
      start: 5773
    functionDepth: 1
    functionLinenumber: 5773
    functionLinenumberEnd: 5822
    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:5830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - output
    - with_addr
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5832
      start: 5825
    functionDepth: 0
    functionLinenumber: 5825
    functionLinenumberEnd: 5832
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - output
    - with_addr
    argTypes:
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5842
      start: 5839
    functionDepth: 0
    functionLinenumber: 5839
    functionLinenumberEnd: 5842
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:5863,1
    - Dst: read_uint
      Src: /src/haproxy/src/tools.c:5872,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:5877,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/tools.c:5881,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - str
    - nums
    - sz
    argTypes:
    - char*
    - unsigned int**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5890
      start: 5856
    functionDepth: 3
    functionLinenumber: 5856
    functionLinenumberEnd: 5890
    functionName: parse_dotted_uints
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - strlen
    - free
    - my_realloc2
    - read_uint
    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: 5910
      start: 5896
    functionDepth: 0
    functionLinenumber: 5896
    functionLinenumberEnd: 5910
    functionName: varint_bytes
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int varint_bytes(uint64_t v)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/tools.c:5931,1
    - Dst: unlikely
      Src: /src/haproxy/src/tools.c:5945,1
    - Dst: _HA_ATOMIC_DWCAS
      Src: /src/haproxy/src/tools.c:5945,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/tools.c:5950,1
    - Dst: rotl64
      Src: /src/haproxy/src/tools.c:5953,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:5967,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:5982,1
    - Dst: ha_random64
      Src: /src/haproxy/src/tools.c:6007,1
    - Dst: ha_random64
      Src: /src/haproxy/src/tools.c:6015,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6020
      start: 5923
    functionDepth: 1
    functionLinenumber: 5923
    functionLinenumberEnd: 6020
    functionName: ha_random64
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - memset
    - _HA_ATOMIC_DWCAS
    - unlikely
    - rotl64
    - ha_random64
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - memcpy
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t ha_random64()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64
      Src: /src/haproxy/src/tools.c:6030,1
    - Dst: ha_random64
      Src: /src/haproxy/src/tools.c:6034,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tools.c:6038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - output
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6044
      start: 6025
    functionDepth: 2
    functionLinenumber: 6025
    functionLinenumberEnd: 6044
    functionName: ha_generate_uuid_v4
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - ha_random64
    linkageType: ''
    returnType: void
    signature: void ha_generate_uuid_v4(struct buffer *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64
      Src: /src/haproxy/src/tools.c:6056,1
    - Dst: ha_random64
      Src: /src/haproxy/src/tools.c:6060,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tools.c:6063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - output
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6069
      start: 6049
    functionDepth: 2
    functionLinenumber: 6049
    functionLinenumberEnd: 6069
    functionName: ha_generate_uuid_v7
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - ha_random64
    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:6078,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/tools.c:6080,1
    - Dst: stat
      Src: /src/haproxy/src/tools.c:6084,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: 6088
      start: 6073
    functionDepth: 1
    functionLinenumber: 6073
    functionLinenumberEnd: 6088
    functionName: _is_path_mode
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - vsnprintf
    - stat
    - 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:6100,1
    - Dst: _is_path_mode
      Src: /src/haproxy/src/tools.c:6101,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:6102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mode
    - path_fmt
    argTypes:
    - mode_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6104
      start: 6095
    functionDepth: 2
    functionLinenumber: 6095
    functionLinenumberEnd: 6104
    functionName: is_path_mode
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - _is_path_mode
    - va_end
    - va_start
    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:6115,1
    - Dst: _is_path_mode
      Src: /src/haproxy/src/tools.c:6116,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:6117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - path_fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6119
      start: 6110
    functionDepth: 2
    functionLinenumber: 6110
    functionLinenumberEnd: 6119
    functionName: is_file_present
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - _is_path_mode
    - va_end
    - va_start
    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:6130,1
    - Dst: _is_path_mode
      Src: /src/haproxy/src/tools.c:6131,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:6132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - path_fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6134
      start: 6125
    functionDepth: 2
    functionLinenumber: 6125
    functionLinenumberEnd: 6134
    functionName: is_dir_present
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - _is_path_mode
    - va_end
    - va_start
    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: 6151
      start: 6140
    functionDepth: 0
    functionLinenumber: 6140
    functionLinenumberEnd: 6151
    functionName: EMIT_CHAR
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EMIT_CHAR(x)
  - BBCount: 68
    BranchProfiles: []
    Callsites:
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6215,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:6308,1
    - Dst: ishex
      Src: /src/haproxy/src/tools.c:6308,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:6315,1
    - Dst: toupper
      Src: /src/haproxy/src/tools.c:6316,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6329,1
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6331,1
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6334,1
    - Dst: isalpha
      Src: /src/haproxy/src/tools.c:6350,1
    - Dst: isalnum
      Src: /src/haproxy/src/tools.c:6361,1
    - Dst: unlikely
      Src: /src/haproxy/src/tools.c:6366,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:6368,1
    - Dst: ultoa
      Src: /src/haproxy/src/tools.c:6369,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:6370,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:6372,1
    - Dst: getenv
      Src: /src/haproxy/src/tools.c:6382,1
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6428,1
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6432,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6436,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6448,1
    - Dst: likely
      Src: /src/haproxy/src/tools.c:6461,1
    - Dst: isspace
      Src: /src/haproxy/src/tools.c:6463,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6476,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6490,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6500,1
    - Dst: EMIT_CHAR
      Src: /src/haproxy/src/tools.c:6515,1
    CyclomaticComplexity: 124
    EdgeCount: 124
    ICount: 260
    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: 6533
      start: 6178
    functionDepth: 1
    functionLinenumber: 6178
    functionLinenumberEnd: 6533
    functionName: parse_line
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - isalnum
    - EMIT_CHAR
    - isspace
    - unlikely
    - strcmp
    - getenv
    - ishex
    - isalpha
    - toupper
    - likely
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/tools.c:6551,1
    - Dst: va_start
      Src: /src/haproxy/src/tools.c:6553,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/tools.c:6554,1
    - Dst: va_end
      Src: /src/haproxy/src/tools.c:6555,1
    - Dst: fopen
      Src: /src/haproxy/src/tools.c:6560,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tools.c:6565,1
    - Dst: fgets
      Src: /src/haproxy/src/tools.c:6566,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6567,1
    - Dst: fclose
      Src: /src/haproxy/src/tools.c:6576,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - path_fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6578
      start: 6545
    functionDepth: 1
    functionLinenumber: 6545
    functionLinenumberEnd: 6578
    functionName: read_line_to_trash
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - fclose
    - fgets
    - vsnprintf
    - strlen
    - va_start
    - fopen
    - va_end
    - chunk_reset
    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:6607,1
    - Dst: isprint
      Src: /src/haproxy/src/tools.c:6609,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - line
    - pos
    - width
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6623
      start: 6588
    functionDepth: 0
    functionLinenumber: 6588
    functionLinenumberEnd: 6623
    functionName: sanitize_for_printing
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - isprint
    - isspace
    linkageType: ''
    returnType: size_t
    signature: size_t sanitize_for_printing(char *line, size_t pos, size_t width)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/haproxy/src/tools.c:6639,1
    - Dst: tolower
      Src: /src/haproxy/src/tools.c:6642,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - fp
    - word
    argTypes:
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6652
      start: 6631
    functionDepth: 0
    functionLinenumber: 6631
    functionLinenumberEnd: 6652
    functionName: update_word_fingerprint
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - tolower
    linkageType: ''
    returnType: void
    signature: void update_word_fingerprint(uint8_t *fp, const char *word)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6670,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:6671,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6671,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: 6676
      start: 6659
    functionDepth: 1
    functionLinenumber: 6659
    functionLinenumberEnd: 6676
    functionName: hash_anon
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - HA_ANON
    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:6699,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:6700,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:6701,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:6702,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:6703,1
    - Dst: memset
      Src: /src/haproxy/src/tools.c:6708,1
    - Dst: str2ip2
      Src: /src/haproxy/src/tools.c:6709,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/tools.c:6710,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/tools.c:6715,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/tools.c:6719,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/tools.c:6722,1
    - Dst: get_host_port
      Src: /src/haproxy/src/tools.c:6723,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:6727,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:6727,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:6727,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6732,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:6732,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6732,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6736,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:6736,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6736,1
    - Dst: strcmp
      Src: /src/haproxy/src/tools.c:6743,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6748,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:6748,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6748,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6752,1
    - Dst: HA_ANON
      Src: /src/haproxy/src/tools.c:6752,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6752,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/tools.c:6761,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 64
    argCount: 3
    argNames:
    - scramble
    - ipstring
    - hasport
    argTypes:
    - uint32_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6770
      start: 6683
    functionDepth: 4
    functionLinenumber: 6683
    functionLinenumberEnd: 6770
    functionName: hash_ipanon
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - str2ip2
    - memset
    - addr_to_str
    - strcmp
    - snprintf
    - strncmp
    - HA_ANON_STR
    - strlen
    - HA_ANON
    - str2sa_range
    - get_host_port
    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:6779,1
    - Dst: update_word_fingerprint
      Src: /src/haproxy/src/tools.c:6780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fp
    - word
    argTypes:
    - uint8_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6781
      start: 6777
    functionDepth: 1
    functionLinenumber: 6777
    functionLinenumberEnd: 6781
    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: abs
      Src: /src/haproxy/src/tools.c:6793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fp1
    - fp2
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6796
      start: 6787
    functionDepth: 0
    functionLinenumber: 6787
    functionLinenumberEnd: 6796
    functionName: word_fingerprint_distance
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 4
    functionsReached:
    - abs
    linkageType: ''
    returnType: int
    signature: int word_fingerprint_distance(const uint8_t *fp1, const uint8_t *fp2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: openssl_version_parser
      Src: /src/haproxy/src/tools.c:6815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6828
      start: 6810
    functionDepth: 1
    functionLinenumber: 6810
    functionLinenumberEnd: 6828
    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:6839,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6842,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6843,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:6843,1
    - Dst: strncmp
      Src: /src/haproxy/src/tools.c:6844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6848
      start: 6835
    functionDepth: 1
    functionLinenumber: 6835
    functionLinenumberEnd: 6848
    functionName: openssl_compare_current_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 1
    functionsReached:
    - strlen
    - strncmp
    - OpenSSL_version
    linkageType: ''
    returnType: int
    signature: int openssl_compare_current_name(const char *name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/haproxy/src/tools.c:6871,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:6875,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6912,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:6914,1
    - Dst: prctl
      Src: /src/haproxy/src/tools.c:6925,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: 6930
      start: 6869
    functionDepth: 1
    functionLinenumber: 6869
    functionLinenumberEnd: 6930
    functionName: vma_set_name_id
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - snprintf
    - sysconf
    - prctl
    - BUG_ON
    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:6935,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: 6936
      start: 6933
    functionDepth: 2
    functionLinenumber: 6933
    functionLinenumberEnd: 6936
    functionName: vma_set_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    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:6989,1
    - Dst: get_sym_curr_addr
      Src: /src/haproxy/src/tools.c:7005,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/tools.c:7006,1
    - Dst: _dlopen
      Src: /src/haproxy/src/tools.c:7012,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/tools.c:7016,1
    - Dst: dlsym
      Src: /src/haproxy/src/tools.c:7021,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/tools.c:7048,1
    - Dst: hlua_show_current_location
      Src: /src/haproxy/src/tools.c:7050,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:7051,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 2
    argNames:
    - filename
    - flags
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7059
      start: 6957
    functionDepth: 1
    functionLinenumber: 6957
    functionLinenumberEnd: 7059
    functionName: dlopen
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 3
    functionsReached:
    - get_sym_curr_addr
    - get_sym_next_addr
    - hlua_show_current_location
    - ha_warning
    - dlsym
    - _dlopen
    - mark_tainted
    linkageType: ''
    returnType: void
    signature: void *dlopen(const char *filename, int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_random32
      Src: /src/haproxy/src/tools.c:7065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7069
      start: 7062
    functionDepth: 1
    functionLinenumber: 7062
    functionLinenumberEnd: 7069
    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:7097,1
    - Dst: MIN
      Src: /src/haproxy/src/tools.c:7105,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:7108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 4
    argNames:
    - buf
    - size
    - position
    - end
    argTypes:
    - char*
    - int
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7113
      start: 7080
    functionDepth: 0
    functionLinenumber: 7080
    functionLinenumberEnd: 7113
    functionName: fgets_from_mem
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - memcpy
    - memchr
    - MIN
    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:7127,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tools.c:7129,1
    - Dst: strdup
      Src: /src/haproxy/src/tools.c:7134,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tools.c:7136,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7146
      start: 7118
    functionDepth: 1
    functionLinenumber: 7118
    functionLinenumberEnd: 7146
    functionName: backup_env
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - strdup
    - malloc
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int backup_env(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:7163,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:7167,1
    - Dst: my_strndup
      Src: /src/haproxy/src/tools.c:7172,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tools.c:7174,1
    - Dst: my_unsetenv
      Src: /src/haproxy/src/tools.c:7179,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:7181,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7185
      start: 7156
    functionDepth: 3
    functionLinenumber: 7156
    functionLinenumberEnd: 7185
    functionName: clean_env
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - ha_warning
    - strchr
    - free
    - my_unsetenv
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int clean_env(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/tools.c:7203,1
    - Dst: strchr
      Src: /src/haproxy/src/tools.c:7207,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:7209,1
    - Dst: setenv
      Src: /src/haproxy/src/tools.c:7219,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tools.c:7221,1
    - Dst: strerror
      Src: /src/haproxy/src/tools.c:7222,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tools.c:7224,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7233
      start: 7197
    functionDepth: 1
    functionLinenumber: 7197
    functionLinenumberEnd: 7233
    functionName: restore_env
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - setenv
    - BUG_ON
    - strerror
    - ha_alert
    - strchr
    linkageType: ''
    returnType: int
    signature: int restore_env(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/tools.c:7256,1
    - Dst: cebus_item_lookup
      Src: /src/haproxy/src/tools.c:7257,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/tools.c:7258,1
    - Dst: strlen
      Src: /src/haproxy/src/tools.c:7263,1
    - Dst: malloc
      Src: /src/haproxy/src/tools.c:7264,1
    - Dst: memcpy
      Src: /src/haproxy/src/tools.c:7268,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/tools.c:7269,1
    - Dst: cebus_item_insert
      Src: /src/haproxy/src/tools.c:7270,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/tools.c:7271,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:7275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7279
      start: 7247
    functionDepth: 3
    functionLinenumber: 7247
    functionLinenumberEnd: 7279
    functionName: copy_file_name
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_RDUNLOCK
    - strlen
    - free
    - malloc
    - cebus_item_insert
    - cebus_item_lookup
    - memcpy
    - HA_RWLOCK_RDLOCK
    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:7286,1
    - Dst: cebus_item_first
      Src: /src/haproxy/src/tools.c:7288,1
    - Dst: cebus_item_delete
      Src: /src/haproxy/src/tools.c:7289,1
    - Dst: free
      Src: /src/haproxy/src/tools.c:7290,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/tools.c:7293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7294
      start: 7282
    functionDepth: 3
    functionLinenumber: 7282
    functionLinenumberEnd: 7294
    functionName: free_all_file_names
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - cebus_item_delete
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - cebus_item_first
    - free
    linkageType: ''
    returnType: void
    signature: void free_all_file_names()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7308,1
    - Dst: snprintf
      Src: /src/haproxy/src/tools.c:7310,1
    - Dst: memprintf
      Src: /src/haproxy/src/tools.c:7313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - path
    - base
    - dst
    - err
    argTypes:
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7320
      start: 7302
    functionDepth: 5
    functionLinenumber: 7302
    functionLinenumberEnd: 7320
    functionName: path_base
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - snprintf
    - memprintf
    linkageType: ''
    returnType: int
    signature: int path_base(const char *path, const char *base, char *dst, char **err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/tools.c:7332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - array
    argTypes:
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7336
      start: 7326
    functionDepth: 3
    functionLinenumber: 7326
    functionLinenumberEnd: 7336
    functionName: ha_freearray
    functionSourceFile: /src/haproxy/src/tools.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ha_freearray(char ***array)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_chash.c:39,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_chash.c:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - root
    - node
    argTypes:
    - struct eb_root*
    - struct eb32_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: chash_skip_node
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - eb32_next
    - eb32_first
    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:57,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_chash.c:58,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: chash_dequeue_srv
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - chash_skip_node
    - eb32_delete
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - node_index
    argTypes:
    - struct server*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/lb_chash.c:93,1
    - Dst: full_hash
      Src: /src/haproxy/src/lb_chash.c:104,1
    - Dst: full_hash
      Src: /src/haproxy/src/lb_chash.c:114,1
    - Dst: XXH32
      Src: /src/haproxy/src/lb_chash.c:117,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 131
    functionName: chash_compute_server_key
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - server_get_inetaddr
    - full_hash
    - XXH32
    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:142,1
    - Dst: chash_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:146,1
    - Dst: chash_skip_node
      Src: /src/haproxy/src/lb_chash.c:156,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/lb_chash.c:157,1
    - Dst: chash_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:168,1
    - Dst: realloc
      Src: /src/haproxy/src/lb_chash.c:170,1
    - Dst: memset
      Src: /src/haproxy/src/lb_chash.c:175,1
    - Dst: chash_compute_node_key
      Src: /src/haproxy/src/lb_chash.c:179,1
    - Dst: chash_skip_node
      Src: /src/haproxy/src/lb_chash.c:188,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/lb_chash.c:189,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 192
    functionName: chash_queue_dequeue_srv
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - chash_compute_node_key
    - chash_dequeue_srv
    - memset
    - chash_compute_server_key
    - eb32_delete
    - realloc
    - eb32_insert
    - chash_skip_node
    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:206,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_chash.c:209,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_chash.c:211,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_chash.c:214,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_chash.c:231,1
    - Dst: chash_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:239,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_chash.c:243,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:245,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_chash.c:247,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 248
    functionName: chash_set_server_status_down
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - chash_dequeue_srv
    - srv_currently_usable
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - update_backend_weight
    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:263,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_chash.c:266,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_chash.c:268,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_chash.c:271,1
    - Dst: chash_queue_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:301,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_chash.c:305,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:307,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_chash.c:309,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 259
    functionDepth: 4
    functionLinenumber: 259
    functionLinenumberEnd: 310
    functionName: chash_set_server_status_up
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - chash_queue_dequeue_srv
    - update_backend_weight
    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:330,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/lb_chash.c:331,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:334,1
    - Dst: chash_set_server_status_up
      Src: /src/haproxy/src/lb_chash.c:338,1
    - Dst: chash_set_server_status_down
      Src: /src/haproxy/src/lb_chash.c:342,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/lb_chash.c:346,1
    - Dst: chash_queue_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:349,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_chash.c:356,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:357,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_chash.c:359,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 317
    functionDepth: 5
    functionLinenumber: 317
    functionLinenumberEnd: 360
    functionName: chash_update_server_weight
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - srv_currently_usable
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_willbe_usable
    - chash_set_server_status_up
    - chash_set_server_status_down
    - srv_lb_commit_status
    - chash_queue_dequeue_srv
    - update_backend_weight
    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: 388
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 388
    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:409,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/lb_chash.c:425,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_chash.c:427,1
    - Dst: eb32_prev
      Src: /src/haproxy/src/lb_chash.c:433,1
    - Dst: eb32_last
      Src: /src/haproxy/src/lb_chash.c:435,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_chash.c:437,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_chash.c:438,1
    - Dst: chash_server_is_eligible
      Src: /src/haproxy/src/lb_chash.c:456,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_chash.c:459,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_chash.c:463,1
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_chash.c:464,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_chash.c:466,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_chash.c:470,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_chash.c:474,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: 476
      start: 400
    functionDepth: 2
    functionLinenumber: 400
    functionLinenumberEnd: 476
    functionName: chash_get_server_hash
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 8
    functionsReached:
    - eb32_lookup_ge
    - srv_dynamic_maxconn
    - chash_server_is_eligible
    - eb32_first
    - eb32_next
    - eb32_entry
    - HA_RWLOCK_RDUNLOCK
    - eb32_last
    - eb32_prev
    - 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:492,1
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_chash.c:511,1
    - Dst: eb32_first
      Src: /src/haproxy/src/lb_chash.c:513,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_chash.c:534,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_chash.c:535,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/lb_chash.c:551,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - p
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 553
    functionName: chash_get_next_server
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 1
    functionsReached:
    - srv_dynamic_maxconn
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - eb32_next
    - eb32_first
    - eb32_entry
    linkageType: ''
    returnType: struct server
    signature: struct server *chash_get_next_server(struct proxy *p, struct server
      *srvtoavoid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/lb_chash.c:576,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_chash.c:579,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_chash.c:580,1
    - Dst: calloc
      Src: /src/haproxy/src/lb_chash.c:591,1
    - Dst: ha_alert
      Src: /src/haproxy/src/lb_chash.c:594,1
    - Dst: chash_compute_server_key
      Src: /src/haproxy/src/lb_chash.c:597,1
    - Dst: chash_compute_node_key
      Src: /src/haproxy/src/lb_chash.c:600,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_chash.c:603,1
    - Dst: chash_queue_dequeue_srv
      Src: /src/haproxy/src/lb_chash.c:604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 561
    functionDepth: 4
    functionLinenumber: 561
    functionLinenumberEnd: 607
    functionName: chash_init_server_tree
    functionSourceFile: /src/haproxy/src/lb_chash.c
    functionUses: 0
    functionsReached:
    - chash_compute_node_key
    - recount_servers
    - srv_currently_usable
    - srv_lb_commit_status
    - chash_compute_server_key
    - chash_queue_dequeue_srv
    - ha_alert
    - update_backend_weight
    - calloc
    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: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 4
    argNames:
    - in
    - ilen
    - out
    - olen
    argTypes:
    - char*
    - size_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 187
    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: 257
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 257
    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: 275
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 275
    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: 303
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 303
    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
    - EVP_CIPHER_key_length
    - chunk_appendf
    - QUIC_AEAD_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:
    - quic_pktns_tx_pkts_release
    - pool_free
    - LIST_DEL_INIT
    - qc_release_pktns_frms
    - quic_free_arngs
    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:
    - pool_free
    - quic_free_ncbuf
    - qc_stream_desc_release
    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:
    - pool_free
    - TRACE_ENTER
    - qc_stream_desc_new
    - TRACE_ERROR
    - pool_alloc
    - TRACE_LEAVE
    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:
    - pool_free
    - ha_free
    - TRACE_ENTER
    - quic_cstream_free
    - TRACE_LEAVE
    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:
    - LIST_INSERT
    - pool_free
    - quic_cstream_new
    - quic_tls_ctx_reset
    - TRACE_ENTER
    - LIST_APPEND
    - pool_alloc
    - LIST_INIT
    - malloc
    - quic_conn_enc_level_uninit
    - TRACE_LEAVE
    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
    - BUG_ON
    - quic_conn_enc_level_init
    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: 0
    functionsReached:
    - quic_conn_enc_level_uninit
    - pool_free
    - quic_tls_ctx_secs_free
    - LIST_DEL_INIT
    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_free
    - EVP_PKEY_CTX_set1_hkdf_salt
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_hkdf_mode
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_derive
    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_free
    - EVP_PKEY_derive
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_hkdf_mode
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_add1_hkdf_info
    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_free
    - EVP_PKEY_derive
    - EVP_PKEY_CTX_set1_hkdf_salt
    - EVP_PKEY_derive_init
    - EVP_PKEY_CTX_hkdf_mode
    - EVP_PKEY_CTX_set1_hkdf_key
    - EVP_PKEY_CTX_set_hkdf_md
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_CTX_add1_hkdf_info
    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
    - EVP_CIPHER_key_length
    - QUIC_AEAD_key_length
    - quic_hkdf_expand_label
    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_CIPHER_nid
    - EVP_CIPHER_CTX_ctrl
    - EVP_AEAD_key_length
    - EVP_AEAD_CTX_new
    - QUIC_AEAD_CTX_free
    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_EncryptInit_ex
    - EVP_CIPHER_CTX_free
    - 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_EncryptFinal_ex
    - EVP_EncryptInit_ex
    - memcpy
    - EVP_EncryptUpdate
    - CRYPTO_chacha_20
    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_DecryptInit_ex
    - EVP_CIPHER_CTX_free
    - 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_DecryptInit_ex
    - EVP_DecryptUpdate
    - EVP_DecryptFinal_ex
    - memcpy
    - CRYPTO_chacha_20
    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_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_CIPHER_nid
    - EVP_CIPHER_CTX_ctrl
    - EVP_AEAD_key_length
    - EVP_AEAD_CTX_new
    - QUIC_AEAD_CTX_free
    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_AEAD_max_overhead
    - EVP_EncryptInit_ex
    - EVP_AEAD_CTX_seal
    - EVP_CIPHER_nid
    - EVP_CIPHER_CTX_ctrl
    - EVP_EncryptUpdate
    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_DecryptInit_ex
    - EVP_CIPHER_nid
    - EVP_DecryptUpdate
    - EVP_CIPHER_CTX_ctrl
    - EVP_AEAD_CTX_open
    - EVP_DecryptFinal_ex
    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_DecryptInit_ex
    - EVP_CIPHER_nid
    - EVP_DecryptUpdate
    - EVP_CIPHER_CTX_ctrl
    - EVP_AEAD_CTX_open
    - EVP_DecryptFinal_ex
    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_extract
    - quic_hkdf_expand
    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_EncryptFinal_ex
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_aes_128_gcm
    - EVP_CIPHER_CTX_ctrl
    - EVP_EncryptUpdate
    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_derive_keys
    - TRACE_PRINTF
    - quic_tls_sec_update
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_PROTO
    - quic_tls_tx_ctx_init
    - QUIC_AEAD_CTX_free
    - quic_tls_rx_ctx_init
    - TRACE_LEAVE
    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_LEAVE
    - TRACE_ENTER
    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:
    - qc_new_isecs
    - quic_tls_ctx_free
    - quic_tls_ctx_reset
    - TRACE_ENTER
    - pool_alloc
    - TRACE_LEAVE
    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
    - ultoad2
    - fprintf
    - open_trace
    - rdtsc
    - fwrite
    - gettimeofday
    - emit_hex
    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
    - fputc
    - fflush
    - va_start
    - fprintf
    - open_trace
    - vfprintf
    - rdtsc
    - format
    - gettimeofday
    - va_end
    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
    - prune_acl
    - list_for_each_entry_safe
    - free
    - free_acl_cond
    - 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:
    - spoe_release_group
    - LIST_DELETE
    - list_for_each_entry_safe
    - spoe_release_message
    - free
    - deinit_proxy
    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: 3
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: generate_pseudo_uuid
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - ha_generate_uuid_v4
    - my_strndup
    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_wakeup
    - applet_need_more_data
    - applet_set_eoi
    - appctx_finalize_startup
    - SPOE_APPCTX
    - stream_set_backend
    - appctx_strm
    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:
    - pool_free
    - task_wakeup
    - SPOE_APPCTX
    - appctx_strm
    - applet_set_error
    linkageType: ''
    returnType: void
    signature: void spoe_release_appctx(struct appctx *appctx)
  - BBCount: 3
    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: b_data
      Src: /src/haproxy/src/flt_spoe.c:470,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_spoe.c:475,1
    - Dst: b_xfer
      Src: /src/haproxy/src/flt_spoe.c:480,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_spoe.c:480,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_spoe.c:483,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 488
    functionName: spoe_handle_receiving_frame_appctx
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - applet_need_more_data
    - b_xfer
    - b_data
    - task_wakeup
    - BUG_ON
    - SPOE_APPCTX
    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:493,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/flt_spoe.c:496,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/flt_spoe.c:499,1
    - Dst: unlikely
      Src: /src/haproxy/src/flt_spoe.c:502,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/flt_spoe.c:502,1
    - Dst: b_reset
      Src: /src/haproxy/src/flt_spoe.c:503,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/flt_spoe.c:504,1
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:512,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/flt_spoe.c:514,1
    - Dst: spoe_handle_receiving_frame_appctx
      Src: /src/haproxy/src/flt_spoe.c:516,1
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:521,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/flt_spoe.c:522,1
    - Dst: SPOE_APPCTX
      Src: /src/haproxy/src/flt_spoe.c:523,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/flt_spoe.c:525,1
    - Dst: b_reset
      Src: /src/haproxy/src/flt_spoe.c:531,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/flt_spoe.c:532,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/flt_spoe.c:537,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 539
    functionName: spoe_handle_appctx
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - applet_fl_clr
    - appctx_get_buf
    - unlikely
    - SPOE_APPCTX
    - spoe_handle_receiving_frame_appctx
    - applet_have_no_more_data
    - applet_set_eos
    - b_reset
    - applet_set_error
    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:557,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/flt_spoe.c:562,1
    - Dst: appctx_new_here
      Src: /src/haproxy/src/flt_spoe.c:572,1
    - Dst: appctx_init
      Src: /src/haproxy/src/flt_spoe.c:576,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/flt_spoe.c:579,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/flt_spoe.c:584,1
    - Dst: pool_free
      Src: /src/haproxy/src/flt_spoe.c:586,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:588,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct spoe_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 592
    functionName: spoe_create_appctx
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - FLT_CONF
    - pool_free
    - pool_zalloc
    - appctx_init
    - send_log
    - appctx_new_here
    - appctx_free_on_early_error
    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:607,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/flt_spoe.c:617,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:625,1
    - Dst: spoe_encode_buffer
      Src: /src/haproxy/src/flt_spoe.c:627,1
    - Dst: sample_process
      Src: /src/haproxy/src/flt_spoe.c:631,1
    - Dst: spoe_encode_data
      Src: /src/haproxy/src/flt_spoe.c:632,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: 642
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 642
    functionName: spoe_encode_message
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - list_for_each_entry
    - spoe_encode_data
    - sample_process
    - 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:649,1
    - Dst: b_head
      Src: /src/haproxy/src/flt_spoe.c:654,1
    - Dst: spoe_encode_message
      Src: /src/haproxy/src/flt_spoe.c:663,1
    - Dst: spoe_encode_message
      Src: /src/haproxy/src/flt_spoe.c:670,1
    - Dst: b_set_data
      Src: /src/haproxy/src/flt_spoe.c:682,1
    - Dst: b_head
      Src: /src/haproxy/src/flt_spoe.c:682,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: 692
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 692
    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:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 665
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 114
    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:670,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 672
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 114
    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:702,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:706,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:707,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/flt_spoe.c:710,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/flt_spoe.c:712,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: 713
      start: 699
    functionDepth: 5
    functionLinenumber: 699
    functionLinenumberEnd: 713
    functionName: spoe_set_var
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - memset
    - FLT_CONF
    - vars_set_by_name
    - snprintf
    - vars_set_by_name_ifexist
    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:719,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:723,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:724,1
    - Dst: vars_unset_by_name_ifexist
      Src: /src/haproxy/src/flt_spoe.c:726,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: 727
      start: 716
    functionDepth: 4
    functionLinenumber: 716
    functionLinenumberEnd: 727
    functionName: spoe_unset_var
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - snprintf
    - vars_unset_by_name_ifexist
    - memset
    - FLT_CONF
    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:754,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:756,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:757,1
    - Dst: spoe_decode_data
      Src: /src/haproxy/src/flt_spoe.c:759,1
    - Dst: spoe_unset_var
      Src: /src/haproxy/src/flt_spoe.c:763,1
    - Dst: spoe_set_var
      Src: /src/haproxy/src/flt_spoe.c:765,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: 772
      start: 730
    functionDepth: 6
    functionLinenumber: 730
    functionLinenumberEnd: 772
    functionName: spoe_decode_action_set_var
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - memset
    - smp_set_owner
    - spoe_decode_buffer
    - spoe_unset_var
    - spoe_decode_data
    - 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:798,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:800,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:801,1
    - Dst: spoe_unset_var
      Src: /src/haproxy/src/flt_spoe.c:803,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: 810
      start: 774
    functionDepth: 5
    functionLinenumber: 774
    functionLinenumberEnd: 810
    functionName: spoe_decode_action_unset_var
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - smp_set_owner
    - memset
    - spoe_decode_buffer
    - spoe_unset_var
    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:819,1
    - Dst: b_data
      Src: /src/haproxy/src/flt_spoe.c:820,1
    - Dst: spoe_decode_action_set_var
      Src: /src/haproxy/src/flt_spoe.c:828,1
    - Dst: spoe_decode_action_unset_var
      Src: /src/haproxy/src/flt_spoe.c:834,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: 847
      start: 814
    functionDepth: 7
    functionLinenumber: 814
    functionLinenumberEnd: 847
    functionName: spoe_process_actions
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - b_data
    - spoe_decode_action_set_var
    - 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: 868
      start: 852
    functionDepth: 0
    functionLinenumber: 852
    functionLinenumberEnd: 868
    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:873,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:880,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:881,1
    - Dst: spoe_set_var
      Src: /src/haproxy/src/flt_spoe.c:885,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:886,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:892,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:893,1
    - Dst: spoe_set_var
      Src: /src/haproxy/src/flt_spoe.c:897,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:898,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: 900
      start: 869
    functionDepth: 6
    functionLinenumber: 869
    functionLinenumberEnd: 900
    functionName: spoe_update_stats
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - memset
    - strlen
    - spoe_update_stat_time
    - smp_set_owner
    - spoe_set_var
    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:908,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/flt_spoe.c:909,1
    - Dst: spoe_set_var
      Src: /src/haproxy/src/flt_spoe.c:913,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:914,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: 920
      start: 902
    functionDepth: 6
    functionLinenumber: 902
    functionLinenumberEnd: 920
    functionName: spoe_handle_processing_error
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - strlen
    - smp_set_owner
    - memset
    - spoe_set_var
    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: 940
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 940
    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:948,1
    - Dst: spoe_ctx_err_to_spop_err
      Src: /src/haproxy/src/flt_spoe.c:951,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/flt_spoe.c:953,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/flt_spoe.c:954,1
    - Dst: spoe_release_buffer
      Src: /src/haproxy/src/flt_spoe.c:965,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - agent
    - ctx
    argTypes:
    - struct spoe_agent*
    - struct spoe_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 968
    functionName: spoe_stop_processing
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - _HA_ATOMIC_INC
    - spoe_ctx_err_to_spop_err
    - spoe_release_buffer
    - appctx_strm
    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:978,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/flt_spoe.c:985,1
    - Dst: tick_isset
      Src: /src/haproxy/src/flt_spoe.c:991,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/flt_spoe.c:992,1
    - Dst: spoe_start_processing
      Src: /src/haproxy/src/flt_spoe.c:998,1
    - Dst: spoe_acquire_buffer
      Src: /src/haproxy/src/flt_spoe.c:1009,1
    - Dst: spoe_encode_messages
      Src: /src/haproxy/src/flt_spoe.c:1011,1
    - Dst: spoe_create_appctx
      Src: /src/haproxy/src/flt_spoe.c:1016,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/flt_spoe.c:1026,1
    - Dst: spoe_process_actions
      Src: /src/haproxy/src/flt_spoe.c:1037,1
    - Dst: spoe_stop_processing
      Src: /src/haproxy/src/flt_spoe.c:1050,1
    - Dst: spoe_update_stats
      Src: /src/haproxy/src/flt_spoe.c:1054,1
    - Dst: spoe_stop_processing
      Src: /src/haproxy/src/flt_spoe.c:1055,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/flt_spoe.c:1057,1
    - Dst: spoe_handle_processing_error
      Src: /src/haproxy/src/flt_spoe.c:1058,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: 1062
      start: 975
    functionDepth: 8
    functionLinenumber: 975
    functionLinenumberEnd: 1062
    functionName: spoe_process_messages
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_start_processing
    - appctx_wakeup
    - spoe_acquire_buffer
    - FLT_CONF
    - tick_is_expired
    - spoe_process_actions
    - tick_isset
    - spoe_update_stats
    - tick_add_ifset
    - _HA_ATOMIC_INC
    - spoe_create_appctx
    - spoe_stop_processing
    - spoe_encode_messages
    - 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:1069,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1073,1
    - Dst: spoe_process_messages
      Src: /src/haproxy/src/flt_spoe.c:1076,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:1079,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: 1085
      start: 1066
    functionDepth: 9
    functionLinenumber: 1066
    functionLinenumberEnd: 1085
    functionName: spoe_process_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - spoe_process_messages
    - FLT_CONF
    - send_log
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_spoe.c:1092,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1098,1
    - Dst: spoe_process_messages
      Src: /src/haproxy/src/flt_spoe.c:1101,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:1104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - s
    - ctx
    - ev
    argTypes:
    - struct stream*
    - struct spoe_context*
    - enum spoe_event
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1089
    functionDepth: 9
    functionLinenumber: 1089
    functionLinenumberEnd: 1110
    functionName: spoe_process_event
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - spoe_process_messages
    - FLT_CONF
    - send_log
    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:1120,1
    - Dst: b_alloc
      Src: /src/haproxy/src/flt_spoe.c:1122,1
    - Dst: b_requeue
      Src: /src/haproxy/src/flt_spoe.c:1125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - buffer_wait
    argTypes:
    - struct buffer*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1127
    functionName: spoe_acquire_buffer
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 1
    functionsReached:
    - b_alloc
    - b_requeue
    - 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:1131,1
    - Dst: b_free
      Src: /src/haproxy/src/flt_spoe.c:1135,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/flt_spoe.c:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - buffer_wait
    argTypes:
    - struct buffer*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1138
    functionName: spoe_release_buffer
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 1
    functionsReached:
    - offer_buffers
    - b_free
    - b_dequeue
    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:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct spoe_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1144
    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:1148,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/flt_spoe.c:1151,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1179
    functionName: spoe_create_context
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - FLT_CONF
    - pool_zalloc
    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:1183,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/flt_spoe.c:1191,1
    - Dst: spoe_stop_processing
      Src: /src/haproxy/src/flt_spoe.c:1193,1
    - Dst: pool_free
      Src: /src/haproxy/src/flt_spoe.c:1194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - filter
    argTypes:
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1181
    functionDepth: 2
    functionLinenumber: 1181
    functionLinenumberEnd: 1196
    functionName: spoe_destroy_context
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - pool_free
    - spoe_stop_processing
    - FLT_CONF
    - _HA_ATOMIC_INC
    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: 1206
      start: 1198
    functionDepth: 0
    functionLinenumber: 1198
    functionLinenumberEnd: 1206
    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:1228,1
    - Dst: generate_pseudo_uuid
      Src: /src/haproxy/src/flt_spoe.c:1230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1213
    functionDepth: 4
    functionLinenumber: 1213
    functionLinenumberEnd: 1236
    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:1246,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:1247,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1239
    functionDepth: 5
    functionLinenumber: 1239
    functionLinenumberEnd: 1251
    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:1263,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1274,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1275,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/flt_spoe.c:1281,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1283,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1294,1
    - Dst: postresolve_logger_list
      Src: /src/haproxy/src/flt_spoe.c:1301,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_spoe.c:1304,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1255
    functionDepth: 1
    functionLinenumber: 1255
    functionLinenumberEnd: 1307
    functionName: spoe_check
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - postresolve_logger_list
    - list_for_each_entry
    - strcmp
    - ha_free
    - proxy_be_by_name
    - ha_alert
    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:1316,1
    - Dst: spoe_create_context
      Src: /src/haproxy/src/flt_spoe.c:1320,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:1321,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1327,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1330,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1333,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1336,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1339,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:1342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1314
    functionDepth: 2
    functionLinenumber: 1314
    functionLinenumberEnd: 1346
    functionName: spoe_start
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_create_context
    - LIST_ISEMPTY
    - FLT_CONF
    - send_log
    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:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1350
    functionDepth: 3
    functionLinenumber: 1350
    functionLinenumberEnd: 1353
    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:1363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1365
    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:1386,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1398,1
    - Dst: channel_dont_read
      Src: /src/haproxy/src/flt_spoe.c:1400,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/flt_spoe.c:1401,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: 1409
      start: 1368
    functionDepth: 10
    functionLinenumber: 1368
    functionLinenumberEnd: 1409
    functionName: spoe_start_analyze
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - channel_dont_read
    - channel_dont_close
    - spoe_process_event
    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:1423,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1426,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1429,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1432,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1435,1
    - Dst: spoe_process_event
      Src: /src/haproxy/src/flt_spoe.c:1438,1
    - Dst: channel_dont_read
      Src: /src/haproxy/src/flt_spoe.c:1444,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/flt_spoe.c:1445,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: 1448
      start: 1412
    functionDepth: 10
    functionLinenumber: 1412
    functionLinenumberEnd: 1448
    functionName: spoe_chn_pre_analyze
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - channel_dont_read
    - channel_dont_close
    - spoe_process_event
    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:1456,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: 1460
      start: 1451
    functionDepth: 1
    functionLinenumber: 1451
    functionLinenumberEnd: 1460
    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:1490,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1493,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1495,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1500,1
    - Dst: invalid_char
      Src: /src/haproxy/src/flt_spoe.c:1505,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1507,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1514,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1519,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1520,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1525,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1527,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1539,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1540,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1546,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1547,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1548,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1550,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1552,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1557,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:1559,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1560,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1562,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:1567,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1568,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1569,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1576,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1577,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1581,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:1582,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1586,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:1591,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1592,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1593,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1600,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1601,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1605,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:1606,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1610,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1616,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1621,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1623,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1627,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1631,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1634,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1640,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/flt_spoe.c:1645,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1647,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1653,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1659,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/flt_spoe.c:1664,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1666,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1668,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1674,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1675,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1683,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1684,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1689,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1690,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1695,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1696,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1707,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1713,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1717,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1723,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:1727,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1728,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1735,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1737,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1738,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1742,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1743,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1747,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1751,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1757,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:1761,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1762,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1769,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1771,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1775,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1781,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:1785,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1786,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1793,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1795,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1799,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1805,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:1809,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1810,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1817,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1820,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1826,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1828,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1835,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1837,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1844,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1846,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1851,1
    - Dst: atol
      Src: /src/haproxy/src/flt_spoe.c:1853,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1856,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1862,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1864,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1869,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1873,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1877,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1886,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1887,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1891,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:1892,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1893,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:1897,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1901,1
    - Dst: parse_logger
      Src: /src/haproxy/src/flt_spoe.c:1904,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1905,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1911,1
    CyclomaticComplexity: 160
    EdgeCount: 160
    ICount: 404
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1483
    functionDepth: 3
    functionLinenumber: 1483
    functionLinenumberEnd: 1918
    functionName: cfg_parse_spoe_agent
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - strdup
    - parse_logger
    - isalnum
    - list_for_each_entry
    - strcmp
    - invalid_char
    - parse_time_err
    - LIST_APPEND
    - free
    - LIST_INIT
    - atol
    - ha_alert
    - MS_TO_TICKS
    - alertif_too_many_args
    - calloc
    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:1927,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1930,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1932,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:1937,1
    - Dst: invalid_char
      Src: /src/haproxy/src/flt_spoe.c:1942,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1944,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:1950,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1951,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1952,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1960,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1961,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1966,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1967,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1969,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:1970,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:1971,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1973,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:1978,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:1979,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1980,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:1987,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1988,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:1992,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:1993,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:1998,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 74
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 2005
    functionName: cfg_parse_spoe_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - strcmp
    - invalid_char
    - LIST_APPEND
    - LIST_INIT
    - ha_alert
    - alertif_too_many_args
    - calloc
    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:2017,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2020,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2022,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/flt_spoe.c:2027,1
    - Dst: invalid_char
      Src: /src/haproxy/src/flt_spoe.c:2032,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2034,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2040,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2041,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2042,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:2050,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2051,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2056,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:2057,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2059,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2062,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2063,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2064,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2065,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2066,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2068,1
    - Dst: strchr
      Src: /src/haproxy/src/flt_spoe.c:2075,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:2078,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2079,1
    - Dst: my_strndup
      Src: /src/haproxy/src/flt_spoe.c:2090,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/flt_spoe.c:2094,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2098,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2100,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2101,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2105,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2111,1
    - Dst: invalid_char
      Src: /src/haproxy/src/flt_spoe.c:2112,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2114,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/flt_spoe.c:2119,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2120,1
    - Dst: parse_acl
      Src: /src/haproxy/src/flt_spoe.c:2126,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2127,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2133,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2135,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2142,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2144,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2147,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2149,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2151,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2154,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2156,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2158,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2161,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2167,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2167,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/flt_spoe.c:2170,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2174,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2183,1
    - Dst: ha_alert
      Src: /src/haproxy/src/flt_spoe.c:2191,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2197,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 161
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2199
      start: 2007
    functionDepth: 6
    functionLinenumber: 2007
    functionLinenumberEnd: 2199
    functionName: cfg_parse_spoe_message
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - strdup
    - strchr
    - list_for_each_entry
    - strcmp
    - strcasecmp
    - invalid_char
    - sample_parse_expr
    - LIST_APPEND
    - strlen
    - free
    - LIST_INIT
    - build_acl_cond
    - ha_alert
    - parse_acl
    - alertif_too_many_args
    - calloc
    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:2216,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2217,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2218,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2219,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2220,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2221,1
    - Dst: calloc
      Src: /src/haproxy/src/flt_spoe.c:2225,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2227,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2233,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2235,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2242,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2244,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2252,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2257,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2262,1
    - Dst: cfg_backup_sections
      Src: /src/haproxy/src/flt_spoe.c:2263,1
    - Dst: cfg_register_section
      Src: /src/haproxy/src/flt_spoe.c:2264,1
    - Dst: cfg_register_section
      Src: /src/haproxy/src/flt_spoe.c:2265,1
    - Dst: cfg_register_section
      Src: /src/haproxy/src/flt_spoe.c:2266,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/flt_spoe.c:2269,1
    - Dst: load_cfg_in_mem
      Src: /src/haproxy/src/flt_spoe.c:2280,1
    - Dst: parse_cfg
      Src: /src/haproxy/src/flt_spoe.c:2284,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_spoe.c:2285,1
    - Dst: cfg_unregister_sections
      Src: /src/haproxy/src/flt_spoe.c:2288,1
    - Dst: cfg_restore_sections
      Src: /src/haproxy/src/flt_spoe.c:2289,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2292,1
    - Dst: strerror
      Src: /src/haproxy/src/flt_spoe.c:2293,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2297,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2303,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2307,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_spoe.c:2312,1
    - Dst: isalnum
      Src: /src/haproxy/src/flt_spoe.c:2321,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2322,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2329,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:2335,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/flt_spoe.c:2342,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2343,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:2352,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/flt_spoe.c:2359,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2360,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:2369,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/flt_spoe.c:2376,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2377,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:2383,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/flt_spoe.c:2383,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_spoe.c:2384,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2391,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2392,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2396,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_spoe.c:2406,1
    - Dst: ha_warning
      Src: /src/haproxy/src/flt_spoe.c:2411,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2466,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2468,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/flt_spoe.c:2472,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/flt_spoe.c:2473,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2479,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2483,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2492,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2493,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2494,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2496,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2497,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2501,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2510,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2511,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2512,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2513,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2515,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2527,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2528,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2532,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/flt_spoe.c:2545,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2547,1
    - Dst: memset
      Src: /src/haproxy/src/flt_spoe.c:2553,1
    - Dst: setup_new_proxy
      Src: /src/haproxy/src/flt_spoe.c:2554,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2555,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2563,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2564,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/flt_spoe.c:2565,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2568,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2569,1
    - Dst: spoe_release_placeholder
      Src: /src/haproxy/src/flt_spoe.c:2570,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2572,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2573,1
    - Dst: spoe_release_placeholder
      Src: /src/haproxy/src/flt_spoe.c:2574,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2576,1
    - Dst: snprintf
      Src: /src/haproxy/src/flt_spoe.c:2579,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/flt_spoe.c:2586,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2587,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2592,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2593,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2594,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2596,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2597,1
    - Dst: spoe_release_group
      Src: /src/haproxy/src/flt_spoe.c:2598,1
    - Dst: ha_free
      Src: /src/haproxy/src/flt_spoe.c:2607,1
    - Dst: spoe_release_agent
      Src: /src/haproxy/src/flt_spoe.c:2608,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2609,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2610,1
    - Dst: spoe_release_placeholder
      Src: /src/haproxy/src/flt_spoe.c:2611,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2613,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2614,1
    - Dst: spoe_release_placeholder
      Src: /src/haproxy/src/flt_spoe.c:2615,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2617,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2618,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2619,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2620,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2622,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2623,1
    - Dst: spoe_release_group
      Src: /src/haproxy/src/flt_spoe.c:2624,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2626,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2627,1
    - Dst: spoe_release_message
      Src: /src/haproxy/src/flt_spoe.c:2628,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/flt_spoe.c:2630,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/flt_spoe.c:2631,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2632,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2634,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: 2636
      start: 2202
    functionDepth: 5
    functionLinenumber: 2202
    functionLinenumberEnd: 2636
    functionName: parse_spoe_flt
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - cfg_restore_sections
    - sample_ckp_names
    - parse_cfg
    - spoe_release_message
    - cfg_unregister_sections
    - spoe_release_placeholder
    - strerror
    - setup_new_proxy
    - spoe_release_agent
    - cfg_register_section
    - ha_warning
    - spoe_release_group
    - strcmp
    - snprintf
    - list_for_each_entry_safe
    - ha_free
    - LIST_INIT
    - cfg_backup_sections
    - LIST_ISEMPTY
    - calloc
    - strdup
    - isalnum
    - memset
    - BUG_ON
    - LIST_APPEND
    - load_cfg_in_mem
    - memprintf
    - vars_check_arg
    - list_for_each_entry
    - LIST_DELETE
    - free
    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:2652,1
    - Dst: send_log
      Src: /src/haproxy/src/flt_spoe.c:2672,1
    - Dst: spoe_process_group
      Src: /src/haproxy/src/flt_spoe.c:2677,1
    - Dst: spoe_stop_processing
      Src: /src/haproxy/src/flt_spoe.c:2683,1
    - Dst: spoe_handle_processing_error
      Src: /src/haproxy/src/flt_spoe.c:2684,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: 2691
      start: 2643
    functionDepth: 10
    functionLinenumber: 2643
    functionLinenumberEnd: 2691
    functionName: spoe_send_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_process_group
    - list_for_each_entry
    - send_log
    - spoe_stop_processing
    - 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:2725,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2733,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2741,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2747,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2753,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2755,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2759,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2766,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/flt_spoe.c:2769,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2771,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/flt_spoe.c:2775,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/flt_spoe.c:2776,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2782,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2783,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2791,1
    - Dst: free
      Src: /src/haproxy/src/flt_spoe.c:2792,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: 2794
      start: 2707
    functionDepth: 5
    functionLinenumber: 2707
    functionLinenumberEnd: 2794
    functionName: check_send_spoe_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - sample_ckp_names
    - strcmp
    - free
    - memprintf
    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:2808,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_spoe.c:2808,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_spoe.c:2809,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2812,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2813,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: 2821
      start: 2804
    functionDepth: 5
    functionLinenumber: 2804
    functionLinenumberEnd: 2821
    functionName: parse_send_spoe_group
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    - strcmp
    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:2833,1
    - Dst: spoe_appctx_agent
      Src: /src/haproxy/src/flt_spoe.c:2837,1
    - Dst: strlen
      Src: /src/haproxy/src/flt_spoe.c:2843,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: 2847
      start: 2825
    functionDepth: 2
    functionLinenumber: 2825
    functionLinenumberEnd: 2847
    functionName: smp_fetch_spoe_engine_id
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - spoe_appctx_agent
    - strlen
    - sc_appctx
    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:2859,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/flt_spoe.c:2860,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_spoe.c:2862,1
    - Dst: _parse_srv_expr
      Src: /src/haproxy/src/flt_spoe.c:2867,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2876
      start: 2849
    functionDepth: 1
    functionLinenumber: 2849
    functionLinenumberEnd: 2876
    functionName: spoe_postcheck_spop_proxy
    functionSourceFile: /src/haproxy/src/flt_spoe.c
    functionUses: 0
    functionsReached:
    - strdup
    - release_sample_expr
    - ha_free
    - _parse_srv_expr
    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:
    - ha_warning
    - LIST_ISEMPTY
    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:
    - ha_warning
    - LIST_ISEMPTY
    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:
    - ha_warning
    - LIST_ISEMPTY
    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:
    - ha_warning
    - LIST_ISEMPTY
    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:
    - ha_warning
    - LIST_ISEMPTY
    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:
    - ha_warning
    - LIST_ISEMPTY
    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:
    - ha_warning
    - LIST_ISEMPTY
    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:
    - ha_warning
    - LIST_ISEMPTY
    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:
    - ha_warning
    - LIST_ISEMPTY
    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_misplaced_redirect
    - warnif_rule_after_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_misplaced_http_req
    - warnif_rule_after_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_misplaced_monitor
    - warnif_rule_after_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_rule_after_tcp_conn
    - warnif_misplaced_tcp_req_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:
    - alertif_too_many_args_idx
    - warnifnotcap
    - ha_alert
    - strcmp
    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: 550
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/cfgparse-listen.c:314,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:318,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:324,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:326,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:328,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:330,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:340,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse-listen.c:346,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:348,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:355,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:358,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:362,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:363,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:363,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:368,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:369,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:372,1
    - Dst: log_forward_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:383,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:385,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:386,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:399,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:401,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:404,1
    - Dst: proxy_unref_or_destroy_defaults
      Src: /src/haproxy/src/cfgparse-listen.c:418,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:423,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:425,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:429,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:431,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:431,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:437,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:447,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:448,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:451,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:451,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:457,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:458,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse-listen.c:464,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:466,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:476,1
    - Dst: parse_new_proxy
      Src: /src/haproxy/src/cfgparse-listen.c:482,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:491,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:492,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:493,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:494,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:495,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:496,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:497,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:517,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:522,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:530,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:535,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:536,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:537,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:542,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:543,1
    - Dst: proxy_ref_defaults
      Src: /src/haproxy/src/cfgparse-listen.c:550,1
    - Dst: proxy_ref_defaults
      Src: /src/haproxy/src/cfgparse-listen.c:561,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:565,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:582,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:592,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse-listen.c:593,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:600,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse-listen.c:601,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:608,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse-listen.c:609,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:616,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:621,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:625,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:629,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/cfgparse-listen.c:635,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse-listen.c:635,1
    - Dst: str2listener
      Src: /src/haproxy/src/cfgparse-listen.c:648,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cfgparse-listen.c:650,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:651,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:654,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse-listen.c:660,1
    - Dst: bind_parse_args_list
      Src: /src/haproxy/src/cfgparse-listen.c:666,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:669,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:670,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:674,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:675,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:678,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:682,1
    - Dst: istfree
      Src: /src/haproxy/src/cfgparse-listen.c:688,1
    - Dst: istdup
      Src: /src/haproxy/src/cfgparse-listen.c:689,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-listen.c:689,1
    - Dst: isttest
      Src: /src/haproxy/src/cfgparse-listen.c:690,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:695,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:696,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:699,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:700,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:701,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:702,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:703,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:704,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:709,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:714,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:718,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:724,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:728,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:734,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:738,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/cfgparse-listen.c:744,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:746,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:747,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:748,1
    - Dst: proxy_index_id
      Src: /src/haproxy/src/cfgparse-listen.c:752,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:754,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:759,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:766,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:772,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:774,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-listen.c:779,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-listen.c:781,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:784,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:785,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:789,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:790,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:794,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:795,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:798,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:799,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:800,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse-listen.c:805,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:807,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:813,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:814,1
    - Dst: parse_acl
      Src: /src/haproxy/src/cfgparse-listen.c:821,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:822,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:828,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:830,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:834,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:839,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:840,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:842,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:845,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:849,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:857,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:858,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:859,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:862,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:866,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:869,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:872,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:875,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:878,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:881,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:884,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:887,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:890,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:893,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:895,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse-listen.c:901,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:903,1
    - Dst: invalid_domainchar
      Src: /src/haproxy/src/cfgparse-listen.c:909,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:911,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:918,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-listen.c:924,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:931,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:936,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-listen.c:942,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:944,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:950,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:956,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:964,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:969,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-listen.c:976,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:978,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:984,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:990,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:998,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1000,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1004,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1007,1
    - Dst: iscntrl
      Src: /src/haproxy/src/cfgparse-listen.c:1014,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1015,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1024,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-listen.c:1026,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1034,1
    - Dst: POWEROF2
      Src: /src/haproxy/src/cfgparse-listen.c:1041,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1042,1
    - Dst: POWEROF2
      Src: /src/haproxy/src/cfgparse-listen.c:1047,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1048,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1054,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1059,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1061,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1067,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1069,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1074,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1075,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1079,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1081,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1086,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1087,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1091,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1093,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1098,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1099,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1103,1
    - Dst: get_log_level
      Src: /src/haproxy/src/cfgparse-listen.c:1104,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1106,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1112,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1114,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1119,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1120,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1125,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1133,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1135,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-listen.c:1141,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse-listen.c:1148,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:1150,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1154,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1160,1
    - Dst: my_strndup
      Src: /src/haproxy/src/cfgparse-listen.c:1161,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1167,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1168,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1171,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1174,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1181,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1187,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1188,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1192,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1193,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1195,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1198,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1201,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1205,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1211,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1212,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:1214,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1217,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1219,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1220,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1222,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1227,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1228,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1231,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-listen.c:1236,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1238,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1239,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1242,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1244,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:1249,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1253,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1258,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1259,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1262,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:1263,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1266,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1266,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1270,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:1275,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1278,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1279,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1285,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1289,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1292,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:1293,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-listen.c:1294,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1298,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1299,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1306,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1306,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1310,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:1315,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1318,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1319,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1324,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1328,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1331,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:1332,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-listen.c:1333,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1337,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1338,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1346,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1352,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1353,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:1356,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1360,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:1365,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1367,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1371,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1372,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:1377,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1378,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1379,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1380,1
    - Dst: parse_http_req_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1385,1
    - Dst: warnif_misplaced_http_req
      Src: /src/haproxy/src/cfgparse-listen.c:1392,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1398,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1400,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1402,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1406,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1407,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:1412,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1413,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1414,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1415,1
    - Dst: parse_http_res_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1420,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1431,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1433,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1435,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:1438,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1439,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:1444,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1445,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1446,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1447,1
    - Dst: parse_http_after_res_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1452,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1463,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1465,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1467,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1469,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1473,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:1478,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:1479,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:1480,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-listen.c:1481,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1482,1
    - Dst: istfree
      Src: /src/haproxy/src/cfgparse-listen.c:1489,1
    - Dst: istdup
      Src: /src/haproxy/src/cfgparse-listen.c:1490,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-listen.c:1490,1
    - Dst: isttest
      Src: /src/haproxy/src/cfgparse-listen.c:1491,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/src/cfgparse-listen.c:1493,1
    - Dst: istptr
      Src: /src/haproxy/src/cfgparse-listen.c:1493,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1495,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1496,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1501,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1506,1
    - Dst: http_parse_redirect_rule
      Src: /src/haproxy/src/cfgparse-listen.c:1511,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1512,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse-listen.c:1513,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1518,1
    - Dst: warnif_misplaced_redirect
      Src: /src/haproxy/src/cfgparse-listen.c:1519,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1525,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1527,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1531,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1536,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1540,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1545,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1545,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1546,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1547,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1553,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1556,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1562,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1566,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1570,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1573,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1575,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1576,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1579,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1580,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1582,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1586,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1591,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1595,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1600,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1600,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1601,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1607,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1608,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1614,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1616,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1620,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1624,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1627,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1629,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1630,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1633,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1634,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1637,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1638,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1642,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1647,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1650,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1650,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1651,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1657,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1658,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1667,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1669,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1671,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1675,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1680,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1681,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1683,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1687,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/cfgparse-listen.c:1693,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1695,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse-listen.c:1697,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1704,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1706,1
    - Dst: parse_stick_table
      Src: /src/haproxy/src/cfgparse-listen.c:1712,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:1715,1
    - Dst: stktable_store_name
      Src: /src/haproxy/src/cfgparse-listen.c:1722,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1732,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1740,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:1745,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1751,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1752,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1756,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1760,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1764,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1769,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1775,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/cfgparse-listen.c:1781,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1783,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1790,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/cfgparse-listen.c:1791,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1793,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1798,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/cfgparse-listen.c:1799,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1801,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1809,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1814,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1814,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1815,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1816,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1819,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1824,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:1827,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1831,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1833,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1835,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1837,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:1843,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1844,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1846,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1848,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1850,1
    - Dst: stats_uri_auth_drop
      Src: /src/haproxy/src/cfgparse-listen.c:1853,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1859,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1864,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/cfgparse-listen.c:1869,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1872,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1872,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1873,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1878,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1879,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1889,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:1891,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1893,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse-listen.c:1897,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1898,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1899,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1901,1
    - Dst: stats_set_uri
      Src: /src/haproxy/src/cfgparse-listen.c:1904,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1906,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1908,1
    - Dst: stats_set_realm
      Src: /src/haproxy/src/cfgparse-listen.c:1911,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1913,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-listen.c:1916,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1918,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1924,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1930,1
    - Dst: stats_set_refresh
      Src: /src/haproxy/src/cfgparse-listen.c:1934,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1936,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1941,1
    - Dst: stats_check_init_uri_auth
      Src: /src/haproxy/src/cfgparse-listen.c:1946,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse-listen.c:1949,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse-listen.c:1950,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:1951,1
    - Dst: parse_http_req_cond
      Src: /src/haproxy/src/cfgparse-listen.c:1956,1
    - Dst: warnif_cond_conflicts
      Src: /src/haproxy/src/cfgparse-listen.c:1967,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:1968,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1970,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1972,1
    - Dst: stats_add_auth
      Src: /src/haproxy/src/cfgparse-listen.c:1975,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1977,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:1979,1
    - Dst: stats_add_scope
      Src: /src/haproxy/src/cfgparse-listen.c:1982,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1984,1
    - Dst: stats_check_init_uri_auth
      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: stats_set_flag
      Src: /src/haproxy/src/cfgparse-listen.c:1991,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1993,1
    - Dst: stats_set_flag
      Src: /src/haproxy/src/cfgparse-listen.c:1994,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:1996,1
    - Dst: isupper
      Src: /src/haproxy/src/cfgparse-listen.c:2004,1
    - Dst: islower
      Src: /src/haproxy/src/cfgparse-listen.c:2004,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse-listen.c:2005,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2010,1
    - Dst: stats_set_node
      Src: /src/haproxy/src/cfgparse-listen.c:2018,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2020,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:2028,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:2030,1
    - Dst: unlikely
      Src: /src/haproxy/src/cfgparse-listen.c:2031,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2032,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-listen.c:2038,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-listen.c:2040,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2044,1
    - Dst: stats_set_desc
      Src: /src/haproxy/src/cfgparse-listen.c:2047,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:2048,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:2051,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2055,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2061,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2063,1
    - Dst: cfg_parse_listen_match_option
      Src: /src/haproxy/src/cfgparse-listen.c:2070,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2073,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2075,1
    - Dst: cfg_parse_listen_match_option
      Src: /src/haproxy/src/cfgparse-listen.c:2089,1
    - Dst: cfg_parse_listen_match_option
      Src: /src/haproxy/src/cfgparse-listen.c:2097,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2109,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2110,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2115,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2116,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2129,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2130,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2143,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2144,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2157,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2158,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2163,1
    - Dst: proxy_http_parse_7239
      Src: /src/haproxy/src/cfgparse-listen.c:2165,1
    - Dst: http_ext_7239_clean
      Src: /src/haproxy/src/cfgparse-listen.c:2170,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2179,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2180,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2193,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2208,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2209,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2216,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2222,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2228,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2232,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2236,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2255,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2258,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2260,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2264,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2269,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2275,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2278,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2282,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2301,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2305,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2307,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2312,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2317,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2335,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2338,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2340,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2344,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2349,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2351,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2354,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2362,1
    - Dst: proxy_parse_httpchk_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2363,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2367,1
    - Dst: proxy_parse_ssl_hello_chk_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2368,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2372,1
    - Dst: proxy_parse_smtpchk_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2373,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2377,1
    - Dst: proxy_parse_pgsql_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2378,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2382,1
    - Dst: proxy_parse_redis_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2383,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2387,1
    - Dst: proxy_parse_mysql_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2388,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2392,1
    - Dst: proxy_parse_ldap_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2393,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2397,1
    - Dst: proxy_parse_spop_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2398,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2402,1
    - Dst: proxy_parse_tcp_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2403,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2407,1
    - Dst: proxy_parse_external_check_opt
      Src: /src/haproxy/src/cfgparse-listen.c:2408,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2412,1
    - Dst: proxy_http_parse_xff
      Src: /src/haproxy/src/cfgparse-listen.c:2413,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2417,1
    - Dst: proxy_http_parse_xot
      Src: /src/haproxy/src/cfgparse-listen.c:2418,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2422,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2423,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2427,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2434,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2436,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2438,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2441,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2447,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2448,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2451,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2455,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2459,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2464,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2468,1
    - Dst: proxy_find_best_option
      Src: /src/haproxy/src/cfgparse-listen.c:2491,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2494,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2496,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2503,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2504,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2508,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:2512,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2513,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2517,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2520,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2520,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2521,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2526,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2527,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2530,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2534,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2537,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2541,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2544,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2547,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2550,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/cfgparse-listen.c:2554,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2558,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2563,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2565,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2570,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2573,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2575,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2575,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2576,1
    - Dst: warnif_misplaced_monitor
      Src: /src/haproxy/src/cfgparse-listen.c:2582,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/cfgparse-listen.c:2583,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2584,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse-listen.c:2589,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2592,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2598,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2601,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2604,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2613,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2614,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2618,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2622,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2623,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2626,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2627,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2631,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2635,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2636,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2639,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2640,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2644,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2648,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2649,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2652,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2653,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2658,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2663,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2667,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse-listen.c:2670,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2674,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-listen.c:2679,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2683,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2697,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2698,1
    - Dst: backend_parse_balance
      Src: /src/haproxy/src/cfgparse-listen.c:2701,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2702,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2707,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2716,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2719,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2722,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2725,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2726,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2731,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2746,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2749,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2752,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2755,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2758,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2762,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2768,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2772,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2778,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2780,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-listen.c:2784,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2786,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2791,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2793,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2798,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2802,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2803,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2806,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2810,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2813,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2817,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2819,1
    - Dst: istfree
      Src: /src/haproxy/src/cfgparse-listen.c:2824,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-listen.c:2825,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2828,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2830,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2835,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2852,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2855,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2856,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2859,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2866,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2871,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2873,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2878,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2883,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2884,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2887,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2894,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2899,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2901,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2906,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2911,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse-listen.c:2914,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2915,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2919,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:2926,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2931,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2933,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/cfgparse-listen.c:2937,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/cfgparse-listen.c:2938,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:2938,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:2938,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:2938,1
    - Dst: b_orig
      Src: /src/haproxy/src/cfgparse-listen.c:2939,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/cfgparse-listen.c:2940,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2941,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2946,1
    - Dst: parse_logger
      Src: /src/haproxy/src/cfgparse-listen.c:2947,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2948,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2953,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/cfgparse-listen.c:2958,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2962,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-listen.c:2970,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse-listen.c:2973,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2977,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2988,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:2991,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:2997,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3000,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-listen.c:3003,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse-listen.c:3007,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse-listen.c:3011,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:3016,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-listen.c:3017,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-listen.c:3021,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse-listen.c:3026,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse-listen.c:3033,1
    - Dst: strl2ic
      Src: /src/haproxy/src/cfgparse-listen.c:3035,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3039,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse-listen.c:3048,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3052,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3063,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3072,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3075,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-listen.c:3080,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-listen.c:3081,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-listen.c:3084,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3087,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3095,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3101,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3102,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3107,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3107,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3108,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3114,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3115,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3120,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3121,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3126,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3127,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3131,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3132,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3137,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3138,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3143,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3144,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3149,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3150,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3155,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3156,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3161,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3162,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3166,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3167,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3172,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3173,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3178,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3179,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3184,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3184,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3185,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3190,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3191,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3196,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3197,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3202,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3203,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3208,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3209,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3214,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3215,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3220,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3221,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse-listen.c:3231,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-listen.c:3235,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/cfgparse-listen.c:3236,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3237,1
    - Dst: parse
      Src: /src/haproxy/src/cfgparse-listen.c:3243,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3245,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-listen.c:3250,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/cfgparse-listen.c:3259,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3261,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-listen.c:3263,1
    CyclomaticComplexity: 965
    EdgeCount: 965
    ICount: 2553
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3266
      start: 299
    functionDepth: 7
    functionLinenumber: 299
    functionLinenumberEnd: 3266
    functionName: cfg_parse_listen
    functionSourceFile: /src/haproxy/src/cfgparse-listen.c
    functionUses: 0
    functionsReached:
    - proxy_ref_defaults
    - LIST_PREV
    - stats_set_uri
    - proxy_parse_spop_check_opt
    - free_acl_cond
    - proxy_type_str
    - parse
    - lf_expr_deinit
    - bind_conf_alloc
    - warnif_misplaced_http_req
    - strcmp
    - snprintf
    - ha_free
    - parse_http_res_cond
    - isupper
    - calloc
    - strdup
    - proxy_http_parse_7239
    - POWEROF2
    - proxy_cap_str
    - bind_parse_args_list
    - ha_alert
    - proxy_parse_pgsql_check_opt
    - proxy_parse_mysql_check_opt
    - parse_stick_table
    - b_orig
    - proxy_http_parse_xot
    - invalid_char
    - proxy_parse_smtpchk_opt
    - free
    - chunk_initlen
    - isttest
    - proxy_find_best_option
    - check_kw_experimental
    - proxy_find_by_name
    - log_forward_by_name
    - istfree
    - stktable_find_by_name
    - stats_set_node
    - proxy_parse_ssl_hello_chk_opt
    - strlen
    - LIST_INIT
    - LIST_ISEMPTY
    - str2listener
    - warnif_misplaced_redirect
    - proxy_parse_httpchk_opt
    - stats_set_realm
    - ist2bin_lc
    - istdup
    - proxy_find_by_id
    - parse_time_err
    - invalid_domainchar
    - xprt_get
    - indent_msg
    - stats_add_auth
    - alertif_too_many_args_idx
    - sample_src_names
    - parse_acl
    - ha_warning
    - proxy_index_id
    - http_parse_redirect_rule
    - proxy_be_by_name
    - cfg_find_best_match
    - proxy_fe_by_name
    - strncmp
    - proxy_parse_redis_check_opt
    - create_pool
    - stktable_store_name
    - warnif_cond_conflicts
    - proxy_parse_external_check_opt
    - isdigit
    - iscntrl
    - backend_parse_balance
    - alertif_too_many_args
    - parse_http_req_cond
    - memcpy
    - parse_logger
    - unlikely
    - sample_parse_expr
    - atoi
    - proxy_http_parse_xff
    - warnif_misplaced_monitor
    - stats_set_flag
    - my_strndup
    - proxy_parse_tcp_check_opt
    - warnifnotcap
    - stats_set_desc
    - chunk_destroy
    - proxy_unref_or_destroy_defaults
    - atol
    - stats_check_init_uri_auth
    - isspace
    - stats_uri_auth_drop
    - strcasecmp
    - LIST_APPEND
    - get_log_level
    - memprintf
    - proxy_parse_ldap_check_opt
    - strl2ic
    - str2sa_range
    - cfg_parse_listen_match_option
    - parse_new_proxy
    - ist
    - stats_set_refresh
    - islower
    - stats_add_scope
    - list_for_each_entry
    - parse_http_after_res_cond
    - istptr
    - http_ext_7239_clean
    - build_acl_cond
    - parse_server
    - strchr
    - alloc_new_proxy
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - sedesc
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 115
    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:122,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:123,1
    - Dst: sedesc_init
      Src: /src/haproxy/src/stconn.c:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 128
    functionName: sedesc_new
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 4
    functionsReached:
    - sedesc_init
    - pool_alloc
    - unlikely
    linkageType: ''
    returnType: struct sedesc
    signature: struct sedesc *sedesc_new()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: put_pipe
      Src: /src/haproxy/src/stconn.c:137,1
    - Dst: pool_free
      Src: /src/haproxy/src/stconn.c:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sedesc
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 3
    functionLinenumber: 133
    functionLinenumberEnd: 140
    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:153,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/stconn.c:154,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:157,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:160,1
    - Dst: se_opposite
      Src: /src/haproxy/src/stconn.c:165,1
    - Dst: struct mux_ops*::shut
      Src: /src/haproxy/src/stconn.c:168,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:170,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:173,1
    - Dst: se_opposite
      Src: /src/haproxy/src/stconn.c:178,1
    - Dst: struct appctx*::applet::shut
      Src: /src/haproxy/src/stconn.c:181,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:183,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:186,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:186,1
    - Dst: appctx_shut
      Src: /src/haproxy/src/stconn.c:187,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 31
    argCount: 2
    argNames:
    - sedesc
    - mode
    argTypes:
    - struct sedesc*
    - enum se_shut_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 189
    functionName: se_shutdown
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - struct appctx*::applet::shut
    - se_fl_set
    - se_fl_test
    - struct mux_ops*::shut
    - se_opposite
    - appctx_shut
    - se_report_term_evt
    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:200,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:202,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/stconn.c:221,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:222,1
    - Dst: pool_free
      Src: /src/haproxy/src/stconn.c:231,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 1
    argNames:
    - sedesc
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 233
    functionName: sc_new
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 6
    functionsReached:
    - pool_free
    - pool_alloc
    - sedesc_new
    - unlikely
    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:243,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:244,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:246,1
    - Dst: stream_new
      Src: /src/haproxy/src/stconn.c:246,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/stconn.c:250,1
    - Dst: pool_free
      Src: /src/haproxy/src/stconn.c:252,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:253,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/stconn.c:256,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: 258
      start: 239
    functionDepth: 4
    functionLinenumber: 239
    functionLinenumberEnd: 258
    functionName: sc_new_from_endp
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 4
    functionsReached:
    - stream_new
    - unlikely
    - se_fl_set
    - pool_free
    - sc_new
    - se_fl_clr
    - sedesc_free
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *sc_new_from_endp(struct sedesc *sd, struct session *sess,
      struct buffer *input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_new
      Src: /src/haproxy/src/stconn.c:268,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:269,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - flags
    argTypes:
    - struct stream*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 4
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: sc_new_from_strm
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_new
    - unlikely
    - sc_ep_set
    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:286,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:287,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - check
    - flags
    argTypes:
    - struct check*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 282
    functionDepth: 4
    functionLinenumber: 282
    functionLinenumberEnd: 294
    functionName: sc_new_from_check
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_new
    - unlikely
    - sc_ep_set
    linkageType: ''
    returnType: struct stconn
    signature: struct stconn *sc_new_from_check(struct check *check, unsigned int
      flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_free
      Src: /src/haproxy/src/stconn.c:301,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/stconn.c:302,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:304,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:304,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/stconn.c:305,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/stconn.c:307,1
    - Dst: pool_free
      Src: /src/haproxy/src/stconn.c:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 4
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: sc_free
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 6
    functionsReached:
    - tasklet_free
    - sc_ep_test
    - sockaddr_free
    - pool_free
    - BUG_ON
    - 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:319,1
    - Dst: sc_free
      Src: /src/haproxy/src/stconn.c:320,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - scp
    argTypes:
    - struct stconn**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 5
    functionLinenumber: 315
    functionLinenumberEnd: 323
    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:335,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/stconn.c:337,1
    - Dst: xref_create
      Src: /src/haproxy/src/stconn.c:346,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:346,1
    - Dst: sc_check
      Src: /src/haproxy/src/stconn.c:348,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/stconn.c:350,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:363,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/stconn.c:364,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - sc
    - sd
    - ctx
    argTypes:
    - struct stconn*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 368
    functionName: sc_attach_mux
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 6
    functionsReached:
    - xref_create
    - tasklet_new
    - se_fl_set
    - sc_opposite
    - sc_strm
    - sc_check
    - 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:378,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:379,1
    - Dst: sc_strm
      Src: /src/haproxy/src/stconn.c:380,1
    - Dst: xref_create
      Src: /src/haproxy/src/stconn.c:382,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - sc
    - appctx
    argTypes:
    - struct stconn*
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 386
    functionName: sc_attach_applet
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - xref_create
    - sc_ep_clr
    - sc_opposite
    - sc_ep_set
    - sc_strm
    linkageType: ''
    returnType: int
    signature: int sc_attach_applet(struct stconn *sc, struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:396,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:397,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:398,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/stconn.c:399,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:408,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - sc
    - strm
    argTypes:
    - struct stconn*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 415
    functionName: sc_attach_strm
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - tasklet_new
    - sc_ep_report_read_activity
    - sc_ep_test
    - sc_ep_clr
    linkageType: ''
    returnType: int
    signature: int sc_attach_strm(struct stconn *sc, struct stream *strm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: xref_get_peer_and_lock
      Src: /src/haproxy/src/stconn.c:434,1
    - Dst: xref_disconnect
      Src: /src/haproxy/src/stconn.c:436,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:438,1
    - Dst: __sc_conn
      Src: /src/haproxy/src/stconn.c:439,1
    - Dst: struct connection*::mux::unsubscribe
      Src: /src/haproxy/src/stconn.c:444,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/stconn.c:445,1
    - Dst: struct connection*::mux::detach
      Src: /src/haproxy/src/stconn.c:448,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/stconn.c:454,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/stconn.c:455,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/stconn.c:457,1
    - Dst: conn_free
      Src: /src/haproxy/src/stconn.c:458,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:461,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:462,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:464,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:467,1
    - Dst: appctx_free
      Src: /src/haproxy/src/stconn.c:468,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:476,1
    - Dst: sc_strm
      Src: /src/haproxy/src/stconn.c:483,1
    - Dst: sc_free_cond
      Src: /src/haproxy/src/stconn.c:487,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 1
    argNames:
    - scp
    argTypes:
    - struct stconn**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 424
    functionDepth: 6
    functionLinenumber: 424
    functionLinenumberEnd: 488
    functionName: sc_detach_endp
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - struct connection*::destroy_cb
    - sc_ep_test
    - se_fl_set
    - struct connection*::mux::detach
    - conn_full_close
    - se_shutdown
    - sc_ep_set
    - conn_stop_tracking
    - __sc_conn
    - __sc_appctx
    - xref_get_peer_and_lock
    - conn_free
    - appctx_free
    - sc_strm
    - xref_disconnect
    - struct connection*::mux::unsubscribe
    - sc_free_cond
    linkageType: ''
    returnType: void
    signature: void sc_detach_endp(struct stconn **scp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sockaddr_free
      Src: /src/haproxy/src/stconn.c:502,1
    - Dst: sockaddr_free
      Src: /src/haproxy/src/stconn.c:503,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/stconn.c:505,1
    - Dst: sc_free_cond
      Src: /src/haproxy/src/stconn.c:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - scp
    argTypes:
    - struct stconn**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 493
    functionDepth: 6
    functionLinenumber: 493
    functionLinenumberEnd: 509
    functionName: sc_detach_app
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - tasklet_free
    - sc_free_cond
    - sockaddr_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:516,1
    - Dst: sc_detach_app
      Src: /src/haproxy/src/stconn.c:517,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/stconn.c:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 7
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: sc_destroy
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_detach_endp
    - BUG_ON_HOT
    - sc_detach_app
    linkageType: ''
    returnType: void
    signature: void sc_destroy(struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:529,1
    - Dst: __sc_endp
      Src: /src/haproxy/src/stconn.c:531,1
    - Dst: sc_detach_endp
      Src: /src/haproxy/src/stconn.c:537,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/stconn.c:543,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:544,1
    - Dst: sc_detach_endp
      Src: /src/haproxy/src/stconn.c:548,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:549,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:550,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:553,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 525
    functionDepth: 7
    functionLinenumber: 525
    functionLinenumberEnd: 555
    functionName: sc_reset_endp
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 3
    functionsReached:
    - sc_detach_endp
    - unlikely
    - __sc_endp
    - sedesc_new
    - BUG_ON
    - sc_ep_set
    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:568,1
    - Dst: sc_attach_applet
      Src: /src/haproxy/src/stconn.c:571,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/stconn.c:572,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:575,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/stconn.c:576,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - sc
    - app
    argTypes:
    - struct stconn*
    - struct applet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 581
    functionName: sc_applet_create
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - appctx_wakeup
    - applet_need_more_data
    - __sc_strm
    - sc_attach_applet
    - appctx_new_here
    - appctx_free_on_early_error
    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:594,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:594,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:594,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:594,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:594,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stconn.c:599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 588
    functionDepth: 1
    functionLinenumber: 588
    functionLinenumberEnd: 605
    functionName: sc_cond_forward_shut
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - co_data
    - sc_schedule_shutdown
    - sc_opposite
    - sc_ic
    - sc_ep_have_ff_data
    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:612,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:613,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:613,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:614,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 615
    functionName: sc_is_fastfwd_supported
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_opposite
    - sc_ep_test
    - sc_ic
    linkageType: ''
    returnType: int
    signature: int sc_is_fastfwd_supported(struct stconn *sc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:625,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:633,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:639,1
    - Dst: sc_cond_forward_shut
      Src: /src/haproxy/src/stconn.c:641,1
    - Dst: sc_app_shut
      Src: /src/haproxy/src/stconn.c:642,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:646,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:646,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 647
    functionName: sc_app_abort
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_state_in
    - __sc_strm
    - task_wakeup
    - sc_ic
    - sc_cond_forward_shut
    - sc_strm_task
    - sc_app_shut
    linkageType: ''
    returnType: void
    signature: void sc_app_abort(struct stconn *sc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:658,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:659,1
    - Dst: sc_set_hcto
      Src: /src/haproxy/src/stconn.c:666,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:697,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:701,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:701,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 702
    functionName: sc_app_shut
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - __sc_strm
    - task_wakeup
    - sc_oc
    - sc_ic
    - sc_set_hcto
    - sc_strm_task
    linkageType: ''
    returnType: void
    signature: void sc_app_shut(struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:707,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:707,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:709,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:714,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 716
    functionName: sc_app_chk_rcv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_opposite
    - task_wakeup
    - sc_ep_have_ff_data
    - sc_need_room
    - sc_strm_task
    linkageType: ''
    returnType: void
    signature: void sc_app_chk_rcv(struct stconn *sc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:721,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:723,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:726,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:727,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:727,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:733,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:735,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:735,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 736
    functionName: sc_app_chk_snd
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - co_data
    - sc_ep_test
    - unlikely
    - sc_ep_clr
    - sc_oc
    - task_wakeup
    - sc_ep_have_ff_data
    - sc_strm_task
    linkageType: ''
    returnType: void
    signature: void sc_app_chk_snd(struct stconn *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:750,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:752,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:752,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:759,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:763,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:766,1
    - Dst: sc_cond_forward_shut
      Src: /src/haproxy/src/stconn.c:768,1
    - Dst: sc_app_shut_conn
      Src: /src/haproxy/src/stconn.c:769,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 748
    functionDepth: 3
    functionLinenumber: 748
    functionLinenumberEnd: 770
    functionName: sc_app_abort_conn
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - sc_state_in
    - __sc_strm
    - se_shutdown
    - BUG_ON
    - sc_ic
    - sc_cond_forward_shut
    - sc_app_shut_conn
    linkageType: ''
    returnType: void
    signature: void sc_app_abort_conn(struct stconn *sc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:782,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:783,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:785,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:785,1
    - Dst: sc_set_hcto
      Src: /src/haproxy/src/stconn.c:792,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:793,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:806,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:810,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:818,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:833,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 780
    functionDepth: 3
    functionLinenumber: 780
    functionLinenumberEnd: 834
    functionName: sc_app_shut_conn
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - sc_conn
    - sc_report_term_evt
    - __sc_strm
    - se_shutdown
    - sc_oc
    - BUG_ON
    - sc_ic
    - sc_set_hcto
    linkageType: ''
    returnType: void
    signature: void sc_app_shut_conn(struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:844,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:844,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:847,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/stconn.c:848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 842
    functionDepth: 1
    functionLinenumber: 842
    functionLinenumberEnd: 849
    functionName: sc_app_chk_rcv_conn
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - tasklet_wakeup
    - sc_state_in
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void sc_app_chk_rcv_conn(struct stconn *sc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:859,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:861,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:861,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:863,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:863,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:867,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:867,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:867,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:870,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:871,1
    - Dst: sc_conn_send
      Src: /src/haproxy/src/stconn.c:875,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:877,1
    - Dst: sc_is_conn_error
      Src: /src/haproxy/src/stconn.c:877,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:879,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:879,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:886,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:886,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:894,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stconn.c:895,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:900,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:906,1
    - Dst: likely
      Src: /src/haproxy/src/stconn.c:912,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:915,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:916,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:919,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:919,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 32
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 857
    functionDepth: 1
    functionLinenumber: 857
    functionLinenumberEnd: 921
    functionName: sc_app_chk_snd_conn
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - co_data
    - sc_state_in
    - sc_ep_test
    - unlikely
    - sc_ep_clr
    - sc_oc
    - task_wakeup
    - BUG_ON
    - sc_ep_set
    - sc_conn_send
    - sc_shutdown
    - sc_ep_have_ff_data
    - likely
    - sc_is_conn_error
    - sc_strm_task
    linkageType: ''
    returnType: void
    signature: void sc_app_chk_snd_conn(struct stconn *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:933,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:935,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stconn.c:935,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:944,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:948,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:951,1
    - Dst: sc_cond_forward_shut
      Src: /src/haproxy/src/stconn.c:953,1
    - Dst: sc_app_shut_applet
      Src: /src/haproxy/src/stconn.c:954,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 931
    functionDepth: 3
    functionLinenumber: 931
    functionLinenumberEnd: 955
    functionName: sc_app_abort_applet
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_state_in
    - __sc_strm
    - se_shutdown
    - BUG_ON
    - sc_ic
    - sc_app_shut_applet
    - sc_cond_forward_shut
    - sc_appctx
    linkageType: ''
    returnType: void
    signature: void sc_app_abort_applet(struct stconn *sc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:966,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:967,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:969,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stconn.c:969,1
    - Dst: sc_set_hcto
      Src: /src/haproxy/src/stconn.c:976,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:977,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:980,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:980,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:994,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:998,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:1007,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1017,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 964
    functionDepth: 3
    functionLinenumber: 964
    functionLinenumberEnd: 1018
    functionName: sc_app_shut_applet
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - appctx_wakeup
    - sc_report_term_evt
    - __sc_strm
    - se_shutdown
    - sc_oc
    - BUG_ON
    - sc_ic
    - __sc_appctx
    - sc_appctx
    - sc_set_hcto
    linkageType: ''
    returnType: void
    signature: void sc_app_shut_applet(struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1023,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stconn.c:1023,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1025,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1025,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:1027,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1029
    functionName: sc_app_chk_rcv_applet
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - sc_opposite
    - BUG_ON
    - __sc_appctx
    - sc_appctx
    - sc_ep_have_ff_data
    linkageType: ''
    returnType: void
    signature: void sc_app_chk_rcv_applet(struct stconn *sc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1034,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1036,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stconn.c:1036,1
    - Dst: unlikely
      Src: /src/haproxy/src/stconn.c:1038,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1042,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1045,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1045,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:1047,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:1047,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1049
    functionName: sc_app_chk_snd_applet
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - co_data
    - sc_ep_test
    - unlikely
    - sc_oc
    - BUG_ON
    - __sc_appctx
    - sc_appctx
    - sc_ep_have_ff_data
    linkageType: ''
    returnType: void
    signature: void sc_app_chk_snd_applet(struct stconn *sc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1063,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1072,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:1073,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1077,1
    - Dst: sc_will_read
      Src: /src/haproxy/src/stconn.c:1079,1
    - Dst: sc_chk_rcv
      Src: /src/haproxy/src/stconn.c:1081,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1082
    functionName: sc_update_rx
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - channel_recv_max
    - sc_wont_read
    - sc_chk_rcv
    - sc_ic
    - sc_have_room
    - sc_will_read
    linkageType: ''
    returnType: void
    signature: void sc_update_rx(struct stconn *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1095,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1101,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1103,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:1105,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:1111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1093
    functionDepth: 1
    functionLinenumber: 1093
    functionLinenumberEnd: 1112
    functionName: sc_update_tx
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - co_data
    - sc_ep_test
    - sc_ep_clr
    - sc_oc
    - sc_ep_set
    linkageType: ''
    returnType: void
    signature: void sc_update_tx(struct stconn *sc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1127,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1128,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1129,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:1130,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1133,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1133,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:1134,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stconn.c:1138,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:1145,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:1147,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1150,1
    - Dst: sc_will_read
      Src: /src/haproxy/src/stconn.c:1152,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1166,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1166,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1167,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1167,1
    - Dst: HAS_DATA_FILTERS
      Src: /src/haproxy/src/stconn.c:1168,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1168,1
    - Dst: channel_input_data
      Src: /src/haproxy/src/stconn.c:1168,1
    - Dst: channel_full
      Src: /src/haproxy/src/stconn.c:1169,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1169,1
    - Dst: channel_input_data
      Src: /src/haproxy/src/stconn.c:1169,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1172,1
    - Dst: sc_ep_ff_data
      Src: /src/haproxy/src/stconn.c:1172,1
    - Dst: sc_chk_snd
      Src: /src/haproxy/src/stconn.c:1173,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1174,1
    - Dst: sc_ep_ff_data
      Src: /src/haproxy/src/stconn.c:1174,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1179,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:1180,1
    - Dst: sc_will_read
      Src: /src/haproxy/src/stconn.c:1184,1
    - Dst: sc_chk_rcv
      Src: /src/haproxy/src/stconn.c:1186,1
    - Dst: sc_chk_rcv
      Src: /src/haproxy/src/stconn.c:1187,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1201,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1209,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:1210,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stconn.c:1216,1
    - Dst: tick_first
      Src: /src/haproxy/src/stconn.c:1217,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stconn.c:1217,1
    - Dst: tick_first
      Src: /src/haproxy/src/stconn.c:1218,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stconn.c:1218,1
    - Dst: tick_first
      Src: /src/haproxy/src/stconn.c:1219,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stconn.c:1219,1
    - Dst: tick_first
      Src: /src/haproxy/src/stconn.c:1220,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stconn.c:1220,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1222,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stconn.c:1222,1
    - Dst: task_queue
      Src: /src/haproxy/src/stconn.c:1223,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 37
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1229
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1229
    functionName: sc_notify
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - co_data
    - sc_wont_read
    - task_wakeup
    - sc_will_read
    - sc_ep_test
    - sc_ep_clr
    - tick_is_expired
    - sc_opposite
    - sc_have_room
    - sc_strm_task
    - channel_input_data
    - __sc_strm
    - channel_full
    - sc_ep_ff_data
    - sc_chk_rcv
    - sc_ic
    - BUG_ON
    - sc_ep_set
    - sc_ep_snd_ex
    - sc_ep_have_ff_data
    - channel_recv_max
    - sc_ep_rcv_ex
    - sc_oc
    - HAS_DATA_FILTERS
    - task_queue
    - sc_shutdown
    - tick_first
    - sc_chk_snd
    linkageType: ''
    returnType: void
    signature: void sc_notify(struct stconn *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1238,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1240,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:1240,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1246,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1247,1
    - Dst: sc_cond_forward_shut
      Src: /src/haproxy/src/stconn.c:1254,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:1265,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1272,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1236
    functionDepth: 3
    functionLinenumber: 1236
    functionLinenumberEnd: 1274
    functionName: sc_conn_eos
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - sc_report_term_evt
    - __sc_strm
    - se_shutdown
    - BUG_ON
    - sc_ic
    - sc_cond_forward_shut
    - sc_ep_report_read_activity
    linkageType: ''
    returnType: void
    signature: void sc_conn_eos(struct stconn *sc)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/stconn.c:1284,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1285,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/stconn.c:1297,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1314,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/stconn.c:1315,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1317,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:1322,1
    - Dst: channel_check_idletimer
      Src: /src/haproxy/src/stconn.c:1324,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stconn.c:1330,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1330,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1330,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stconn.c:1331,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1331,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1331,1
    - Dst: strm_sess
      Src: /src/haproxy/src/stconn.c:1332,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1332,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1332,1
    - Dst: sc_is_fastfwd_supported
      Src: /src/haproxy/src/stconn.c:1339,1
    - Dst: channel_data
      Src: /src/haproxy/src/stconn.c:1340,1
    - Dst: struct connection*::mux::fastfwd
      Src: /src/haproxy/src/stconn.c:1349,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1360,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1363,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:1364,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1366,1
    - Dst: sc_alloc_ibuf
      Src: /src/haproxy/src/stconn.c:1372,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1372,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stconn.c:1384,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1384,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1384,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stconn.c:1385,1
    - Dst: htx_is_not_empty
      Src: /src/haproxy/src/stconn.c:1387,1
    - Dst: htx_space_wraps
      Src: /src/haproxy/src/stconn.c:1387,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/stconn.c:1388,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1393,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/stconn.c:1394,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1394,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1402,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1404,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1408,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1415,1
    - Dst: struct connection*::mux::rcv_buf
      Src: /src/haproxy/src/stconn.c:1416,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1418,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1422,1
    - Dst: c_empty
      Src: /src/haproxy/src/stconn.c:1422,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:1424,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1424,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1429,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:1439,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1446,1
    - Dst: c_adv
      Src: /src/haproxy/src/stconn.c:1453,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1464,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1469,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1484,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:1493,1
    - Dst: se_have_no_more_data
      Src: /src/haproxy/src/stconn.c:1507,1
    - Dst: channel_check_xfer
      Src: /src/haproxy/src/stconn.c:1509,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1510,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1518,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1519,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1525,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stconn.c:1528,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1528,1
    - Dst: sc_conn_eos
      Src: /src/haproxy/src/stconn.c:1529,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1532,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1535,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1541,1
    - Dst: se_have_no_more_data
      Src: /src/haproxy/src/stconn.c:1547,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/stconn.c:1556,1
    - Dst: se_have_no_more_data
      Src: /src/haproxy/src/stconn.c:1557,1
    - Dst: se_have_no_more_data
      Src: /src/haproxy/src/stconn.c:1562,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stconn.c:1564,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stconn.c:1570,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 151
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1282
    functionDepth: 4
    functionLinenumber: 1282
    functionLinenumberEnd: 1575
    functionName: sc_conn_recv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - co_data
    - sc_wont_read
    - channel_data
    - strm_fe
    - channel_check_idletimer
    - htx_is_not_empty
    - __sc_conn
    - struct connection*::mux::fastfwd
    - se_have_no_more_data
    - struct connection*::mux::rcv_buf
    - struct connection*::mux::subscribe
    - sc_schedule_shutdown
    - sc_ep_test
    - sc_report_term_evt
    - sc_ep_clr
    - sc_opposite
    - c_adv
    - conn_xprt_ready
    - htx_defrag
    - strm_sess
    - sc_need_room
    - sc_waiting_room
    - channel_check_xfer
    - htxbuf
    - htx_space_wraps
    - __sc_strm
    - sc_ic
    - BUG_ON
    - sc_is_fastfwd_supported
    - c_empty
    - sc_ep_report_read_activity
    - proxy_abrt_close
    - sc_alloc_ibuf
    - channel_recv_max
    - IS_HTX_STRM
    - se_have_more_data
    - sc_conn_eos
    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:1586,1
    - Dst: sc_mux_ops
      Src: /src/haproxy/src/stconn.c:1589,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stconn.c:1595,1
    - Dst: sc_conn_recv
      Src: /src/haproxy/src/stconn.c:1598,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1584
    functionDepth: 5
    functionLinenumber: 1584
    functionLinenumberEnd: 1599
    functionName: sc_conn_sync_recv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn_recv
    - sc_mux_ops
    - sc_is_recv_allowed
    - sc_state_in
    linkageType: ''
    returnType: int
    signature: int sc_conn_sync_recv(struct stconn *sc)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/stconn.c:1610,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1611,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1612,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1613,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1617,1
    - Dst: sc_is_conn_error
      Src: /src/haproxy/src/stconn.c:1617,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1626,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1626,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1627,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1629,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1629,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/stconn.c:1630,1
    - Dst: sc_ep_fwd_kip
      Src: /src/haproxy/src/stconn.c:1646,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1648,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stconn.c:1654,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/stconn.c:1655,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stconn.c:1655,1
    - Dst: struct connection*::mux::resume_fastfwd
      Src: /src/haproxy/src/stconn.c:1664,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1668,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1675,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stconn.c:1695,1
    - Dst: htx_expect_more
      Src: /src/haproxy/src/stconn.c:1696,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stconn.c:1696,1
    - Dst: b_data
      Src: /src/haproxy/src/stconn.c:1705,1
    - Dst: b_alloc
      Src: /src/haproxy/src/stconn.c:1718,1
    - Dst: memcpy
      Src: /src/haproxy/src/stconn.c:1721,1
    - Dst: b_orig
      Src: /src/haproxy/src/stconn.c:1721,1
    - Dst: b_orig
      Src: /src/haproxy/src/stconn.c:1722,1
    - Dst: b_size
      Src: /src/haproxy/src/stconn.c:1723,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1724,1
    - Dst: b_add
      Src: /src/haproxy/src/stconn.c:1725,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1725,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1731,1
    - Dst: c_data
      Src: /src/haproxy/src/stconn.c:1731,1
    - Dst: struct connection*::mux::snd_buf
      Src: /src/haproxy/src/stconn.c:1734,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1734,1
    - Dst: c_rew
      Src: /src/haproxy/src/stconn.c:1737,1
    - Dst: c_realign_if_empty
      Src: /src/haproxy/src/stconn.c:1738,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1740,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:1757,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1757,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:1758,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1760,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1762,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1762,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1763,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1764,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1770,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1770,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/src/stconn.c:1772,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:1778,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/stconn.c:1784,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:1785,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/stconn.c:1786,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 89
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1790
    functionName: sc_conn_send
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - co_data
    - sc_state_in
    - __sc_conn
    - sc_is_conn_error
    - struct connection*::mux::subscribe
    - sc_ep_report_send_activity
    - sc_ep_test
    - sc_report_term_evt
    - b_data
    - sc_opposite
    - struct connection*::mux::snd_buf
    - sc_have_room
    - sc_ep_report_blocked_send
    - htxbuf
    - __sc_strm
    - htx_expect_more
    - c_realign_if_empty
    - BUG_ON
    - sc_ep_have_ff_data
    - b_size
    - c_data
    - b_orig
    - c_rew
    - IS_HTX_STRM
    - channel_recv_max
    - sc_oc
    - struct connection*::mux::resume_fastfwd
    - sc_ep_fwd_kip
    - b_alloc
    - memcpy
    - b_add
    linkageType: ''
    returnType: int
    signature: int sc_conn_send(struct stconn *sc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1798,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1805,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:1808,1
    - Dst: sc_mux_ops
      Src: /src/haproxy/src/stconn.c:1811,1
    - Dst: sc_conn_send
      Src: /src/haproxy/src/stconn.c:1814,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1796
    functionDepth: 2
    functionLinenumber: 1796
    functionLinenumberEnd: 1817
    functionName: sc_conn_sync_send
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - co_data
    - sc_state_in
    - sc_oc
    - sc_conn_send
    - sc_mux_ops
    linkageType: ''
    returnType: void
    signature: void sc_conn_sync_send(struct stconn *sc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/stconn.c:1828,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1829,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1830,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1832,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1835,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1835,1
    - Dst: sc_conn_send
      Src: /src/haproxy/src/stconn.c:1837,1
    - Dst: sc_is_conn_error
      Src: /src/haproxy/src/stconn.c:1853,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1863,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:1864,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stconn.c:1865,1
    - Dst: sc_strm_task
      Src: /src/haproxy/src/stconn.c:1865,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:1868,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1871,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1884,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1887,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1897,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stconn.c:1900,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:1900,1
    - Dst: sc_conn_eos
      Src: /src/haproxy/src/stconn.c:1901,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:1904,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1906,1
    - Dst: sc_notify
      Src: /src/haproxy/src/stconn.c:1914,1
    - Dst: stream_release_buffers
      Src: /src/haproxy/src/stconn.c:1915,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1915,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 37
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1917
      start: 1826
    functionDepth: 4
    functionLinenumber: 1826
    functionLinenumberEnd: 1917
    functionName: sc_conn_process
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - co_data
    - sc_state_in
    - task_wakeup
    - __sc_conn
    - sc_is_conn_error
    - sc_schedule_shutdown
    - sc_ep_test
    - sc_report_term_evt
    - sc_ep_clr
    - sc_opposite
    - stream_release_buffers
    - sc_conn_send
    - sc_strm_task
    - __sc_strm
    - BUG_ON
    - sc_ic
    - sc_ep_report_read_activity
    - sc_ep_have_ff_data
    - sc_notify
    - sc_oc
    - 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:1929,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:1932,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:1932,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:1932,1
    - Dst: sc_conn_send
      Src: /src/haproxy/src/stconn.c:1933,1
    - Dst: sc_conn_recv
      Src: /src/haproxy/src/stconn.c:1935,1
    - Dst: sc_conn_process
      Src: /src/haproxy/src/stconn.c:1937,1
    - Dst: stream_release_buffers
      Src: /src/haproxy/src/stconn.c:1939,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1939,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1924
    functionDepth: 5
    functionLinenumber: 1924
    functionLinenumberEnd: 1941
    functionName: sc_conn_io_cb
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - co_data
    - __sc_strm
    - sc_conn_recv
    - sc_oc
    - stream_release_buffers
    - sc_conn_send
    - sc_ep_have_ff_data
    - sc_conn_process
    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:1950,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:1952,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stconn.c:1952,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:1958,1
    - Dst: sc_report_term_evt
      Src: /src/haproxy/src/stconn.c:1959,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/stconn.c:1967,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:1970,1
    - Dst: sc_cond_forward_shut
      Src: /src/haproxy/src/stconn.c:1972,1
    - Dst: sc_app_shut_applet
      Src: /src/haproxy/src/stconn.c:1973,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1948
    functionDepth: 4
    functionLinenumber: 1948
    functionLinenumberEnd: 1974
    functionName: sc_applet_eos
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_report_term_evt
    - __sc_strm
    - se_shutdown
    - BUG_ON
    - sc_ic
    - sc_app_shut_applet
    - sc_cond_forward_shut
    - sc_ep_report_read_activity
    - sc_appctx
    linkageType: ''
    returnType: void
    signature: void sc_applet_eos(struct stconn *sc)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:1984,1
    - Dst: sc_ic
      Src: /src/haproxy/src/stconn.c:1985,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/stconn.c:1993,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:2001,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2005,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2007,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:2012,1
    - Dst: channel_check_idletimer
      Src: /src/haproxy/src/stconn.c:2014,1
    - Dst: sc_is_fastfwd_supported
      Src: /src/haproxy/src/stconn.c:2019,1
    - Dst: channel_data
      Src: /src/haproxy/src/stconn.c:2020,1
    - Dst: appctx_fastfwd
      Src: /src/haproxy/src/stconn.c:2029,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2040,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2043,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:2044,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2046,1
    - Dst: sc_alloc_ibuf
      Src: /src/haproxy/src/stconn.c:2051,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stconn.c:2063,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:2063,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2063,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stconn.c:2064,1
    - Dst: htx_is_not_empty
      Src: /src/haproxy/src/stconn.c:2066,1
    - Dst: htx_space_wraps
      Src: /src/haproxy/src/stconn.c:2066,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/stconn.c:2067,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2071,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:2078,1
    - Dst: appctx_rcv_buf
      Src: /src/haproxy/src/stconn.c:2079,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2080,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2084,1
    - Dst: c_empty
      Src: /src/haproxy/src/stconn.c:2084,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:2086,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:2086,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:2091,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/stconn.c:2100,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:2107,1
    - Dst: c_adv
      Src: /src/haproxy/src/stconn.c:2114,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2125,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:2130,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:2145,1
    - Dst: sc_wont_read
      Src: /src/haproxy/src/stconn.c:2154,1
    - Dst: channel_check_xfer
      Src: /src/haproxy/src/stconn.c:2160,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:2161,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2169,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:2170,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2176,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stconn.c:2179,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/stconn.c:2179,1
    - Dst: sc_applet_eos
      Src: /src/haproxy/src/stconn.c:2180,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2184,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stconn.c:2189,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 125
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2194
      start: 1982
    functionDepth: 5
    functionLinenumber: 1982
    functionLinenumberEnd: 2194
    functionName: sc_applet_recv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - co_data
    - sc_wont_read
    - sc_applet_eos
    - channel_data
    - channel_check_idletimer
    - htx_is_not_empty
    - __sc_appctx
    - sc_schedule_shutdown
    - sc_ep_test
    - sc_ep_clr
    - sc_opposite
    - c_adv
    - htx_defrag
    - sc_need_room
    - sc_waiting_room
    - channel_check_xfer
    - htxbuf
    - htx_space_wraps
    - __sc_strm
    - se_fl_test
    - sc_ic
    - BUG_ON
    - sc_is_fastfwd_supported
    - c_empty
    - sc_ep_report_read_activity
    - appctx_fastfwd
    - sc_alloc_ibuf
    - channel_recv_max
    - IS_HTX_STRM
    - se_have_more_data
    - appctx_rcv_buf
    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:2205,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2205,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:2208,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:2211,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stconn.c:2214,1
    - Dst: sc_applet_recv
      Src: /src/haproxy/src/stconn.c:2217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2203
    functionDepth: 6
    functionLinenumber: 2203
    functionLinenumberEnd: 2218
    functionName: sc_applet_sync_recv
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - sc_state_in
    - sc_is_recv_allowed
    - se_fl_test
    - sc_applet_recv
    - __sc_appctx
    - appctx_app_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:2227,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:2228,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2232,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2233,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2233,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2234,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/stconn.c:2235,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2239,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:2247,1
    - Dst: sc_ep_fwd_kip
      Src: /src/haproxy/src/stconn.c:2250,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2253,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stconn.c:2253,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2255,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2258,1
    - Dst: c_data
      Src: /src/haproxy/src/stconn.c:2258,1
    - Dst: appctx_snd_buf
      Src: /src/haproxy/src/stconn.c:2261,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2261,1
    - Dst: c_rew
      Src: /src/haproxy/src/stconn.c:2264,1
    - Dst: c_realign_if_empty
      Src: /src/haproxy/src/stconn.c:2265,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2267,1
    - Dst: channel_recv_max
      Src: /src/haproxy/src/stconn.c:2280,1
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:2280,1
    - Dst: sc_have_room
      Src: /src/haproxy/src/stconn.c:2281,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2283,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2285,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2285,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2286,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2291,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/src/stconn.c:2293,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/src/stconn.c:2296,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2300
      start: 2225
    functionDepth: 2
    functionLinenumber: 2225
    functionLinenumberEnd: 2300
    functionName: sc_applet_send
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - c_rew
    - co_data
    - channel_recv_max
    - sc_ep_test
    - appctx_snd_buf
    - se_fl_test
    - sc_opposite
    - sc_oc
    - BUG_ON
    - c_realign_if_empty
    - sc_have_room
    - sc_ep_fwd_kip
    - sc_ep_have_ff_data
    - sc_ep_report_blocked_send
    - c_data
    - sc_ep_report_send_activity
    linkageType: ''
    returnType: int
    signature: int sc_applet_send(struct stconn *sc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sc_oc
      Src: /src/haproxy/src/stconn.c:2304,1
    - Dst: appctx_app_test
      Src: /src/haproxy/src/stconn.c:2308,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2308,1
    - Dst: co_data
      Src: /src/haproxy/src/stconn.c:2314,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stconn.c:2317,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/stconn.c:2320,1
    - Dst: sc_applet_send
      Src: /src/haproxy/src/stconn.c:2323,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2302
    functionDepth: 3
    functionLinenumber: 2302
    functionLinenumberEnd: 2326
    functionName: sc_applet_sync_send
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 1
    functionsReached:
    - co_data
    - sc_state_in
    - se_fl_test
    - sc_oc
    - __sc_appctx
    - sc_applet_send
    - appctx_app_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:2336,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2338,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stconn.c:2338,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2342,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stconn.c:2343,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2348,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2351,1
    - Dst: sc_applet_eos
      Src: /src/haproxy/src/stconn.c:2353,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2356,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2356,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2361,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:2362,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stconn.c:2368,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/stconn.c:2369,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2369,1
    - Dst: sc_notify
      Src: /src/haproxy/src/stconn.c:2372,1
    - Dst: stream_release_buffers
      Src: /src/haproxy/src/stconn.c:2373,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stconn.c:2373,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stconn.c:2380,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stconn.c:2380,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2380,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/stconn.c:2381,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/stconn.c:2381,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2381,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stconn.c:2382,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stconn.c:2382,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2384
      start: 2334
    functionDepth: 5
    functionLinenumber: 2334
    functionLinenumberEnd: 2384
    functionName: sc_applet_process
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - appctx_wakeup
    - sc_applet_eos
    - sc_ep_test
    - __sc_strm
    - sc_is_recv_allowed
    - BUG_ON
    - sc_ic
    - sc_ep_set
    - stream_release_buffers
    - sc_is_send_allowed
    - __sc_appctx
    - sc_ep_report_read_activity
    - sc_appctx
    - applet_have_more_data
    - sc_notify
    linkageType: ''
    returnType: int
    signature: int sc_applet_process(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2393,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stconn.c:2393,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:2394,1
    - Dst: sc_ep_set
      Src: /src/haproxy/src/stconn.c:2395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2396
      start: 2391
    functionDepth: 1
    functionLinenumber: 2391
    functionLinenumberEnd: 2396
    functionName: sc_conn_prepare_endp_upgrade
    functionSourceFile: /src/haproxy/src/stconn.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - BUG_ON
    - sc_ep_clr
    - sc_ep_set
    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:2401,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/stconn.c:2402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2403
      start: 2399
    functionDepth: 1
    functionLinenumber: 2399
    functionLinenumberEnd: 2403
    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:2411,1
    - Dst: sc_detach_endp
      Src: /src/haproxy/src/stconn.c:2413,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2415,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stconn.c:2416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2409
    functionDepth: 7
    functionLinenumber: 2409
    functionLinenumberEnd: 2417
    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:2433,1
    - Dst: struct connection*::mux::sctl
      Src: /src/haproxy/src/stconn.c:2449,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: 2456
      start: 2423
    functionDepth: 1
    functionLinenumber: 2423
    functionLinenumberEnd: 2456
    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:2471,1
    - Dst: struct connection*::mux::sctl
      Src: /src/haproxy/src/stconn.c:2485,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: 2494
      start: 2460
    functionDepth: 1
    functionLinenumber: 2460
    functionLinenumberEnd: 2494
    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: 2516
      start: 2498
    functionDepth: 0
    functionLinenumber: 2498
    functionLinenumberEnd: 2516
    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: 2545
      start: 2521
    functionDepth: 0
    functionLinenumber: 2521
    functionLinenumberEnd: 2545
    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:
    - SSL_get_cipher_name
    - get_trash_chunk
    - ERR_error_string
    - SSL_get_cipher_by_value
    - SSL_CIPHER_find
    - conn_err_code_str
    - SSL_get_certificate
    - strcmp
    - ntohs
    - chunk_appendf
    - container_of
    - sigalg2str
    - SSL_CIPHER_get_name
    - SSL_get_version
    - SSL_get_servername
    - X509_NAME_oneline
    - curveid2str
    - X509_get_subject_name
    - conn_get_proxy
    - SSL_get0_alpn_selected
    - conn_is_back
    - ERR_reason_error_string
    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:
    - NODEK
    - _ceb_next_unique
    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:
    - NODEK
    - _ceb_prev_unique
    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:
    - NODEK
    - _ceb_prev_dup
    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:
    - NODEK
    - _ceb_prev
    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:
    - NODEK
    - _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: 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:
    - NODEK
    - _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: 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:
    - TO_STR
    - printf
    - ceb_imm_default_dump_tree
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: getpeername
      Src: /src/haproxy/src/sock_inet.c:155,1
    - Dst: getsockname
      Src: /src/haproxy/src/sock_inet.c:157,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 4
    argNames:
    - fd
    - sa
    - salen
    - dir
    argTypes:
    - int
    - struct sockaddr*
    - socklen_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 173
    functionName: sock_inet_get_dst
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - getsockname
    - getsockopt
    - getpeername
    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:188,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:193,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:198,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:203,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:211,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:216,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:221,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:226,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 40
    argCount: 2
    argNames:
    - fd
    - family
    argTypes:
    - int
    - sa_family_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 232
    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:243,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:246,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:249,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 255
    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:266,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:269,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:272,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 278
    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:309,1
    - Dst: sock_find_compatible_fd
      Src: /src/haproxy/src/sock_inet.c:331,1
    - Dst: my_socketat
      Src: /src/haproxy/src/sock_inet.c:342,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:346,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_inet.c:346,1
    - Dst: dup
      Src: /src/haproxy/src/sock_inet.c:361,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:364,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_inet.c:364,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:371,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/sock_inet.c:375,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:377,1
    - Dst: setsockopt
      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:392,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:400,1
    - Dst: sock_inet4_make_foreign
      Src: /src/haproxy/src/sock_inet.c:406,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:407,1
    - Dst: sock_inet6_make_foreign
      Src: /src/haproxy/src/sock_inet.c:412,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:413,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:423,1
    - Dst: strlen
      Src: /src/haproxy/src/sock_inet.c:425,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:426,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_inet.c:426,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:440,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock_inet.c:442,1
    - Dst: bind
      Src: /src/haproxy/src/sock_inet.c:446,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:448,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_inet.c:448,1
    - Dst: fd_insert
      Src: /src/haproxy/src/sock_inet.c:455,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/sock_inet.c:459,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/sock_inet.c:465,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_inet.c:466,1
    - Dst: get_host_port
      Src: /src/haproxy/src/sock_inet.c:466,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:472,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 111
    argCount: 2
    argNames:
    - rx
    - errmsg
    argTypes:
    - struct receiver*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 285
    functionDepth: 5
    functionLinenumber: 285
    functionLinenumberEnd: 474
    functionName: sock_inet_bind_receiver
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - bind
    - HA_ATOMIC_OR
    - sock_inet6_make_foreign
    - addr_to_str
    - fd_set_nonblock
    - my_socketat
    - sock_inet4_make_foreign
    - fd_insert
    - BUG_ON
    - dup
    - close
    - strlen
    - memprintf
    - strerror
    - setsockopt
    - sock_find_compatible_fd
    - get_host_port
    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:488,1
    - Dst: tick_isset
      Src: /src/haproxy/src/sock_inet.c:493,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/sock_inet.c:494,1
    - Dst: tick_add
      Src: /src/haproxy/src/sock_inet.c:494,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sock_inet.c:494,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sock_inet.c:495,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/sock_inet.c:498,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/sock_inet.c:498,1
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:500,1
    - Dst: htons
      Src: /src/haproxy/src/sock_inet.c:505,1
    - Dst: connect
      Src: /src/haproxy/src/sock_inet.c:506,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:508,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/sock_inet.c:511,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 513
    functionName: is_inet6_reachable
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - tick_add
    - htons
    - tick_is_expired
    - HA_ATOMIC_STORE
    - close
    - tick_isset
    - HA_ATOMIC_LOAD
    - socket
    - connect
    linkageType: ''
    returnType: int
    signature: int is_inet6_reachable(void)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:520,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:525,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:528,1
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:531,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:536,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:543,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:546,1
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:550,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:555,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:558,1
    - Dst: socket
      Src: /src/haproxy/src/sock_inet.c:561,1
    - Dst: getsockopt
      Src: /src/haproxy/src/sock_inet.c:566,1
    - Dst: close
      Src: /src/haproxy/src/sock_inet.c:569,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 572
    functionName: sock_inet_prepare
    functionSourceFile: /src/haproxy/src/sock_inet.c
    functionUses: 0
    functionsReached:
    - getsockopt
    - close
    - 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:
    - eb_clrtag
    - eb_gettag
    - eb_walk_down
    - eb_root_to_node
    - unlikely
    - eb_untag
    - container_of
    - eb64_entry
    - 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:
    - eb_clrtag
    - eb_gettag
    - eb_walk_down
    - eb_root_to_node
    - unlikely
    - eb_untag
    - container_of
    - eb64_entry
    - 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:
    - strdup
    - strlen
    - free
    - calloc
    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:
    - memmove
    - calloc
    - 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_ATOMIC_ADD
    - pool_alloc
    - __ha_barrier_atomic_store
    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:
    - pool_free
    - _HA_ATOMIC_SUB
    - __ha_barrier_atomic_store
    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: identity_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int 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: identity_add_data
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - b_room
    - b_tail
    - memcpy
    - b_add
    linkageType: ''
    returnType: int
    signature: int 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: identity_flush
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int 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: identity_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int 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: identity_end
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int 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: rfc1952_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 1
    functionsReached:
    - slz_rfc1952_init
    - init_comp_ctx
    linkageType: ''
    returnType: int
    signature: int 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: rfc1951_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 1
    functionsReached:
    - slz_rfc1951_init
    - init_comp_ctx
    linkageType: ''
    returnType: int
    signature: int 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: rfc1950_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 1
    functionsReached:
    - slz_rfc1950_init
    - init_comp_ctx
    linkageType: ''
    returnType: int
    signature: int 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: rfc195x_add_data
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - b_reset
    - b_is_null
    - b_tail
    - b_alloc
    - memcpy
    - b_add
    linkageType: ''
    returnType: int
    signature: int 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: rfc195x_flush_or_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - read_freq_ctr
    - b_data
    - b_is_null
    - b_tail
    - slz_finish
    - b_add
    - b_head
    - slz_flush
    - slz_encode
    linkageType: ''
    returnType: int
    signature: int rfc195x_flush_or_finish(struct comp_ctx *comp_ctx, struct buffer
      *out, int finish)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: 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: rfc195x_flush
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - rfc195x_flush_or_finish
    linkageType: ''
    returnType: int
    signature: int rfc195x_flush(struct comp_ctx *comp_ctx, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: 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: rfc195x_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - rfc195x_flush_or_finish
    linkageType: ''
    returnType: int
    signature: int 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: rfc195x_end
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    linkageType: ''
    returnType: int
    signature: int 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:
    - __ha_barrier_atomic_store
    - _HA_ATOMIC_ADD
    - pool_alloc
    - create_pool
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:
    - pool_free
    - _HA_ATOMIC_SUB
    - ABORT_NOW
    - __ha_barrier_atomic_store
    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: gzip_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    - deflateInit2
    - init_comp_ctx
    linkageType: ''
    returnType: int
    signature: int 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: raw_def_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    - deflateInit2
    - init_comp_ctx
    linkageType: ''
    returnType: int
    signature: int 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: deflate_init
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    - deflateInit2
    - init_comp_ctx
    linkageType: ''
    returnType: int
    signature: int 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: deflate_add_data
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - b_room
    - b_tail
    - deflate
    - b_add
    linkageType: ''
    returnType: int
    signature: int 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: deflate_flush_or_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - read_freq_ctr
    - b_tail
    - b_room
    - deflateParams
    - deflate
    - b_add
    linkageType: ''
    returnType: int
    signature: int deflate_flush_or_finish(struct comp_ctx *comp_ctx, struct buffer
      *out, int flag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: 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: deflate_flush
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deflate_flush_or_finish
    linkageType: ''
    returnType: int
    signature: int deflate_flush(struct comp_ctx *comp_ctx, struct buffer *out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: 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: deflate_finish
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deflate_flush_or_finish
    linkageType: ''
    returnType: int
    signature: int 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: deflate_end
    functionSourceFile: /src/haproxy/src/compression.c
    functionUses: 0
    functionsReached:
    - deinit_comp_ctx
    - deflateEnd
    linkageType: ''
    returnType: int
    signature: int 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:
    - too_many_args
    - memprintf
    - atoi
    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:
    - too_many_args
    - memprintf
    - atoi
    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:
    - hap_register_build_opts
    - zlibVersion
    - memprintf
    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: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: srv_reset_path_parameters
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    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: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    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:154,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    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: 172
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 172
    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:183,1
    - Dst: struct server*::proxy::lbprm::update_server_eweight
      Src: /src/haproxy/src/server.c:192,1
    - Dst: ipcpy
      Src: /src/haproxy/src/server.c:197,1
    - Dst: set_host_port
      Src: /src/haproxy/src/server.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    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: 200
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 200
    functionName: _srv_set_inetaddr_port
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ipcpy
    - struct server*::proxy::lbprm::update_server_eweight
    - set_host_port
    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:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - srv
    - addr
    argTypes:
    - struct server*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 3
    functionLinenumber: 204
    functionLinenumberEnd: 208
    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:240,1
    - Dst: event_hdl_async_equeue_pop
      Src: /src/haproxy/src/server.c:244,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/server.c:248,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/server.c:250,1
    - Dst: task_destroy
      Src: /src/haproxy/src/server.c:251,1
    - Dst: event_hdl_sub_type_equal
      Src: /src/haproxy/src/server.c:257,1
    - Dst: thread_isolated
      Src: /src/haproxy/src/server.c:274,1
    - Dst: thread_isolate_full
      Src: /src/haproxy/src/server.c:275,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/server.c:278,1
    - Dst: server_find_by_id_unique
      Src: /src/haproxy/src/server.c:281,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:286,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:294,1
    - Dst: _srv_set_inetaddr_port
      Src: /src/haproxy/src/server.c:307,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/src/server.c:317,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:321,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:322,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:323,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:324,1
    - Dst: srv_cleanup_connections
      Src: /src/haproxy/src/server.c:327,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/server.c:328,1
    - Dst: srv_set_addr_desc
      Src: /src/haproxy/src/server.c:329,1
    - Dst: event_hdl_async_free_event
      Src: /src/haproxy/src/server.c:331,1
    - Dst: thread_isolated
      Src: /src/haproxy/src/server.c:338,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:339,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:349,1
    - Dst: event_hdl_async_equeue_isempty
      Src: /src/haproxy/src/server.c:350,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/server.c:351,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 355
    functionName: server_atomic_sync
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - task_destroy
    - ha_warning
    - chunk_printf
    - event_hdl_async_equeue_pop
    - event_hdl_async_equeue_isempty
    - thread_isolated
    - _srv_set_inetaddr_port
    - thread_release
    - memset
    - event_hdl_sub_type_equal
    - BUG_ON
    - srv_set_addr_desc
    - srv_set_dyncookie
    - server_find_by_id_unique
    - srv_cleanup_connections
    - srv_clr_admin_flag
    - proxy_find_by_id
    - event_hdl_async_free_event
    - send_log
    - thread_isolate_full
    - memcpy
    - chunk_reset
    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:367,1
    - Dst: event_hdl_async_equeue_init
      Src: /src/haproxy/src/server.c:371,1
    - Dst: event_hdl_sub_type_add
      Src: /src/haproxy/src/server.c:374,1
    - Dst: event_hdl_subscribe
      Src: /src/haproxy/src/server.c:375,1
    - Dst: EVENT_HDL_ASYNC_TASK
      Src: /src/haproxy/src/server.c:376,1
    - Dst: task_destroy
      Src: /src/haproxy/src/server.c:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 361
    functionDepth: 3
    functionLinenumber: 361
    functionLinenumberEnd: 389
    functionName: server_atomic_sync_start
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - EVENT_HDL_ASYNC_TASK
    - event_hdl_async_equeue_init
    - task_new_anywhere
    - event_hdl_subscribe
    - task_destroy
    - event_hdl_sub_type_add
    linkageType: ''
    returnType: int
    signature: int server_atomic_sync_start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/haproxy/src/server.c:402,1
    - Dst: snprintf
      Src: /src/haproxy/src/server.c:407,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: 413
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 413
    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: 427
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 427
    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:455,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: 458
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 458
    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:474,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:477,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: 488
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 488
    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: 495
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 495
    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:514,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:515,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: 516
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 516
    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:529,1
    - Dst: _srv_event_hdl_prepare
      Src: /src/haproxy/src/server.c:534,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - srv
    - check
    argTypes:
    - struct server*
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: srv_event_hdl_publish_check
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_event_hdl_prepare_checkres
    - _srv_event_hdl_publish
    - _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:556,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:557,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 563
    functionName: srv_check_for_dup_dyncookie
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - strcmp
    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:578,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:584,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:602,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:603,1
    - Dst: htonl
      Src: /src/haproxy/src/server.c:612,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:613,1
    - Dst: XXH64
      Src: /src/haproxy/src/server.c:614,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:615,1
    - Dst: srv_check_for_dup_dyncookie
      Src: /src/haproxy/src/server.c:625,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/server.c:627,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 568
    functionDepth: 5
    functionLinenumber: 568
    functionLinenumberEnd: 628
    functionName: srv_set_dyncookie
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - XXH64
    - srv_check_for_dup_dyncookie
    - HA_RWLOCK_RDUNLOCK
    - strlen
    - htonl
    - memprintf
    - memcpy
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void srv_set_dyncookie(struct server *s)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: isteq
      Src: /src/haproxy/src/server.c:653,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:653,1
    - Dst: isteq
      Src: /src/haproxy/src/server.c:661,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:661,1
    - Dst: ist2
      Src: /src/haproxy/src/server.c:671,1
    - Dst: istchr
      Src: /src/haproxy/src/server.c:679,1
    - Dst: isteq
      Src: /src/haproxy/src/server.c:684,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:684,1
    - Dst: isteq
      Src: /src/haproxy/src/server.c:687,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:687,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 692
    functionName: srv_check_reuse_ws
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - ist2
    - isteq
    - istchr
    - ist
    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:707,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:707,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/server.c:711,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:711,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 716
    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:730,1
    - Dst: sa2str
      Src: /src/haproxy/src/server.c:732,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:735,1
    - Dst: free
      Src: /src/haproxy/src/server.c:736,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/server.c:740,1
    - Dst: cebuis_item_delete
      Src: /src/haproxy/src/server.c:741,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/server.c:742,1
    - Dst: free
      Src: /src/haproxy/src/server.c:744,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/server.c:751,1
    - Dst: cebuis_item_insert
      Src: /src/haproxy/src/server.c:752,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/server.c:753,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - s
    - reattach
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 756
    functionName: srv_set_addr_desc
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - strcmp
    - HA_RWLOCK_WRUNLOCK
    - cebuis_item_delete
    - BUG_ON
    - sa2str
    - free
    - cebuis_item_insert
    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:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct srv_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 765
    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:781,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:783,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/server.c:785,1
    - Dst: strncmp
      Src: /src/haproxy/src/server.c:787,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 797
    functionName: srv_find_kw
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - strlen
    - strncmp
    - list_for_each_entry
    - strchr
    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:812,1
    - Dst: srv_find_kw
      Src: /src/haproxy/src/server.c:815,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:816,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 803
    functionDepth: 5
    functionLinenumber: 803
    functionLinenumberEnd: 825
    functionName: srv_dump_kws
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - srv_find_kw
    linkageType: ''
    returnType: void
    signature: void srv_dump_kws(char **out)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/server.c:843,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/server.c:844,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/server.c:846,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/server.c:847,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/server.c:856,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/server.c:857,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:864,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:864,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - word
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 833
    functionDepth: 2
    functionLinenumber: 833
    functionLinenumberEnd: 868
    functionName: srv_find_best_kw
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strlen
    - make_word_fingerprint
    - word_fingerprint_distance
    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:879,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - px
    - from
    argTypes:
    - struct proxy*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 885
    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: 893
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 893
    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:904,1
    - Dst: free
      Src: /src/haproxy/src/server.c:908,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:909,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:910,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: 913
      start: 897
    functionDepth: 5
    functionLinenumber: 897
    functionLinenumberEnd: 913
    functionName: srv_parse_cookie
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - strlen
    - memprintf
    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: 924
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 924
    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: []
    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: 935
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 935
    functionName: srv_parse_enabled
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached: []
    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:942,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:947,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:950,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: 956
      start: 938
    functionDepth: 5
    functionLinenumber: 938
    functionLinenumberEnd: 956
    functionName: srv_parse_error_limit
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:966,1
    - Dst: guid_insert
      Src: /src/haproxy/src/server.c:971,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:972,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:973,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: 978
      start: 959
    functionDepth: 5
    functionLinenumber: 959
    functionLinenumberEnd: 978
    functionName: srv_parse_guid
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - guid_insert
    - ha_free
    - memprintf
    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:985,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:989,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:992,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:995,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:999,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: 1005
      start: 981
    functionDepth: 5
    functionLinenumber: 981
    functionLinenumberEnd: 1005
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1012,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1016,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1019,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1022,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1026,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: 1031
      start: 1008
    functionDepth: 5
    functionLinenumber: 1008
    functionLinenumberEnd: 1031
    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:1041,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/server.c:1045,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1047,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1052,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1057,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: 1068
      start: 1034
    functionDepth: 5
    functionLinenumber: 1034
    functionLinenumberEnd: 1068
    functionName: srv_parse_idle_ping
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    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:1079,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:1087,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1088,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:1089,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1091,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:1092,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1094,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:1095,1
    - Dst: str2ip2
      Src: /src/haproxy/src/server.c:1097,1
    - Dst: is_addr
      Src: /src/haproxy/src/server.c:1098,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1099,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:1104,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1107,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1112,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: 1119
      start: 1071
    functionDepth: 5
    functionLinenumber: 1071
    functionLinenumberEnd: 1119
    functionName: srv_parse_init_addr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - str2ip2
    - srv_append_initaddr
    - memset
    - strcmp
    - memprintf
    - 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1125,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1127,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1129,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1131,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1134,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: 1140
      start: 1122
    functionDepth: 5
    functionLinenumber: 1122
    functionLinenumberEnd: 1140
    functionName: srv_parse_init_state
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strcmp
    linkageType: ''
    returnType: int
    signature: "int srv_parse_init_state(char **args, int *cur_arg,\n\t\t\t\t\t\t\t
      \  struct proxy *curproxy, struct server *newsrv, char **err)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1147,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:1152,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1155,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: 1161
      start: 1143
    functionDepth: 5
    functionLinenumber: 1143
    functionLinenumberEnd: 1161
    functionName: srv_parse_log_bufsize
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:1167,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1169,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1172,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: 1178
      start: 1164
    functionDepth: 5
    functionLinenumber: 1164
    functionLinenumberEnd: 1178
    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:1184,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: 1186
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1186
    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:1192,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: 1194
      start: 1189
    functionDepth: 0
    functionLinenumber: 1189
    functionLinenumberEnd: 1194
    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: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_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:1210,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:1213,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: 1216
      start: 1204
    functionDepth: 5
    functionLinenumber: 1204
    functionLinenumberEnd: 1216
    functionName: srv_parse_max_reuse
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:1226,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/server.c:1229,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1231,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1236,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1241,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: 1248
      start: 1218
    functionDepth: 5
    functionLinenumber: 1218
    functionLinenumberEnd: 1248
    functionName: srv_parse_pool_purge_delay
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    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:1256,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:1260,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1261,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1263,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: 1268
      start: 1250
    functionDepth: 5
    functionLinenumber: 1250
    functionLinenumberEnd: 1268
    functionName: srv_parse_pool_conn_name
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_free
    - memprintf
    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:1276,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:1280,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: 1282
      start: 1270
    functionDepth: 5
    functionLinenumber: 1270
    functionLinenumberEnd: 1282
    functionName: srv_parse_pool_low_conn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:1290,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:1294,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1296,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: 1301
      start: 1284
    functionDepth: 5
    functionLinenumber: 1284
    functionLinenumberEnd: 1301
    functionName: srv_parse_pool_max_conn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:1309,1
    - Dst: atol
      Src: /src/haproxy/src/server.c:1313,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1316,1
    - Dst: server_find_by_id
      Src: /src/haproxy/src/server.c:1320,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curproxy
    - newsrv
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1330
      start: 1304
    functionDepth: 5
    functionLinenumber: 1304
    functionLinenumberEnd: 1330
    functionName: srv_parse_id
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    - server_find_by_id
    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:1341,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1345,1
    - Dst: netns_store_lookup
      Src: /src/haproxy/src/server.c:1359,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:1359,1
    - Dst: netns_store_insert
      Src: /src/haproxy/src/server.c:1361,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1364,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1371,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: 1374
      start: 1333
    functionDepth: 5
    functionLinenumber: 1333
    functionLinenumberEnd: 1374
    functionName: srv_parse_namespace
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - netns_store_insert
    - strcmp
    - strlen
    - netns_store_lookup
    - memprintf
    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: 1382
      start: 1377
    functionDepth: 0
    functionLinenumber: 1377
    functionLinenumberEnd: 1382
    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: 1390
      start: 1386
    functionDepth: 0
    functionLinenumber: 1386
    functionLinenumberEnd: 1390
    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:1396,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: 1397
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1397
    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:1403,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: 1404
      start: 1400
    functionDepth: 1
    functionLinenumber: 1400
    functionLinenumberEnd: 1404
    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:1410,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: 1412
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1412
    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: 1420
      start: 1415
    functionDepth: 0
    functionLinenumber: 1415
    functionLinenumberEnd: 1420
    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: 1428
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1428
    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: 1435
      start: 1431
    functionDepth: 0
    functionLinenumber: 1431
    functionLinenumberEnd: 1435
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1443,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:1446,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/server.c:1447,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1449,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: 1453
      start: 1437
    functionDepth: 5
    functionLinenumber: 1437
    functionLinenumberEnd: 1453
    functionName: srv_parse_proto
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - get_mux_proto
    - memprintf
    - ist
    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:1461,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1464,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1466,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1469,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1472,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1475,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1478,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1480,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1482,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1490,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: 1492
      start: 1456
    functionDepth: 5
    functionLinenumber: 1456
    functionLinenumberEnd: 1492
    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:1502,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1506,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1509,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1512,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1514,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1520,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: 1526
      start: 1495
    functionDepth: 5
    functionLinenumber: 1495
    functionLinenumberEnd: 1526
    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:1532,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1534,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1536,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1538,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1541,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: 1548
      start: 1529
    functionDepth: 5
    functionLinenumber: 1529
    functionLinenumberEnd: 1548
    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:1554,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1557,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: 1563
      start: 1551
    functionDepth: 5
    functionLinenumber: 1551
    functionLinenumberEnd: 1563
    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:1569,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1572,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: 1578
      start: 1566
    functionDepth: 5
    functionLinenumber: 1566
    functionLinenumberEnd: 1578
    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:1588,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1592,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1593,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:1594,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: 1597
      start: 1581
    functionDepth: 5
    functionLinenumber: 1581
    functionLinenumberEnd: 1597
    functionName: srv_parse_redir
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - strlen
    - memprintf
    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:1603,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1604,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: 1606
      start: 1600
    functionDepth: 3
    functionLinenumber: 1600
    functionLinenumberEnd: 1606
    functionName: srv_parse_resolvers
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    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:1617,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1632,1
    - Dst: str2net
      Src: /src/haproxy/src/server.c:1643,1
    - Dst: str62net
      Src: /src/haproxy/src/server.c:1647,1
    - Dst: len2mask6
      Src: /src/haproxy/src/server.c:1650,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1654,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: 1663
      start: 1609
    functionDepth: 5
    functionLinenumber: 1609
    functionLinenumberEnd: 1663
    functionName: srv_parse_resolve_net
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - len2mask6
    - str62net
    - memprintf
    - str2net
    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:1677,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1680,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1683,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1687,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: 1694
      start: 1666
    functionDepth: 5
    functionLinenumber: 1666
    functionLinenumberEnd: 1694
    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:1700,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1702,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1705,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: 1711
      start: 1697
    functionDepth: 5
    functionLinenumber: 1697
    functionLinenumberEnd: 1711
    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:1717,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: 1718
      start: 1714
    functionDepth: 1
    functionLinenumber: 1714
    functionLinenumberEnd: 1718
    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:1724,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: 1725
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1725
    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:1737,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:1741,1
    - Dst: strtoul
      Src: /src/haproxy/src/server.c:1746,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:1747,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1748,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1752,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1756,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1760,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:1765,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:1766,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1767,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/server.c:1771,1
    - Dst: strdup
      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: LIST_APPEND
      Src: /src/haproxy/src/server.c:1778,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1785,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: 1788
      start: 1728
    functionDepth: 5
    functionLinenumber: 1728
    functionLinenumberEnd: 1788
    functionName: srv_parse_set_proxy_v2_tlv_fmt
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strdup
    - unlikely
    - lf_expr_init
    - LIST_APPEND
    - strlen
    - free
    - malloc
    - memprintf
    - strtoul
    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:1796,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1799,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1804,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1809,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: 1816
      start: 1791
    functionDepth: 5
    functionLinenumber: 1791
    functionLinenumberEnd: 1816
    functionName: srv_parse_slowstart
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    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:1829,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/server.c:1835,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:1839,1
    - Dst: port_range_alloc_range
      Src: /src/haproxy/src/server.c:1849,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1851,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1860,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1863,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1867,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1871,1
    - Dst: strncmp
      Src: /src/haproxy/src/server.c:1875,1
    - Dst: isspace
      Src: /src/haproxy/src/server.c:1879,1
    - Dst: isspace
      Src: /src/haproxy/src/server.c:1883,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1888,1
    - Dst: calloc
      Src: /src/haproxy/src/server.c:1889,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1891,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:1895,1
    - Dst: isspace
      Src: /src/haproxy/src/server.c:1900,1
    - Dst: isdigit
      Src: /src/haproxy/src/server.c:1907,1
    - Dst: strl2ic
      Src: /src/haproxy/src/server.c:1909,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1913,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/server.c:1923,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1927,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1938,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:1943,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1946,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1949,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1950,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:1951,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:1954,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1967,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: 1969
      start: 1819
    functionDepth: 5
    functionLinenumber: 1819
    functionLinenumberEnd: 1969
    functionName: srv_parse_source
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strdup
    - port_range_alloc_range
    - isspace
    - strcmp
    - strncmp
    - isdigit
    - strlen
    - free
    - strl2ic
    - memprintf
    - ha_alert
    - str2sa_range
    - calloc
    - memcpy
    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: 1977
      start: 1972
    functionDepth: 0
    functionLinenumber: 1972
    functionLinenumberEnd: 1977
    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:1987,1
    - Dst: free
      Src: /src/haproxy/src/server.c:1991,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:1992,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: 1995
      start: 1980
    functionDepth: 5
    functionLinenumber: 1980
    functionLinenumberEnd: 1995
    functionName: srv_parse_track
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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:2008,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/server.c:2013,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:2017,1
    - Dst: free
      Src: /src/haproxy/src/server.c:2027,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: 2029
      start: 1998
    functionDepth: 5
    functionLinenumber: 1998
    functionLinenumberEnd: 2029
    functionName: srv_parse_socks4
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - free
    - str2sa_range
    - memprintf
    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: 2037
      start: 2033
    functionDepth: 0
    functionLinenumber: 2033
    functionLinenumberEnd: 2037
    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:2042,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: 2045
      start: 2040
    functionDepth: 5
    functionLinenumber: 2040
    functionLinenumberEnd: 2045
    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:2052,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:2054,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: 2061
      start: 2048
    functionDepth: 5
    functionLinenumber: 2048
    functionLinenumberEnd: 2061
    functionName: srv_parse_weight
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    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: 2069
      start: 2063
    functionDepth: 0
    functionLinenumber: 2063
    functionLinenumberEnd: 2069
    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:2073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2071
    functionDepth: 1
    functionLinenumber: 2071
    functionLinenumberEnd: 2074
    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:2089,1
    - Dst: stream_shutdown
      Src: /src/haproxy/src/server.c:2091,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:2094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - srv
    - why
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2082
    functionDepth: 3
    functionLinenumber: 2082
    functionLinenumberEnd: 2095
    functionName: srv_shutdown_streams
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - stream_shutdown
    - pendconn_redistribute
    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:2109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - px
    - why
    argTypes:
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2103
    functionDepth: 4
    functionLinenumber: 2103
    functionLinenumberEnd: 2110
    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:2118,1
    - Dst: check_append_info
      Src: /src/haproxy/src/server.c:2121,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:2124,1
    - Dst: srv_op_st_chg_cause
      Src: /src/haproxy/src/server.c:2124,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: 2127
      start: 2112
    functionDepth: 1
    functionLinenumber: 2112
    functionLinenumberEnd: 2127
    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:2132,1
    - Dst: srv_adm_st_chg_cause
      Src: /src/haproxy/src/server.c:2132,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: 2133
      start: 2129
    functionDepth: 1
    functionLinenumber: 2129
    functionLinenumberEnd: 2133
    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:2148,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:2153,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:2159,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: 2165
      start: 2144
    functionDepth: 1
    functionLinenumber: 2144
    functionLinenumberEnd: 2165
    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:2183,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2186,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/server.c:2187,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2188,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: 2190
      start: 2173
    functionDepth: 1
    functionLinenumber: 2173
    functionLinenumberEnd: 2190
    functionName: srv_set_stopped
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 5
    functionsReached:
    - srv_update_status
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - 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:2214,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2217,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/server.c:2218,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2219,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: 2221
      start: 2198
    functionDepth: 1
    functionLinenumber: 2198
    functionLinenumberEnd: 2221
    functionName: srv_set_running
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 5
    functionsReached:
    - srv_update_status
    - HA_SPIN_LOCK
    - srv_set_running
    - 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:2242,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2245,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/server.c:2246,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2247,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: 2249
      start: 2229
    functionDepth: 1
    functionLinenumber: 2229
    functionLinenumberEnd: 2249
    functionName: srv_set_stopping
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 4
    functionsReached:
    - srv_set_stopping
    - srv_update_status
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:2275,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2289,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:2290,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2291,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: 2293
      start: 2261
    functionDepth: 1
    functionLinenumber: 2261
    functionLinenumberEnd: 2293
    functionName: srv_set_admin_flag
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - srv_set_admin_flag
    - srv_update_status
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:2317,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:2330,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/src/server.c:2331,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2332,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - s
    - mode
    argTypes:
    - struct server*
    - enum srv_admin
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2334
      start: 2303
    functionDepth: 1
    functionLinenumber: 2303
    functionLinenumberEnd: 2334
    functionName: srv_clr_admin_flag
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - srv_update_status
    - HA_SPIN_LOCK
    - srv_clr_admin_flag
    - HA_SPIN_UNLOCK
    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:2347,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:2349,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:2352,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:2353,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2355
      start: 2339
    functionDepth: 2
    functionLinenumber: 2339
    functionLinenumberEnd: 2355
    functionName: srv_propagate_admin_state
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_set_admin_flag
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:2368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2370
      start: 2361
    functionDepth: 3
    functionLinenumber: 2361
    functionLinenumberEnd: 2370
    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:2486,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:2486,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:2498,1
    - Dst: srv_update_status
      Src: /src/haproxy/src/server.c:2506,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 2
    argNames:
    - sv
    - must_update
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2507
      start: 2481
    functionDepth: 1
    functionLinenumber: 2481
    functionLinenumberEnd: 2507
    functionName: server_recalc_eweight
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - ns_to_sec
    - srv_update_status
    linkageType: ''
    returnType: void
    signature: void server_recalc_eweight(struct server *sv, int must_update)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct server*::proxy::lbprm::server_requeue
      Src: /src/haproxy/src/server.c:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2513
    functionDepth: 1
    functionLinenumber: 2513
    functionLinenumberEnd: 2523
    functionName: server_requeue
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - struct server*::proxy::lbprm::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:2546,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:2568,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - sv
    - weight_str
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2571
      start: 2531
    functionDepth: 2
    functionLinenumber: 2531
    functionLinenumberEnd: 2571
    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:2585,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/server.c:2597,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/server.c:2598,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - sv
    - maxconn_str
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2601
      start: 2576
    functionDepth: 4
    functionLinenumber: 2576
    functionLinenumberEnd: 2601
    functionName: server_parse_maxconn_change_request
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - process_srv_queue
    - may_dequeue_tasks
    - 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:2621,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: 2622
      start: 2609
    functionDepth: 1
    functionLinenumber: 2609
    functionLinenumberEnd: 2622
    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:2639,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:2644,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/server.c:2646,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/server.c:2651,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: 2655
      start: 2631
    functionDepth: 5
    functionLinenumber: 2631
    functionLinenumberEnd: 2655
    functionName: parse_srv_expr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - memprintf
    - release_sample_expr
    - sample_src_names
    - _parse_srv_expr
    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:2664,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:2671,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:2673,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: 2674
      start: 2657
    functionDepth: 4
    functionLinenumber: 2657
    functionLinenumberEnd: 2674
    functionName: display_parser_err
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - indent_msg
    - ha_warning
    - ha_alert
    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:2682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - srv
    - src
    argTypes:
    - struct server*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2676
    functionDepth: 1
    functionLinenumber: 2676
    functionLinenumberEnd: 2692
    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:2704,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2708,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:2709,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2715,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - srv
    - src
    argTypes:
    - struct server*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2697
    functionDepth: 2
    functionLinenumber: 2697
    functionLinenumberEnd: 2718
    functionName: srv_conn_src_cpy
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strdup
    - strlen
    - srv_conn_src_sport_range_cpy
    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:2728,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2734,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2736,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2738,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2744,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2746,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2757,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2759,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:2762,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:2764,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:2771,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:2773,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 42
    argCount: 2
    argNames:
    - srv
    - src
    argTypes:
    - struct server*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2778
      start: 2725
    functionDepth: 0
    functionLinenumber: 2725
    functionLinenumberEnd: 2778
    functionName: srv_ssl_settings_cpy
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - strdup
    - malloc
    - BUG_ON
    - memcpy
    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:2792,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:2794,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:2797,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/server.c:2798,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:2801,1
    - Dst: is_addr
      Src: /src/haproxy/src/server.c:2804,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 2
    argNames:
    - s
    - use_ssl
    argTypes:
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2808
      start: 2785
    functionDepth: 1
    functionLinenumber: 2785
    functionLinenumberEnd: 2808
    functionName: srv_set_ssl
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - strcmp
    - xprt_get
    - release_sample_expr
    - server_parse_exprs
    - is_addr
    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:2825,1
    - Dst: resolv_str_to_dn_label
      Src: /src/haproxy/src/server.c:2827,1
    - Dst: free
      Src: /src/haproxy/src/server.c:2833,1
    - Dst: free
      Src: /src/haproxy/src/server.c:2834,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2835,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2836,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:2844,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:2845,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - srv
    - hostname
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2847
      start: 2817
    functionDepth: 3
    functionLinenumber: 2817
    functionLinenumberEnd: 2847
    functionName: srv_prepare_for_resolution
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - strdup
    - resolv_str_to_dn_label
    - ha_free
    - strlen
    - free
    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:2887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2854
    functionDepth: 1
    functionLinenumber: 2854
    functionLinenumberEnd: 2888
    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:2910,1
    - Dst: srv_conn_src_cpy
      Src: /src/haproxy/src/server.c:2915,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2925,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2929,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2938,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:2940,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:2942,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2951,1
    - Dst: calloc
      Src: /src/haproxy/src/server.c:2963,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:2967,1
    - Dst: dup_tcpcheck_vars
      Src: /src/haproxy/src/server.c:2968,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:2987,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3009,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:3015,1
    - Dst: srv_ssl_settings_cpy
      Src: /src/haproxy/src/server.c:3025,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3029,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3032,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3038,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:3052,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/server.c:3054,1
    - Dst: malloc
      Src: /src/haproxy/src/server.c:3055,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:3056,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3059,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:3060,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3061,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/server.c:3065,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:3067,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/server.c:3067,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3069,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3070,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:3074,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 136
    argCount: 3
    argNames:
    - srv
    - src
    - srv_tmpl
    argTypes:
    - struct server*
    - struct server*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3076
      start: 2905
    functionDepth: 3
    functionLinenumber: 2905
    functionLinenumberEnd: 3076
    functionName: srv_settings_cpy
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - srv_conn_src_cpy
    - strdup
    - list_for_each_entry
    - unlikely
    - dup_tcpcheck_vars
    - srv_ssl_settings_cpy
    - lf_expr_init
    - parse_logformat_string
    - LIST_APPEND
    - free
    - malloc
    - LIST_INIT
    - srv_settings_init
    - calloc
    - memcpy
    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:3089,1
    - Dst: srv_take
      Src: /src/haproxy/src/server.c:3093,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/server.c:3097,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:3098,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:3099,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:3100,1
    - Dst: event_hdl_sub_list_init
      Src: /src/haproxy/src/server.c:3101,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:3105,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3117,1
    - Dst: guid_init
      Src: /src/haproxy/src/server.c:3119,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/server.c:3120,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/server.c:3124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3149
      start: 3085
    functionDepth: 2
    functionLinenumber: 3085
    functionLinenumberEnd: 3149
    functionName: new_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 9
    functionsReached:
    - srv_alloc
    - HA_RWLOCK_INIT
    - srv_take
    - MT_LIST_APPEND
    - ns_to_sec
    - LIST_INIT
    - xprt_get
    - guid_init
    - MT_LIST_INIT
    - event_hdl_sub_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:3154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3152
    functionDepth: 1
    functionLinenumber: 3152
    functionLinenumberEnd: 3155
    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:3162,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3163,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3164,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3165,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3166,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/server.c:3167,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/server.c:3168,1
    - Dst: ha_aligned_free
      Src: /src/haproxy/src/server.c:3169,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3170,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/server.c:3171,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3172,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3173,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3174,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3175,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3176,1
    - Dst: counters_be_shared_drop
      Src: /src/haproxy/src/server.c:3177,1
    - Dst: deinit_log_target
      Src: /src/haproxy/src/server.c:3179,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3180,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3182,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3184,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3184,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3185,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3186,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3186,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3187,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/server.c:3189,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/server.c:3190,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/server.c:3191,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/server.c:3192,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:3193,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:3194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3196
      start: 3158
    functionDepth: 3
    functionLinenumber: 3158
    functionLinenumberEnd: 3196
    functionName: srv_free_params
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - lf_expr_deinit
    - ha_free
    - ha_aligned_free
    - LIST_DEL_INIT
    - free
    - counters_be_shared_drop
    - xprt_get
    - release_sample_expr
    - deinit_log_target
    - LIST_ISEMPTY
    - LIST_ELEM
    linkageType: ''
    returnType: void
    signature: void srv_free_params(struct server *srv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/server.c:3220,1
    - Dst: guid_remove
      Src: /src/haproxy/src/server.c:3231,1
    - Dst: tasklet_kill
      Src: /src/haproxy/src/server.c:3234,1
    - Dst: task_destroy
      Src: /src/haproxy/src/server.c:3235,1
    - Dst: task_destroy
      Src: /src/haproxy/src/server.c:3236,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3238,1
    - Dst: srv_free_params
      Src: /src/haproxy/src/server.c:3239,1
    - Dst: HA_SPIN_DESTROY
      Src: /src/haproxy/src/server.c:3241,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/server.c:3243,1
    - Dst: event_hdl_sub_list_destroy
      Src: /src/haproxy/src/server.c:3244,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/server.c:3246,1
    - Dst: srv_free
      Src: /src/haproxy/src/server.c:3248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3208
    functionDepth: 5
    functionLinenumber: 3208
    functionLinenumberEnd: 3252
    functionName: srv_drop
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - MT_LIST_DELETE
    - tasklet_kill
    - srv_free_params
    - event_hdl_sub_list_destroy
    - guid_remove
    - EXTRA_COUNTERS_FREE
    - HA_SPIN_DESTROY
    - free
    - task_destroy
    - srv_free
    - HA_ATOMIC_SUB_FETCH
    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:3276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3277
      start: 3260
    functionDepth: 0
    functionLinenumber: 3260
    functionLinenumberEnd: 3277
    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:3292,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:3293,1
    - Dst: strchr
      Src: /src/haproxy/src/server.c:3295,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:3297,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: 3308
      start: 3286
    functionDepth: 1
    functionLinenumber: 3286
    functionLinenumberEnd: 3308
    functionName: _srv_parse_tmpl_range
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - atoi
    - 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:3323,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3324,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - srv
    - prefix
    - nb
    argTypes:
    - struct server*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3326
      start: 3320
    functionDepth: 3
    functionLinenumber: 3320
    functionLinenumberEnd: 3326
    functionName: _srv_parse_set_id_from_prefix
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - strdup
    - free
    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:3338,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:3340,1
    - Dst: parse_srv_expr
      Src: /src/haproxy/src/server.c:3348,1
    - Dst: parse_srv_expr
      Src: /src/haproxy/src/server.c:3354,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 3
    argNames:
    - srv
    - px
    - errmsg
    argTypes:
    - struct server*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3361
      start: 3330
    functionDepth: 6
    functionLinenumber: 3330
    functionLinenumberEnd: 3361
    functionName: server_parse_exprs
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - strdup
    - parse_srv_expr
    - memprintf
    linkageType: ''
    returnType: int
    signature: int server_parse_exprs(struct server *srv, struct proxy *px, char **errmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _srv_parse_set_id_from_prefix
      Src: /src/haproxy/src/server.c:3380,1
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/server.c:3381,1
    - Dst: new_server
      Src: /src/haproxy/src/server.c:3385,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3389,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/server.c:3392,1
    - Dst: srv_prepare_for_resolution
      Src: /src/haproxy/src/server.c:3393,1
    - Dst: server_parse_exprs
      Src: /src/haproxy/src/server.c:3395,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:3400,1
    - Dst: _srv_parse_set_id_from_prefix
      Src: /src/haproxy/src/server.c:3403,1
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/server.c:3405,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/server.c:3412,1
    - Dst: free_check
      Src: /src/haproxy/src/server.c:3413,1
    - Dst: free_check
      Src: /src/haproxy/src/server.c:3414,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/server.c:3415,1
    - Dst: srv_free
      Src: /src/haproxy/src/server.c:3417,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - srv
    - px
    argTypes:
    - struct server*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3419
      start: 3374
    functionDepth: 7
    functionLinenumber: 3374
    functionLinenumberEnd: 3419
    functionName: _srv_parse_tmpl_init
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - strdup
    - srv_settings_cpy
    - free_check
    - srv_prepare_for_resolution
    - LIST_APPEND
    - srv_free
    - release_sample_expr
    - _srv_parse_set_id_from_prefix
    - cebis_item_insert
    - new_server
    - server_parse_exprs
    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:3438,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3457,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3465,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3472,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/server.c:3472,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:3480,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/server.c:3486,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 36
    argCount: 2
    argNames:
    - srv
    - postparse
    argTypes:
    - struct server*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3489
      start: 3430
    functionDepth: 1
    functionLinenumber: 3430
    functionLinenumberEnd: 3489
    functionName: _srv_check_proxy_mode
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - reset_usermsgs_ctx
    - proxy_mode_str
    - set_usermsgs_ctx
    - ha_alert
    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:3500,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3508
      start: 3496
    functionDepth: 1
    functionLinenumber: 3496
    functionLinenumberEnd: 3508
    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:3525,1
    - Dst: counters_be_shared_prepare
      Src: /src/haproxy/src/server.c:3530,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3531,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:3532,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:3541,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/server.c:3542,1
    - Dst: init_srv_requeue
      Src: /src/haproxy/src/server.c:3545,1
    - Dst: init_srv_slowstart
      Src: /src/haproxy/src/server.c:3550,1
    - Dst: ha_aligned_zalloc
      Src: /src/haproxy/src/server.c:3557,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3559,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3568
      start: 3520
    functionDepth: 2
    functionLinenumber: 3520
    functionLinenumberEnd: 3568
    functionName: srv_postinit
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_check_proxy_mode
    - init_srv_requeue
    - counters_be_shared_prepare
    - ha_free
    - srv_lb_commit_status
    - ha_aligned_zalloc
    - init_srv_slowstart
    - ha_alert
    - server_recalc_eweight
    linkageType: ''
    returnType: int
    signature: int srv_postinit(struct server *srv)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3601,1
    - Dst: invalid_prefix_char
      Src: /src/haproxy/src/server.c:3607,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3612,1
    - Dst: invalid_char
      Src: /src/haproxy/src/server.c:3618,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3622,1
    - Dst: _srv_parse_tmpl_range
      Src: /src/haproxy/src/server.c:3632,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3633,1
    - Dst: new_server
      Src: /src/haproxy/src/server.c:3645,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3647,1
    - Dst: register_parsing_obj
      Src: /src/haproxy/src/server.c:3651,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3666,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3668,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/server.c:3680,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3687,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:3689,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:3695,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3697,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/server.c:3704,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:3705,1
    - Dst: quic_transport_params_init
      Src: /src/haproxy/src/server.c:3706,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:3709,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3710,1
    - Dst: find_srvrq_by_name
      Src: /src/haproxy/src/server.c:3734,1
    - Dst: new_resolv_srvrq
      Src: /src/haproxy/src/server.c:3735,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:3740,1
    - Dst: srv_prepare_for_resolution
      Src: /src/haproxy/src/server.c:3742,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3743,1
    - Dst: srv_set_addr_desc
      Src: /src/haproxy/src/server.c:3760,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/server.c:3763,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3764,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/server.c:3774,1
    - Dst: srv_settings_init
      Src: /src/haproxy/src/server.c:3776,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/server.c:3777,1
    - Dst: srv_alloc
      Src: /src/haproxy/src/server.c:3786,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3788,1
    - Dst: srv_settings_init
      Src: /src/haproxy/src/server.c:3793,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3800,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3804,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: 3806
      start: 3582
    functionDepth: 4
    functionLinenumber: 3582
    functionLinenumberEnd: 3806
    functionName: _srv_parse_init
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - protocol_lookup
    - srv_settings_init
    - mark_tainted
    - srv_settings_cpy
    - ha_free
    - quic_transport_params_init
    - srv_alloc
    - strdup
    - invalid_prefix_char
    - LIST_APPEND
    - HA_SPIN_INIT
    - ha_alert
    - srv_set_addr_desc
    - str2sa_range
    - new_server
    - invalid_char
    - _srv_parse_tmpl_range
    - find_srvrq_by_name
    - free
    - xprt_get
    - srv_is_quic
    - new_resolv_srvrq
    - srv_prepare_for_resolution
    - register_parsing_obj
    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:3827,1
    - Dst: srv_find_best_kw
      Src: /src/haproxy/src/server.c:3829,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3831,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3836,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3844,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3851,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3857,1
    - Dst: struct srv_kw*::parse
      Src: /src/haproxy/src/server.c:3863,1
    - Dst: display_parser_err
      Src: /src/haproxy/src/server.c:3865,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3866,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: 3874
      start: 3818
    functionDepth: 5
    functionLinenumber: 3818
    functionLinenumberEnd: 3874
    functionName: _srv_parse_kw
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - struct srv_kw*::parse
    - srv_find_best_kw
    - display_parser_err
    - free
    - ha_alert
    - srv_find_kw
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3892,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3897,1
    - Dst: server_parse_exprs
      Src: /src/haproxy/src/server.c:3902,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3904,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3905,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/server.c:3920,1
    - Dst: unlikely
      Src: /src/haproxy/src/server.c:3921,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/server.c:3921,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3924,1
    - Dst: free
      Src: /src/haproxy/src/server.c:3925,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:3932,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3934,1
    - Dst: ssl_sock_parse_alpn
      Src: /src/haproxy/src/server.c:3939,1
    - Dst: _srv_check_proxy_mode
      Src: /src/haproxy/src/server.c:3952,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/server.c:3955,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 44
    argCount: 5
    argNames:
    - args
    - cur_arg
    - srv
    - px
    - parse_flags
    argTypes:
    - char**
    - int
    - struct server*
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3958
      start: 3883
    functionDepth: 7
    functionLinenumber: 3883
    functionLinenumberEnd: 3958
    functionName: _srv_parse_finalize
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - unlikely
    - srv_lb_commit_status
    - parse_logformat_string
    - free
    - srv_is_quic
    - ssl_sock_parse_alpn
    - ha_alert
    - _srv_check_proxy_mode
    - server_parse_exprs
    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:3969,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:3972,1
    - Dst: failifnotcap
      Src: /src/haproxy/src/server.c:3976,1
    - Dst: _srv_parse_init
      Src: /src/haproxy/src/server.c:3987,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:3994,1
    - Dst: _srv_parse_kw
      Src: /src/haproxy/src/server.c:3998,1
    - Dst: _srv_parse_finalize
      Src: /src/haproxy/src/server.c:4005,1
    - Dst: _srv_parse_tmpl_init
      Src: /src/haproxy/src/server.c:4011,1
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/server.c:4014,1
    - Dst: server_index_id
      Src: /src/haproxy/src/server.c:4024,1
    - Dst: HA_DIAG_WARNING_COND
      Src: /src/haproxy/src/server.c:4026,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/server.c:4029,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/server.c:4033,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: 4035
      start: 3960
    functionDepth: 8
    functionLinenumber: 3960
    functionLinenumberEnd: 4035
    functionName: parse_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 2
    functionsReached:
    - _srv_parse_kw
    - strdup
    - reset_usermsgs_ctx
    - _srv_parse_finalize
    - failifnotcap
    - HA_DIAG_WARNING_COND
    - set_usermsgs_ctx
    - ha_alert
    - _srv_parse_tmpl_init
    - cebis_item_insert
    - server_index_id
    - _srv_parse_init
    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:4050,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - bk
    - id
    - rid
    argTypes:
    - struct proxy*
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4054
      start: 4046
    functionDepth: 1
    functionLinenumber: 4046
    functionLinenumberEnd: 4054
    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:4065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - px
    - name
    argTypes:
    - struct proxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4066
      start: 4060
    functionDepth: 1
    functionLinenumber: 4060
    functionLinenumberEnd: 4066
    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:4077,1
    - Dst: cebuis_item_lookup
      Src: /src/haproxy/src/server.c:4078,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/server.c:4079,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - px
    - addr
    argTypes:
    - struct proxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4081
      start: 4073
    functionDepth: 1
    functionLinenumber: 4073
    functionLinenumberEnd: 4081
    functionName: server_find_by_addr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cebuis_item_lookup
    - HA_RWLOCK_RDUNLOCK
    - 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:4100,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:4100,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/server.c:4103,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - bk
    - name
    argTypes:
    - struct proxy*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4107
      start: 4087
    functionDepth: 2
    functionLinenumber: 4087
    functionLinenumberEnd: 4107
    functionName: server_find
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - server_find_by_name
    - atoi
    - server_find_by_id
    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:4130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - bk
    - name
    - rid
    argTypes:
    - struct proxy*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4134
      start: 4126
    functionDepth: 3
    functionLinenumber: 4126
    functionLinenumberEnd: 4134
    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:4150,1
    - Dst: server_find_by_id
      Src: /src/haproxy/src/server.c:4161,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: 4195
      start: 4136
    functionDepth: 3
    functionLinenumber: 4136
    functionLinenumberEnd: 4195
    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:4209,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:4213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - s
    - inetaddr
    argTypes:
    - struct server*
    - struct server_inetaddr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4224
      start: 4202
    functionDepth: 0
    functionLinenumber: 4202
    functionLinenumberEnd: 4224
    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: 4246
      start: 4228
    functionDepth: 0
    functionLinenumber: 4228
    functionLinenumberEnd: 4246
    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:4268,1
    - Dst: find_nameserver_by_resolvers_and_id
      Src: /src/haproxy/src/server.c:4269,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:4270,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4271,1
    - Dst: server_inetaddr_updater_by_to_str
      Src: /src/haproxy/src/server.c:4278,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4280,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: 4284
      start: 4250
    functionDepth: 1
    functionLinenumber: 4250
    functionLinenumberEnd: 4284
    functionName: _srv_append_inetaddr_updater_info
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_inetaddr_updater_by_to_str
    - chunk_appendf
    - find_nameserver_by_resolvers_and_id
    - 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:4289,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/server.c:4293,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/server.c:4296,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: 4299
      start: 4287
    functionDepth: 1
    functionLinenumber: 4287
    functionLinenumberEnd: 4299
    functionName: _addr_to_str
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - strlcpy2
    - 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:4311,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:4316,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - inetaddr
    - addr
    argTypes:
    - struct server_inetaddr*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4321
      start: 4301
    functionDepth: 0
    functionLinenumber: 4301
    functionLinenumberEnd: 4321
    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:4364,1
    - Dst: _inetaddr_addr_cmp
      Src: /src/haproxy/src/server.c:4370,1
    - Dst: _addr_to_str
      Src: /src/haproxy/src/server.c:4384,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4385,1
    - Dst: _addr_to_str
      Src: /src/haproxy/src/server.c:4386,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4387,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4410,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4411,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4436,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4438,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4440,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4442,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4444,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4445,1
    - Dst: _srv_event_hdl_prepare
      Src: /src/haproxy/src/server.c:4450,1
    - Dst: _srv_event_hdl_prepare_inetaddr
      Src: /src/haproxy/src/server.c:4451,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:4456,1
    - Dst: _srv_append_inetaddr_updater_info
      Src: /src/haproxy/src/server.c:4462,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: 4464
      start: 4349
    functionDepth: 2
    functionLinenumber: 4349
    functionLinenumberEnd: 4464
    functionName: server_set_inetaddr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_event_hdl_prepare_inetaddr
    - _addr_to_str
    - _srv_event_hdl_prepare
    - chunk_printf
    - chunk_appendf
    - BUG_ON
    - _srv_event_hdl_publish
    - _inetaddr_addr_cmp
    - _srv_append_inetaddr_updater_info
    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:4476,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:4479,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:4481,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:4484,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:4487,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: 4490
      start: 4472
    functionDepth: 3
    functionLinenumber: 4472
    functionLinenumberEnd: 4490
    functionName: server_set_inetaddr_warn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - get_trash_chunk
    - send_log
    - server_set_inetaddr
    - 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:4507,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:4508,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:4515,1
    - Dst: memcpy
      Src: /src/haproxy/src/server.c:4518,1
    - Dst: server_set_inetaddr_warn
      Src: /src/haproxy/src/server.c:4522,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: 4525
      start: 4503
    functionDepth: 4
    functionLinenumber: 4503
    functionLinenumberEnd: 4525
    functionName: srv_update_addr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_get_inetaddr
    - server_set_inetaddr_warn
    - BUG_ON
    - memcpy
    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:4538,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:4539,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/server.c:4542,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:4546,1
    - Dst: str2ip
      Src: /src/haproxy/src/server.c:4547,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4548,1
    - Dst: strl2irc
      Src: /src/haproxy/src/server.c:4553,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:4553,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4554,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4558,1
    - Dst: set_srv_agent_addr
      Src: /src/haproxy/src/server.c:4567,1
    - Dst: set_srv_agent_port
      Src: /src/haproxy/src/server.c:4569,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 3
    argNames:
    - s
    - addr
    - port
    argTypes:
    - struct server*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4572
      start: 4532
    functionDepth: 2
    functionLinenumber: 4532
    functionLinenumberEnd: 4572
    functionName: srv_update_agent_addr_port
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - memset
    - get_trash_chunk
    - chunk_appendf
    - strl2irc
    - set_srv_agent_addr
    - strlen
    - chunk_strcat
    - set_srv_agent_port
    - str2ip
    - chunk_reset
    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:4585,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:4586,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/server.c:4589,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:4593,1
    - Dst: str2ip2
      Src: /src/haproxy/src/server.c:4594,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4595,1
    - Dst: strl2irc
      Src: /src/haproxy/src/server.c:4600,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:4600,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4601,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4605,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4610,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:4625,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 45
    argCount: 3
    argNames:
    - s
    - addr
    - port
    argTypes:
    - struct server*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4628
      start: 4579
    functionDepth: 2
    functionLinenumber: 4579
    functionLinenumberEnd: 4628
    functionName: srv_update_check_addr_port
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - str2ip2
    - memset
    - get_trash_chunk
    - chunk_appendf
    - strl2irc
    - strlen
    - chunk_strcat
    - xprt_get
    - chunk_reset
    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:4651,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:4652,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4658,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:4662,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:4665,1
    - Dst: str2ip2
      Src: /src/haproxy/src/server.c:4666,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4667,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4673,1
    - Dst: strtol
      Src: /src/haproxy/src/server.c:4696,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:4698,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:4722,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:4724,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: 4728
      start: 4643
    functionDepth: 3
    functionLinenumber: 4643
    functionLinenumberEnd: 4728
    functionName: srv_update_addr_port
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - str2ip2
    - memset
    - get_trash_chunk
    - chunk_printf
    - chunk_appendf
    - server_get_inetaddr
    - server_set_inetaddr
    - strtol
    - chunk_reset
    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:4746,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4748
      start: 4738
    functionDepth: 2
    functionLinenumber: 4738
    functionLinenumberEnd: 4748
    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:4770,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4782,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4787,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4788,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4791,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4796,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4797,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4800,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4805,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4806,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4809,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4814,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4815,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:4818,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4824
      start: 4758
    functionDepth: 3
    functionLinenumber: 4758
    functionLinenumberEnd: 4824
    functionName: snr_set_srv_down
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_set_admin_flag
    - tick_add
    - tick_is_expired
    - srvrq_set_srv_down
    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:4850,1
    - Dst: resolv_get_ip_from_response
      Src: /src/haproxy/src/server.c:4891,1
    - Dst: srv_update_addr
      Src: /src/haproxy/src/server.c:4916,1
    - Dst: SERVER_INETADDR_UPDATER_DNS_RESOLVER
      Src: /src/haproxy/src/server.c:4917,1
    - Dst: srv_update_addr
      Src: /src/haproxy/src/server.c:4920,1
    - Dst: snr_set_srv_down
      Src: /src/haproxy/src/server.c:4923,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:4927,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:4929,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:4930,1
    - Dst: snr_set_srv_down
      Src: /src/haproxy/src/server.c:4939,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:4943,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:4945,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:4946,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 75
    argCount: 2
    argNames:
    - requester
    - counters
    argTypes:
    - struct resolv_requester*
    - struct dns_counters*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4949
      start: 4841
    functionDepth: 5
    functionLinenumber: 4841
    functionLinenumberEnd: 4949
    functionName: snr_resolution_cb
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memset
    - resolv_get_ip_from_response
    - snr_set_srv_down
    - objt_server
    - server_get_inetaddr
    - srv_update_addr
    - SERVER_INETADDR_UPDATER_DNS_RESOLVER
    - server_set_inetaddr
    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:4967,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4978,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4979,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4985,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4986,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4992,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:4993,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:4999,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/server.c:5000,1
    - Dst: resolv_detach_from_resolution_answer_items
      Src: /src/haproxy/src/server.c:5005,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - requester
    - error_code
    argTypes:
    - struct resolv_requester*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5008
      start: 4959
    functionDepth: 1
    functionLinenumber: 4959
    functionLinenumberEnd: 5008
    functionName: srvrq_resolution_error_cb
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - resolv_detach_from_resolution_answer_items
    - objt_resolv_srvrq
    - tick_add
    - tick_is_expired
    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:5022,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5026,1
    - Dst: snr_set_srv_down
      Src: /src/haproxy/src/server.c:5027,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/server.c:5031,1
    - Dst: memset
      Src: /src/haproxy/src/server.c:5033,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/server.c:5034,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5035,1
    - Dst: resolv_detach_from_resolution_answer_items
      Src: /src/haproxy/src/server.c:5036,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - requester
    - error_code
    argTypes:
    - struct resolv_requester*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5042
      start: 5018
    functionDepth: 4
    functionLinenumber: 5018
    functionLinenumberEnd: 5042
    functionName: snr_resolution_error_cb
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memset
    - snr_set_srv_down
    - objt_server
    - resolv_detach_from_resolution_answer_items
    - server_get_inetaddr
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - server_set_inetaddr
    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:5073,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:5076,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5078,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5084,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:5093,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:5095,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5096,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5099,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: 5104
      start: 5052
    functionDepth: 1
    functionLinenumber: 5052
    functionLinenumberEnd: 5104
    functionName: snr_check_ip_callback
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memcmp
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:5115,1
    - Dst: str2ip2
      Src: /src/haproxy/src/server.c:5119,1
    - Dst: _srv_set_inetaddr
      Src: /src/haproxy/src/server.c:5124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - srv
    - err_code
    argTypes:
    - struct server*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5126
      start: 5111
    functionDepth: 4
    functionLinenumber: 5111
    functionLinenumberEnd: 5126
    functionName: srv_set_addr_via_libc
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - str2ip2
    - memset
    - _srv_set_inetaddr
    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:5144,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:5151,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5152,1
    - Dst: resolv_str_to_dn_label
      Src: /src/haproxy/src/server.c:5154,1
    - Dst: memcmp
      Src: /src/haproxy/src/server.c:5163,1
    - Dst: resolv_unlink_resolution
      Src: /src/haproxy/src/server.c:5166,1
    - Dst: free
      Src: /src/haproxy/src/server.c:5168,1
    - Dst: free
      Src: /src/haproxy/src/server.c:5169,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:5170,1
    - Dst: strdup
      Src: /src/haproxy/src/server.c:5171,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/server.c:5179,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5184,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5189,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 3
    argNames:
    - srv
    - hostname
    - resolv_locked
    argTypes:
    - struct server*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5191
      start: 5133
    functionDepth: 3
    functionLinenumber: 5133
    functionLinenumberEnd: 5191
    functionName: srv_set_fqdn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - strdup
    - resolv_str_to_dn_label
    - resolv_unlink_resolution
    - memcmp
    - resolv_link_resolution
    - strlen
    - free
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - chunk_reset
    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:5202,1
    - Dst: str2ip2
      Src: /src/haproxy/src/server.c:5206,1
    - Dst: _srv_set_inetaddr
      Src: /src/haproxy/src/server.c:5211,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - srv
    - err_code
    argTypes:
    - struct server*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5213
      start: 5198
    functionDepth: 4
    functionLinenumber: 5198
    functionLinenumberEnd: 5213
    functionName: srv_apply_lastaddr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - str2ip2
    - memset
    - _srv_set_inetaddr
    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:5230,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:5231,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:5234,1
    - Dst: srv_append_initaddr
      Src: /src/haproxy/src/server.c:5243,1
    - Dst: srv_get_next_initaddr
      Src: /src/haproxy/src/server.c:5247,1
    - Dst: srv_apply_lastaddr
      Src: /src/haproxy/src/server.c:5251,1
    - Dst: srv_set_addr_via_libc
      Src: /src/haproxy/src/server.c:5259,1
    - Dst: srv_set_admin_flag
      Src: /src/haproxy/src/server.c:5265,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server.c:5267,1
    - Dst: _srv_set_inetaddr
      Src: /src/haproxy/src/server.c:5273,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server.c:5275,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:5286,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:5288,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/server.c:5293,1
    - Dst: srv_set_addr_desc
      Src: /src/haproxy/src/server.c:5294,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 59
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5296
      start: 5216
    functionDepth: 6
    functionLinenumber: 5216
    functionLinenumberEnd: 5296
    functionName: srv_iterate_initaddr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_apply_lastaddr
    - srv_append_initaddr
    - srv_set_admin_flag
    - srv_get_next_initaddr
    - srv_set_dyncookie
    - ha_notice
    - ha_alert
    - srv_set_addr_via_libc
    - srv_set_addr_desc
    - _srv_set_inetaddr
    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:5320,1
    - Dst: srv_iterate_initaddr
      Src: /src/haproxy/src/server.c:5322,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/server.c:5323,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5331
      start: 5306
    functionDepth: 7
    functionLinenumber: 5306
    functionLinenumberEnd: 5331
    functionName: srv_init_addr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_iterate_initaddr
    - reset_usermsgs_ctx
    - set_usermsgs_ctx
    linkageType: ''
    returnType: int
    signature: int srv_init_addr(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/server.c:5341,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:5342,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5344,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5345,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5349,1
    - Dst: invalid_domainchar
      Src: /src/haproxy/src/server.c:5349,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5350,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5354,1
    - Dst: srv_set_fqdn
      Src: /src/haproxy/src/server.c:5357,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:5358,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5359,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5369,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:5370,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: 5373
      start: 5336
    functionDepth: 4
    functionLinenumber: 5336
    functionLinenumberEnd: 5373
    functionName: srv_update_fqdn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - strcmp
    - srv_set_fqdn
    - chunk_appendf
    - invalid_domainchar
    - strlen
    - chunk_reset
    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:5386,1
    - Dst: istsplit
      Src: /src/haproxy/src/server.c:5388,1
    - Dst: istlen
      Src: /src/haproxy/src/server.c:5389,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5390,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/server.c:5394,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:5394,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5395,1
    - Dst: server_find
      Src: /src/haproxy/src/server.c:5398,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:5398,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5399,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5404,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - appctx
    - arg
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5409
      start: 5382
    functionDepth: 3
    functionLinenumber: 5382
    functionLinenumberEnd: 5409
    functionName: cli_find_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - istlen
    - server_find
    - cli_err
    - istsplit
    - proxy_be_by_name
    - ist0
    - ist
    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:5418,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5421,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5425,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5426,1
    - Dst: server_parse_weight_change_request
      Src: /src/haproxy/src/server.c:5427,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5428,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5430,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5432,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5433,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5434,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/server.c:5435,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5436,1
    - Dst: srv_adm_set_drain
      Src: /src/haproxy/src/server.c:5437,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5438,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/server.c:5439,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5441,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5442,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5444,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5445,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5447,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5448,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/server.c:5450,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5452,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/server.c:5454,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5456,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/server.c:5458,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5461,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5462,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5464,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5465,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5467,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5468,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/server.c:5470,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5472,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/server.c:5474,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5477,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5478,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5480,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5483,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5484,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5489,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5491,1
    - Dst: srv_update_agent_addr_port
      Src: /src/haproxy/src/server.c:5492,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5493,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5495,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5497,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5499,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5500,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5505,1
    - Dst: srv_update_agent_addr_port
      Src: /src/haproxy/src/server.c:5506,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5507,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5509,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5511,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5512,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5514,1
    - Dst: set_srv_agent_send
      Src: /src/haproxy/src/server.c:5516,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5517,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5519,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5521,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5524,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5525,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5530,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5532,1
    - Dst: srv_update_check_addr_port
      Src: /src/haproxy/src/server.c:5533,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5534,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5536,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5538,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5540,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5541,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5546,1
    - Dst: srv_update_check_addr_port
      Src: /src/haproxy/src/server.c:5547,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5548,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5550,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5552,1
    - Dst: strlen
      Src: /src/haproxy/src/server.c:5555,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5556,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5562,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5565,1
    - Dst: srv_update_addr_port
      Src: /src/haproxy/src/server.c:5566,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5568,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5569,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5571,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5573,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5577,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5581,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5584,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5585,1
    - Dst: srv_update_fqdn
      Src: /src/haproxy/src/server.c:5590,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5591,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5592,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5594,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5596,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5601,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5606,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5611,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5612,1
    - Dst: srv_set_ssl
      Src: /src/haproxy/src/server.c:5613,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/server.c:5614,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:5614,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:5617,1
    - Dst: srv_set_ssl
      Src: /src/haproxy/src/server.c:5618,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/server.c:5619,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:5619,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5623,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5624,1
    - Dst: srv_cleanup_connections
      Src: /src/haproxy/src/server.c:5627,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5628,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5629,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:5631,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5634,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 208
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5642
      start: 5413
    functionDepth: 5
    functionLinenumber: 5413
    functionLinenumberEnd: 5642
    functionName: cli_parse_set_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_update_fqdn
    - srv_set_stopping
    - srv_set_running
    - srv_update_addr_port
    - HA_SPIN_LOCK
    - srv_update_agent_addr_port
    - strcmp
    - strlen
    - srv_adm_set_ready
    - HA_SPIN_UNLOCK
    - set_srv_agent_send
    - cli_has_level
    - cli_err
    - cli_find_server
    - memprintf
    - cli_msg
    - server_parse_weight_change_request
    - srv_cleanup_connections
    - srv_adm_set_maint
    - srv_set_stopped
    - cli_dynerr
    - srv_adm_set_drain
    - srv_update_check_addr_port
    - srv_set_ssl
    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:5648,1
    - Dst: istsplit
      Src: /src/haproxy/src/server.c:5650,1
    - Dst: istlen
      Src: /src/haproxy/src/server.c:5651,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5652,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/server.c:5654,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:5654,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5655,1
    - Dst: server_find
      Src: /src/haproxy/src/server.c:5656,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:5656,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5657,1
    - Dst: snprintf
      Src: /src/haproxy/src/server.c:5660,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/server.c:5662,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: 5665
      start: 5644
    functionDepth: 3
    functionLinenumber: 5644
    functionLinenumberEnd: 5665
    functionName: cli_parse_get_weight
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - istlen
    - server_find
    - snprintf
    - cli_err
    - istsplit
    - proxy_be_by_name
    - applet_putstr
    - ist0
    - ist
    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:5676,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5679,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5683,1
    - Dst: server_parse_weight_change_request
      Src: /src/haproxy/src/server.c:5685,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5687,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5689,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: 5692
      start: 5671
    functionDepth: 4
    functionLinenumber: 5671
    functionLinenumberEnd: 5692
    functionName: cli_parse_set_weight
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_parse_weight_change_request
    - cli_err
    - cli_find_server
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - cli_has_level
    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:5703,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5706,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5710,1
    - Dst: server_parse_maxconn_change_request
      Src: /src/haproxy/src/server.c:5712,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5714,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5716,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: 5719
      start: 5698
    functionDepth: 5
    functionLinenumber: 5698
    functionLinenumberEnd: 5719
    functionName: cli_parse_set_maxconn_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - server_parse_maxconn_change_request
    - cli_err
    - cli_find_server
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - cli_has_level
    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:5729,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5732,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5736,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5738,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: 5740
      start: 5725
    functionDepth: 4
    functionLinenumber: 5725
    functionLinenumberEnd: 5740
    functionName: cli_parse_disable_agent
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - cli_has_level
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:5750,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5753,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5757,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5759,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: 5761
      start: 5746
    functionDepth: 4
    functionLinenumber: 5746
    functionLinenumberEnd: 5761
    functionName: cli_parse_disable_health
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - cli_has_level
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:5771,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5774,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5778,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/server.c:5779,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5780,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: 5782
      start: 5767
    functionDepth: 4
    functionLinenumber: 5767
    functionLinenumberEnd: 5782
    functionName: cli_parse_disable_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_adm_set_maint
    - cli_find_server
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - 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:5792,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5795,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5800,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5802,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5804,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: 5806
      start: 5788
    functionDepth: 4
    functionLinenumber: 5788
    functionLinenumberEnd: 5806
    functionName: cli_parse_enable_agent
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_err
    - cli_find_server
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - cli_has_level
    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:5816,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5819,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:5824,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5826,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5828,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: 5830
      start: 5812
    functionDepth: 4
    functionLinenumber: 5812
    functionLinenumberEnd: 5830
    functionName: cli_parse_enable_health
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - cli_err
    - cli_find_server
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - cli_has_level
    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:5840,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/server.c:5843,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:5847,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/server.c:5848,1
    - Dst: srv_check_for_dup_dyncookie
      Src: /src/haproxy/src/server.c:5852,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5853,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: 5855
      start: 5836
    functionDepth: 4
    functionLinenumber: 5836
    functionLinenumberEnd: 5855
    functionName: cli_parse_enable_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - srv_check_for_dup_dyncookie
    - srv_adm_set_ready
    - cli_find_server
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - cli_has_level
    linkageType: ''
    returnType: int
    signature: int cli_parse_enable_server(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/server.c:5876,1
    - Dst: full_hash
      Src: /src/haproxy/src/server.c:5883,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - sv
    - be
    argTypes:
    - struct server*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5888
      start: 5865
    functionDepth: 2
    functionLinenumber: 5865
    functionLinenumberEnd: 5888
    functionName: srv_alloc_lb
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - full_hash
    - calloc
    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:5904,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:5907,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/server.c:5910,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:5912,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:5918,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/server.c:5918,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:5918,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5920
      start: 5894
    functionDepth: 4
    functionLinenumber: 5894
    functionLinenumberEnd: 5920
    functionName: server_warmup
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - process_srv_queue
    - tick_add
    - MAX
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - MS_TO_TICKS
    - server_recalc_eweight
    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:5932,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:5933,1
    - Dst: task_schedule
      Src: /src/haproxy/src/server.c:5946,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:5947,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/server.c:5948,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:5948,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:5948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5953
      start: 5927
    functionDepth: 1
    functionLinenumber: 5927
    functionLinenumberEnd: 5953
    functionName: init_srv_slowstart
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - tick_add
    - ns_to_sec
    - task_new_anywhere
    - MAX
    - ha_alert
    - MS_TO_TICKS
    - task_schedule
    linkageType: ''
    returnType: int
    signature: int init_srv_slowstart(struct server *srv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tasklet_new
      Src: /src/haproxy/src/server.c:5960,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:5961,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/server.c:5973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5975
      start: 5956
    functionDepth: 1
    functionLinenumber: 5956
    functionLinenumberEnd: 5975
    functionName: init_srv_requeue
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - tasklet_wakeup
    - tasklet_new
    - ha_alert
    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:5984,1
    - Dst: ha_aligned_zalloc
      Src: /src/haproxy/src/server.c:5985,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/server.c:5993,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/server.c:5994,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/server.c:5996,1
    - Dst: queue_init
      Src: /src/haproxy/src/server.c:6001,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6005
      start: 5980
    functionDepth: 1
    functionLinenumber: 5980
    functionLinenumberEnd: 6005
    functionName: srv_init_per_thr
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - queue_init
    - ha_aligned_zalloc
    - LIST_INIT
    - MT_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:6033,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6034,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/server.c:6036,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/server.c:6047,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6048,1
    - Dst: STRESS_RUN1
      Src: /src/haproxy/src/server.c:6049,1
    - Dst: applet_putchk_stress
      Src: /src/haproxy/src/server.c:6049,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/server.c:6050,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/server.c:6055,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/server.c:6063,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6071
      start: 6023
    functionDepth: 1
    functionLinenumber: 6023
    functionLinenumberEnd: 6071
    functionName: cli_io_handler_add_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - applet_putchk_stress
    - cli_err
    - STRESS_RUN1
    - applet_putstr
    - applet_putchk
    - LIST_NEXT
    - ABORT_NOW
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_add_server(struct appctx *appctx)
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/server.c:6079,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/server.c:6087,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/server.c:6089,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:6094,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6112,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/server.c:6114,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6116,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6119,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6124,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/server.c:6134,1
    - Dst: server_find
      Src: /src/haproxy/src/server.c:6139,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6140,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6141,1
    - Dst: _srv_parse_init
      Src: /src/haproxy/src/server.c:6146,1
    - Dst: _srv_parse_kw
      Src: /src/haproxy/src/server.c:6151,1
    - Dst: _srv_parse_finalize
      Src: /src/haproxy/src/server.c:6157,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:6168,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/server.c:6173,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:6173,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/server.c:6177,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/server.c:6180,1
    - Dst: isteq
      Src: /src/haproxy/src/server.c:6182,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6183,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:6187,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6188,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/server.c:6191,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6192,1
    - Dst: srv_alloc_lb
      Src: /src/haproxy/src/server.c:6198,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6199,1
    - Dst: stats_allocate_proxy_counters_internal
      Src: /src/haproxy/src/server.c:6203,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6206,1
    - Dst: srv_minmax_conn_apply
      Src: /src/haproxy/src/server.c:6211,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6215,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6215,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6216,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6219,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6219,1
    - Dst: xprt_get
      Src: /src/haproxy/src/server.c:6220,1
    - Dst: srv_apply_track
      Src: /src/haproxy/src/server.c:6226,1
    - Dst: init_srv_check
      Src: /src/haproxy/src/server.c:6235,1
    - Dst: init_srv_agent_check
      Src: /src/haproxy/src/server.c:6242,1
    - Dst: srv_preinit
      Src: /src/haproxy/src/server.c:6248,1
    - Dst: srv_postinit
      Src: /src/haproxy/src/server.c:6251,1
    - Dst: server_get_next_id
      Src: /src/haproxy/src/server.c:6257,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6259,1
    - Dst: server_index_id
      Src: /src/haproxy/src/server.c:6267,1
    - Dst: cebis_item_insert
      Src: /src/haproxy/src/server.c:6268,1
    - Dst: cebuis_item_insert
      Src: /src/haproxy/src/server.c:6271,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/server.c:6286,1
    - Dst: srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:6292,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6294,1
    - Dst: start_check_task
      Src: /src/haproxy/src/server.c:6302,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6303,1
    - Dst: start_check_task
      Src: /src/haproxy/src/server.c:6306,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6307,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6311,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server.c:6313,1
    - Dst: cli_umsg
      Src: /src/haproxy/src/server.c:6314,1
    - Dst: release_server_track
      Src: /src/haproxy/src/server.c:6319,1
    - Dst: free_check
      Src: /src/haproxy/src/server.c:6322,1
    - Dst: srv_drop
      Src: /src/haproxy/src/server.c:6323,1
    - Dst: free_check
      Src: /src/haproxy/src/server.c:6326,1
    - Dst: srv_drop
      Src: /src/haproxy/src/server.c:6327,1
    - Dst: srv_detach
      Src: /src/haproxy/src/server.c:6331,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6334,1
    - Dst: usermsgs_empty
      Src: /src/haproxy/src/server.c:6336,1
    - Dst: cli_umsgerr
      Src: /src/haproxy/src/server.c:6337,1
    - Dst: srv_drop
      Src: /src/haproxy/src/server.c:6340,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 179
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6343
      start: 6077
    functionDepth: 8
    functionLinenumber: 6077
    functionLinenumberEnd: 6343
    functionName: cli_parse_add_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - _srv_parse_kw
    - isteq
    - stats_allocate_proxy_counters_internal
    - thread_isolate
    - _srv_parse_finalize
    - srv_preinit
    - release_server_track
    - get_mux_proto
    - init_srv_check
    - server_index_id
    - usermsgs_clr
    - conn_pr_mode_to_proto_mode
    - ha_warning
    - cli_umsgerr
    - strcmp
    - server_find
    - free_check
    - srv_event_hdl_publish
    - cli_umsg
    - srv_detach
    - proxy_be_by_name
    - srv_drop
    - srv_alloc_lb
    - cli_has_level
    - conn_get_best_mux_entry
    - _srv_parse_init
    - thread_release
    - cli_err
    - ha_alert
    - cebis_item_insert
    - applet_reserve_svcctx
    - srv_postinit
    - ist
    - srv_minmax_conn_apply
    - srv_set_dyncookie
    - start_check_task
    - usermsgs_empty
    - srv_apply_track
    - ha_notice
    - xprt_get
    - srv_is_quic
    - cebuis_item_insert
    - server_get_next_id
    - init_srv_agent_check
    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:6367,1
    - Dst: server_find
      Src: /src/haproxy/src/server.c:6372,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:6397,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:6398,1
    - Dst: srv_has_streams
      Src: /src/haproxy/src/server.c:6398,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:6399,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/server.c:6399,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: 6414
      start: 6357
    functionDepth: 3
    functionLinenumber: 6357
    functionLinenumberEnd: 6414
    functionName: srv_check_for_deletion
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - proxy_be_by_name
    - srv_has_streams
    - _HA_ATOMIC_LOAD
    - server_find
    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:6428,1
    - Dst: thread_isolate_full
      Src: /src/haproxy/src/server.c:6439,1
    - Dst: ist
      Src: /src/haproxy/src/server.c:6441,1
    - Dst: istsplit
      Src: /src/haproxy/src/server.c:6442,1
    - Dst: istlen
      Src: /src/haproxy/src/server.c:6443,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6444,1
    - Dst: srv_check_for_deletion
      Src: /src/haproxy/src/server.c:6448,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:6448,1
    - Dst: ist0
      Src: /src/haproxy/src/server.c:6448,1
    - Dst: cli_err
      Src: /src/haproxy/src/server.c:6451,1
    - Dst: srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:6458,1
    - Dst: release_server_track
      Src: /src/haproxy/src/server.c:6462,1
    - Dst: check_purge
      Src: /src/haproxy/src/server.c:6466,1
    - Dst: check_purge
      Src: /src/haproxy/src/server.c:6468,1
    - Dst: struct server*::proxy::lbprm::server_deinit
      Src: /src/haproxy/src/server.c:6471,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/server.c:6473,1
    - Dst: MT_LIST_NEXT
      Src: /src/haproxy/src/server.c:6474,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/server.c:6475,1
    - Dst: watcher_next
      Src: /src/haproxy/src/server.c:6476,1
    - Dst: srv_detach
      Src: /src/haproxy/src/server.c:6483,1
    - Dst: ceb32_item_delete
      Src: /src/haproxy/src/server.c:6486,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/server.c:6487,1
    - Dst: cebuis_item_delete
      Src: /src/haproxy/src/server.c:6488,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/server.c:6491,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6505,1
    - Dst: ha_notice
      Src: /src/haproxy/src/server.c:6507,1
    - Dst: srv_drop
      Src: /src/haproxy/src/server.c:6508,1
    - Dst: cli_msg
      Src: /src/haproxy/src/server.c:6510,1
    - Dst: thread_release
      Src: /src/haproxy/src/server.c:6514,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6516
      start: 6419
    functionDepth: 6
    functionLinenumber: 6419
    functionLinenumberEnd: 6516
    functionName: cli_parse_delete_server
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - ceb32_item_delete
    - cebis_item_delete
    - release_server_track
    - eb32_delete
    - watcher_next
    - istlen
    - srv_event_hdl_publish
    - srv_detach
    - srv_check_for_deletion
    - srv_drop
    - check_purge
    - cli_has_level
    - struct server*::proxy::lbprm::server_deinit
    - thread_release
    - MT_LIST_ISEMPTY
    - cebuis_item_delete
    - cli_err
    - BUG_ON
    - istsplit
    - cli_msg
    - ist
    - ha_notice
    - MT_LIST_NEXT
    - thread_isolate_full
    - ist0
    linkageType: ''
    returnType: int
    signature: int cli_parse_delete_server(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: strrchr
      Src: /src/haproxy/src/server.c:6557,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/server.c:6568,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6570,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/server.c:6579,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6581,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6587,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6594,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6604,1
    - Dst: ha_alert
      Src: /src/haproxy/src/server.c:6613,1
    - Dst: ha_free
      Src: /src/haproxy/src/server.c:6624,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - srv
    - curproxy
    argTypes:
    - struct server*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6627
      start: 6547
    functionDepth: 2
    functionLinenumber: 6547
    functionLinenumberEnd: 6627
    functionName: srv_apply_track
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - ha_free
    - strrchr
    - server_find_by_name
    - proxy_be_by_name
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int srv_apply_track(struct server *srv, struct proxy *curproxy)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: struct proxy*::lbprm::update_server_eweight
      Src: /src/haproxy/src/server.c:6635,1
    - Dst: srv_willbe_usable
      Src: /src/haproxy/src/server.c:6636,1
    - Dst: struct proxy*::lbprm::set_server_status_up
      Src: /src/haproxy/src/server.c:6638,1
    - Dst: struct proxy*::lbprm::set_server_status_down
      Src: /src/haproxy/src/server.c:6642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6644
      start: 6630
    functionDepth: 1
    functionLinenumber: 6630
    functionLinenumberEnd: 6644
    functionName: srv_lb_propagate
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - struct proxy*::lbprm::set_server_status_down
    - srv_willbe_usable
    - struct proxy*::lbprm::set_server_status_up
    - struct proxy*::lbprm::update_server_eweight
    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:6661,1
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/server.c:6664,1
    - Dst: srv_reset_path_parameters
      Src: /src/haproxy/src/server.c:6666,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:6671,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6673,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6675,1
    - Dst: srv_append_op_chg_cause
      Src: /src/haproxy/src/server.c:6679,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6680,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6682,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6686,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6688,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6692,1
    - Dst: srv_reset_path_parameters
      Src: /src/haproxy/src/server.c:6694,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:6699,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6701,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6703,1
    - Dst: srv_append_op_chg_cause
      Src: /src/haproxy/src/server.c:6707,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6708,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6710,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6711,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6713,1
    - Dst: task_schedule
      Src: /src/haproxy/src/server.c:6720,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:6720,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/server.c:6720,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:6720,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:6722,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6724,1
    - Dst: srv_shutdown_backup_streams
      Src: /src/haproxy/src/server.c:6733,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/server.c:6738,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6740,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6742,1
    - Dst: srv_append_op_chg_cause
      Src: /src/haproxy/src/server.c:6746,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6747,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6749,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6750,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6752,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6757,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - s
    - cause
    argTypes:
    - struct server*
    - enum srv_op_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6760
      start: 6653
    functionDepth: 5
    functionLinenumber: 6653
    functionLinenumberEnd: 6760
    functionName: _srv_update_status_op
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - process_srv_queue
    - tick_add
    - ha_warning
    - srv_append_more
    - srv_shutdown_backup_streams
    - chunk_printf
    - free_trash_chunk
    - srv_reset_path_parameters
    - send_log
    - srv_lb_propagate
    - MAX
    - pendconn_redistribute
    - srv_append_op_chg_cause
    - srv_shutdown_streams
    - MS_TO_TICKS
    - task_schedule
    - alloc_trash_chunk
    - server_recalc_eweight
    linkageType: ''
    returnType: int
    signature: int _srv_update_status_op(struct server *s, enum srv_op_st_chg_cause
      cause)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6784,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6786,1
    - Dst: srv_append_adm_chg_cause
      Src: /src/haproxy/src/server.c:6789,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6790,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6793,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6794,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6797,1
    - Dst: srv_cleanup_connections
      Src: /src/haproxy/src/server.c:6801,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6807,1
    - Dst: srv_reset_path_parameters
      Src: /src/haproxy/src/server.c:6809,1
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/server.c:6812,1
    - Dst: srv_cleanup_connections
      Src: /src/haproxy/src/server.c:6815,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:6820,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6822,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6824,1
    - Dst: srv_append_adm_chg_cause
      Src: /src/haproxy/src/server.c:6828,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:6829,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6832,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6833,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6836,1
    - Dst: task_schedule
      Src: /src/haproxy/src/server.c:6881,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:6881,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/server.c:6881,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:6881,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6889,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6892,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6900,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6908,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6915,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6916,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6918,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:6921,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6923,1
    - Dst: srv_shutdown_backup_streams
      Src: /src/haproxy/src/server.c:6932,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/server.c:6937,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6944,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6946,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:6952,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6954,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6955,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6957,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6961,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6963,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:6969,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6971,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6972,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6974,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:6978,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:6980,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:6984,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:6985,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:6987,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:6997,1
    - Dst: pendconn_redistribute
      Src: /src/haproxy/src/server.c:7003,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7005,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7007,1
    - Dst: srv_append_adm_chg_cause
      Src: /src/haproxy/src/server.c:7009,1
    - Dst: srv_append_more
      Src: /src/haproxy/src/server.c:7010,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7013,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7014,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7017,1
    - Dst: server_recalc_eweight
      Src: /src/haproxy/src/server.c:7022,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7024,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7027,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7034,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:7040,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7044,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7045,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7047,1
    - Dst: srv_lb_propagate
      Src: /src/haproxy/src/server.c:7051,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/server.c:7056,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7059,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/server.c:7065,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/server.c:7069,1
    - Dst: ha_warning
      Src: /src/haproxy/src/server.c:7074,1
    - Dst: send_log
      Src: /src/haproxy/src/server.c:7075,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/server.c:7077,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 172
    argCount: 2
    argNames:
    - s
    - cause
    argTypes:
    - struct server*
    - enum srv_adm_st_chg_cause
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7082
      start: 6770
    functionDepth: 5
    functionLinenumber: 6770
    functionLinenumberEnd: 7082
    functionName: _srv_update_status_adm
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - pendconn_redistribute
    - srv_shutdown_streams
    - srv_reset_path_parameters
    - alloc_trash_chunk
    - process_srv_queue
    - ha_warning
    - srv_shutdown_backup_streams
    - chunk_printf
    - chunk_appendf
    - MAX
    - MS_TO_TICKS
    - task_schedule
    - tick_add
    - srv_append_more
    - srv_cleanup_connections
    - send_log
    - srv_lb_propagate
    - server_recalc_eweight
    - srv_append_adm_chg_cause
    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:7106,1
    - Dst: _srv_update_status_adm
      Src: /src/haproxy/src/server.c:7112,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:7115,1
    - Dst: _srv_update_status_op
      Src: /src/haproxy/src/server.c:7118,1
    - Dst: srv_lb_commit_status
      Src: /src/haproxy/src/server.c:7123,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7129,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7130,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:7131,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/server.c:7136,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:7137,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/server.c:7145,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7147,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/server.c:7149,1
    - Dst: _srv_event_hdl_prepare_state
      Src: /src/haproxy/src/server.c:7152,1
    - Dst: _srv_event_hdl_publish
      Src: /src/haproxy/src/server.c:7154,1
    - Dst: set_backend_down
      Src: /src/haproxy/src/server.c:7159,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7166,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7167,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/server.c:7168,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/server.c:7170,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 40
    argCount: 3
    argNames:
    - s
    - type
    - cause
    argTypes:
    - struct server*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7172
      start: 7094
    functionDepth: 6
    functionLinenumber: 7094
    functionLinenumberEnd: 7172
    functionName: srv_update_status
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 6
    functionsReached:
    - _srv_update_status_op
    - HA_ATOMIC_INC
    - _srv_event_hdl_prepare
    - HA_ATOMIC_STORE
    - srv_lb_commit_status
    - _srv_event_hdl_publish
    - ns_to_sec
    - set_backend_down
    - _srv_event_hdl_prepare_state
    - _srv_update_status_adm
    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:7178,1
    - Dst: struct connection*::mux::destroy
      Src: /src/haproxy/src/server.c:7180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7184
      start: 7174
    functionDepth: 1
    functionLinenumber: 7174
    functionLinenumberEnd: 7184
    functionName: srv_cleanup_toremove_conns
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - MT_LIST_POP
    - struct connection*::mux::destroy
    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:7200,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/server.c:7204,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/server.c:7205,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/server.c:7206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - srv
    - thr
    - toremove_nb
    argTypes:
    - struct server*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7211
      start: 7195
    functionDepth: 2
    functionLinenumber: 7195
    functionLinenumberEnd: 7211
    functionName: srv_migrate_conns_to_remove
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - conn_delete_from_tree
    - LIST_ISEMPTY
    - LIST_ELEM
    - MT_LIST_APPEND
    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:7228,1
    - Dst: srv_migrate_conns_to_remove
      Src: /src/haproxy/src/server.c:7231,1
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/server.c:7235,1
    - Dst: sess_conns_cleanup_all_idle
      Src: /src/haproxy/src/server.c:7236,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/server.c:7239,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/server.c:7240,1
    - Dst: pool_free
      Src: /src/haproxy/src/server.c:7241,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7246,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/server.c:7248,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7253
      start: 7215
    functionDepth: 3
    functionLinenumber: 7215
    functionLinenumberEnd: 7253
    functionName: srv_cleanup_connections
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - MT_LIST_POP
    - srv_migrate_conns_to_remove
    - LIST_DELETE
    - pool_free
    - task_wakeup
    - sess_conns_cleanup_all_idle
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    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:7259,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7266,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7267,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7268,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7274,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/server.c:7278,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7279,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/server.c:7280,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - srv
    - conn
    argTypes:
    - struct server*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7284
      start: 7256
    functionDepth: 2
    functionLinenumber: 7256
    functionLinenumberEnd: 7284
    functionName: srv_release_conn
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_DEC
    - ceb_intree
    - conn_delete_from_tree
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:7291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - hash
    argTypes:
    - struct ceb_root**
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7292
      start: 7289
    functionDepth: 1
    functionLinenumber: 7289
    functionLinenumberEnd: 7292
    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:7299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - tree
    - conn
    argTypes:
    - struct ceb_root**
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7300
      start: 7297
    functionDepth: 1
    functionLinenumber: 7297
    functionLinenumberEnd: 7300
    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:7318,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/server.c:7321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - srv
    - conn
    - is_safe
    argTypes:
    - struct server*
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7322
      start: 7312
    functionDepth: 1
    functionLinenumber: 7312
    functionLinenumberEnd: 7322
    functionName: _srv_add_idle
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 4
    functionsReached:
    - LIST_APPEND
    - ceb64_item_insert
    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:7341,1
    - Dst: ceb_isempty
      Src: /src/haproxy/src/server.c:7342,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:7345,1
    - Dst: struct connection*::mux::used_streams
      Src: /src/haproxy/src/server.c:7347,1
    - Dst: struct connection*::mux::avail_streams
      Src: /src/haproxy/src/server.c:7347,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/server.c:7350,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7352,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/server.c:7355,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7357,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/server.c:7358,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/server.c:7362,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/server.c:7363,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/server.c:7366,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/server.c:7367,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7369,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/server.c:7370,1
    - Dst: __ha_barrier_full
      Src: /src/haproxy/src/server.c:7372,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7374,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:7376,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/server.c:7378,1
    - Dst: task_in_wq
      Src: /src/haproxy/src/server.c:7379,1
    - Dst: task_in_rq
      Src: /src/haproxy/src/server.c:7380,1
    - Dst: task_schedule
      Src: /src/haproxy/src/server.c:7381,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7386,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 36
    argCount: 3
    argNames:
    - srv
    - conn
    - is_safe
    argTypes:
    - struct server*
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7391
      start: 7327
    functionDepth: 2
    functionLinenumber: 7327
    functionLinenumberEnd: 7391
    functionName: srv_add_to_idle_list
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 3
    functionsReached:
    - _HA_ATOMIC_ADD_FETCH
    - struct connection*::mux::used_streams
    - _HA_ATOMIC_DEC
    - tick_add
    - __ha_barrier_full
    - conn_delete_from_tree
    - task_in_wq
    - _srv_add_idle
    - MAX
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - _HA_ATOMIC_INC
    - eb32_insert
    - task_schedule
    - struct connection*::mux::avail_streams
    - ceb_isempty
    - task_in_rq
    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:7399,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/server.c:7399,1
    - Dst: ceb64_item_insert
      Src: /src/haproxy/src/server.c:7400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - srv
    - conn
    argTypes:
    - struct server*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7401
      start: 7396
    functionDepth: 1
    functionLinenumber: 7396
    functionLinenumberEnd: 7401
    functionName: srv_add_to_avail_list
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 4
    functionsReached:
    - LIST_INLIST
    - BUG_ON
    - ceb64_item_insert
    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:7411,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/server.c:7417,1
    - Dst: eb32_first
      Src: /src/haproxy/src/server.c:7424,1
    - Dst: likely
      Src: /src/haproxy/src/server.c:7425,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/server.c:7428,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/server.c:7433,1
    - Dst: MAX
      Src: /src/haproxy/src/server.c:7443,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/server.c:7450,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/server.c:7463,1
    - Dst: srv_migrate_conns_to_remove
      Src: /src/haproxy/src/server.c:7464,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7465,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/server.c:7468,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/server.c:7474,1
    - Dst: tick_add
      Src: /src/haproxy/src/server.c:7480,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/server.c:7481,1
    - Dst: tick_first
      Src: /src/haproxy/src/server.c:7482,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/server.c:7485,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7489
      start: 7403
    functionDepth: 3
    functionLinenumber: 7403
    functionLinenumberEnd: 7489
    functionName: srv_cleanup_idle_conns
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - tick_add
    - tick_is_lt
    - eb32_lookup_ge
    - srv_migrate_conns_to_remove
    - HA_ATOMIC_STORE
    - task_wakeup
    - eb32_first
    - eb32_entry
    - eb32_delete
    - MAX
    - HA_SPIN_LOCK
    - likely
    - HA_SPIN_UNLOCK
    - eb32_insert
    - tick_first
    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:7514,1
    - Dst: struct connection*::ctrl::ctrl_close
      Src: /src/haproxy/src/server.c:7517,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/server.c:7518,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7522
      start: 7499
    functionDepth: 2
    functionLinenumber: 7499
    functionLinenumberEnd: 7522
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/server.c:7531,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:7534,1
    - Dst: strcmp
      Src: /src/haproxy/src/server.c:7536,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:7539,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: 7543
      start: 7527
    functionDepth: 5
    functionLinenumber: 7527
    functionLinenumberEnd: 7543
    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:7552,1
    - Dst: atoi
      Src: /src/haproxy/src/server.c:7556,1
    - Dst: memprintf
      Src: /src/haproxy/src/server.c:7559,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: 7568
      start: 7546
    functionDepth: 5
    functionLinenumber: 7546
    functionLinenumberEnd: 7568
    functionName: cfg_parse_pool_fd_ratio
    functionSourceFile: /src/haproxy/src/server.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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:
    - sigaddset
    - ha_sigmask
    - assert
    - 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:
    - sigaddset
    - ha_sigmask
    - assert
    - 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:
    - LIST_INSERT
    - pool_alloc
    - LIST_INIT
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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
    - pool_free
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - kill
    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:
    - tick_add
    - list_for_each_entry
    - task_wakeup
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:
    - waitpid
    - pid_list_expire
    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:
    - create_pool
    - signal_register_fct
    - strerror
    - ha_alert
    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:
    - strcmp
    - snprintf
    - strlen
    - malloc
    - strerror
    - ha_alert
    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:
    - strdup
    - addr_to_str
    - list_for_each_entry
    - EXTCHK_SETENV
    - ha_free
    - port_to_str
    - free
    - ha_alert
    - ultoa_r
    - calloc
    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:
    - haproxy_unblock_signals
    - exit
    - my_closefrom
    - raise_rlim_nofile
    - fork
    - strerror
    - ha_warning
    - snprintf
    - block_sigchld
    - execvp
    - ultoa_r
    - set_server_check_status
    - addr_to_str
    - strlcpy2
    - real_family
    - tick_first
    - pid_list_add
    - ha_alert
    - MS_TO_TICKS
    - getrlimit
    - tick_add
    - unblock_sigchld
    - setenv
    - EXTCHK_SETENV
    - strchr
    - kill
    - memcpy
    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:
    - HA_SPIN_LOCK
    - ha_warning
    - tick_is_expired
    - HA_SPIN_UNLOCK
    - check_notify_failure
    - task_set_thread
    - set_server_check_status
    - WIFEXITED
    - MS_TO_TICKS
    - WEXITSTATUS
    - tick_add
    - check_notify_stopping
    - statistical_prng
    - pid_list_del
    - check_notify_success
    - tick_first
    - kill
    - connect_proc_chk
    - srv_getinter
    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:
    - strdup
    - too_many_args
    - strcmp
    - free
    - memprintf
    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:86,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:87,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct tcpcheck_http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: free_tcpcheck_http_hdr
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - istfree
    - lf_expr_deinit
    - 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:99,1
    - Dst: free_tcpcheck_http_hdr
      Src: /src/haproxy/src/tcpcheck.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hdrs
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: free_tcpcheck_http_hdrs
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - free_tcpcheck_http_hdr
    - LIST_DELETE
    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:99,1
    - Dst: free_tcpcheck_http_hdr
      Src: /src/haproxy/src/tcpcheck.c:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 4
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 37
    functionsReached:
    - free_tcpcheck_http_hdr
    - LIST_DELETE
    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:113,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:119,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:123,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:126,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:128,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:130,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:131,1
    - Dst: free_tcpcheck_http_hdrs
      Src: /src/haproxy/src/tcpcheck.c:132,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:134,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:136,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:143,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:144,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:145,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:148,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:153,1
    - Dst: regex_free
      Src: /src/haproxy/src/tcpcheck.c:159,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:164,1
    - Dst: regex_free
      Src: /src/haproxy/src/tcpcheck.c:168,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:170,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:172,1
    - Dst: regex_free
      Src: /src/haproxy/src/tcpcheck.c:175,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:177,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:179,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:187,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:188,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:189,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:194,1
    - Dst: pool_free
      Src: /src/haproxy/src/tcpcheck.c:199,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:201,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 86
    argCount: 2
    argNames:
    - rule
    - in_pool
    argTypes:
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 108
    functionDepth: 5
    functionLinenumber: 108
    functionLinenumberEnd: 202
    functionName: free_tcpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - pool_free
    - istfree
    - free_tcpcheck_http_hdrs
    - free
    - release_sample_expr
    - lf_expr_deinit
    - regex_free
    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:211,1
    - Dst: istdup
      Src: /src/haproxy/src/tcpcheck.c:215,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:216,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:217,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - name
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 223
    functionName: create_tcpcheck_var
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - free
    - LIST_INIT
    - istdup
    - isttest
    - calloc
    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:231,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:233,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:235,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - var
    argTypes:
    - struct tcpcheck_var*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 237
    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:245,1
    - Dst: free_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vars
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 248
    functionName: free_tcpcheck_vars
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - free_tcpcheck_var
    - LIST_DELETE
    linkageType: ''
    returnType: void
    signature: void free_tcpcheck_vars(struct list *vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:245,1
    - Dst: free_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 4
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 37
    functionsReached:
    - free_tcpcheck_var
    - LIST_DELETE
    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:257,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:260,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/tcpcheck.c:262,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:262,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:265,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:265,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/tcpcheck.c:268,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:268,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:270,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:270,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:271,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:274,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:275,1
    - Dst: list::list
      Src: /src/haproxy/src/tcpcheck.c:275,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct list*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 251
    functionDepth: 4
    functionLinenumber: 251
    functionLinenumberEnd: 282
    functionName: dup_tcpcheck_vars
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - chunk_dup
    - data::data
    - LIST_APPEND
    - create_tcpcheck_var::create_tcpcheck_var
    - 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:257,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:260,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/tcpcheck.c:262,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:262,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:265,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:265,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/tcpcheck.c:268,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:268,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:270,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:270,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:271,1
    - Dst: data::data
      Src: /src/haproxy/src/tcpcheck.c:274,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:275,1
    - Dst: list::list
      Src: /src/haproxy/src/tcpcheck.c:275,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 256
    functionDepth: 4
    functionLinenumber: 256
    functionLinenumberEnd: 276
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 129
    functionsReached:
    - chunk_dup
    - data::data
    - LIST_APPEND
    - create_tcpcheck_var::create_tcpcheck_var
    - 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:290,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:290,1
    - Dst: container_of
      Src: /src/haproxy/src/tcpcheck.c:292,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 296
    functionName: find_tcpcheck_ruleset
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - ebis_lookup_len
    - strlen
    - container_of
    - typeof
    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:305,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:309,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:311,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:315,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/tcpcheck.c:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 301
    functionDepth: 3
    functionLinenumber: 301
    functionLinenumberEnd: 318
    functionName: create_tcpcheck_ruleset
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - strdup
    - ebis_insert
    - free
    - LIST_INIT
    - calloc
    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:328,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:329,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/tcpcheck.c:330,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:331,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:332,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - rs
    argTypes:
    - struct tcpcheck_ruleset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 335
    functionName: free_tcpcheck_ruleset
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - free
    - ebpt_delete
    - free_tcpcheck
    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: 358
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 358
    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:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rules
    argTypes:
    - struct tcpcheck_rules*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 372
    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_rules
      *rules)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_rev
      Src: /src/haproxy/src/tcpcheck.c:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - rules
    argTypes:
    - struct tcpcheck_rules*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    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_rules
      *rules)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:397,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/tcpcheck.c:399,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:399,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/tcpcheck.c:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - rules
    - start
    argTypes:
    - struct tcpcheck_rules*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 405
    functionName: get_next_tcpcheck_rule
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - get_first_tcpcheck_rule
    - LIST_NEXT
    - list_for_each_entry_from
    - typeof
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: struct tcpcheck_rule *get_next_tcpcheck_rule(struct tcpcheck_rules
      *rules, struct tcpcheck_rule *start)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:422,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/tcpcheck.c:423,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:426,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:427,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:427,1
    - Dst: b_room
      Src: /src/haproxy/src/tcpcheck.c:427,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/tcpcheck.c:431,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:431,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:431,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:431,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:433,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:434,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:435,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tcpcheck.c:444,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:447,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:447,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:451,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:451,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:451,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:452,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:455,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:455,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:460,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:460,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:463,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:463,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:467,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:467,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:470,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:470,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_strcat
      Src: /src/haproxy/src/tcpcheck.c:487,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tcpcheck.c:488,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcpcheck.c:495,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:503,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 69
    argCount: 5
    argNames:
    - msg
    - check
    - rule
    - match
    - info
    argTypes:
    - struct buffer*
    - struct check*
    - struct tcpcheck_rule*
    - int
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 504
    functionName: tcpcheck_expect_onerror_message
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - istlen
    - IS_HTX_SC
    - chunk_printf
    - b_data
    - chunk_appendf
    - lf_expr_isempty
    - sample_fetch_as_type
    - b_tail
    - istptr
    - b_room
    - TRACE_ERROR
    - sess_build_logline
    - tcpcheck_get_step_id
    - chunk_istcat
    - chunk_strcat
    - 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:519,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/tcpcheck.c:520,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:521,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:522,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:522,1
    - Dst: b_room
      Src: /src/haproxy/src/tcpcheck.c:522,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/tcpcheck.c:526,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcpcheck.c:532,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:540,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: 541
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 541
    functionName: tcpcheck_expect_onsuccess_message
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - istlen
    - sample_fetch_as_type
    - lf_expr_isempty
    - b_tail
    - b_room
    - sess_build_logline
    - chunk_strcat
    - chunk_istcat
    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:557,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:560,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:569,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:570,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:571,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:573,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:582,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:585,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:586,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:587,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:587,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:587,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:591,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:601,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:601,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:604,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:605,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:611,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:613,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:614,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:614,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:618,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: 621
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 621
    functionName: tcpcheck_mysql_expect_packet
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - set_server_check_status
    - free_trash_chunk
    - b_data
    - alloc_trash_chunk
    - TRACE_ENTER
    - ist2
    - tcpcheck_expect_onerror_message
    - b_peek
    - b_head
    - get_next_tcpcheck_rule
    - TRACE_LEAVE
    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:630,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: 631
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 631
    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:642,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:643,1
    - Dst: b_peek
      Src: /src/haproxy/src/tcpcheck.c:644,1
    - Dst: tcpcheck_mysql_expect_packet
      Src: /src/haproxy/src/tcpcheck.c:646,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: 647
      start: 638
    functionDepth: 3
    functionLinenumber: 638
    functionLinenumberEnd: 647
    functionName: tcpcheck_mysql_expect_ok
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - tcpcheck_mysql_expect_packet
    - b_head
    - b_peek
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:664,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:670,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:680,1
    - Dst: read_n32
      Src: /src/haproxy/src/tcpcheck.c:683,1
    - Dst: read_n16
      Src: /src/haproxy/src/tcpcheck.c:684,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:687,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:695,1
    - Dst: memcmp
      Src: /src/haproxy/src/tcpcheck.c:702,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:704,1
    - Dst: memcmp
      Src: /src/haproxy/src/tcpcheck.c:718,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:720,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:731,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:736,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:739,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:740,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:745,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:747,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:748,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:748,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:759,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 654
    functionDepth: 2
    functionLinenumber: 654
    functionLinenumberEnd: 762
    functionName: tcpcheck_ldap_expect_bindrsp
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - set_server_check_status
    - read_n16
    - free_trash_chunk
    - b_data
    - memcmp
    - TRACE_ENTER
    - read_n32
    - tcpcheck_expect_onerror_message
    - b_head
    - TRACE_LEAVE
    - alloc_trash_chunk
    - ist
    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: 35
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:780,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:783,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:786,1
    - Dst: read_n32
      Src: /src/haproxy/src/tcpcheck.c:787,1
    - Dst: read_n32
      Src: /src/haproxy/src/tcpcheck.c:789,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:801,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:805,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:814,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:819,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:819,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:819,1
    - Dst: decode_varint
      Src: /src/haproxy/src/tcpcheck.c:828,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:834,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:834,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:834,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:840,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:843,1
    - Dst: spoe_skip_data
      Src: /src/haproxy/src/tcpcheck.c:847,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:862,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:867,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:867,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:867,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:873,1
    - Dst: spoe_str_to_vsn
      Src: /src/haproxy/src/tcpcheck.c:876,1
    - Dst: spoe_check_vsn
      Src: /src/haproxy/src/tcpcheck.c:881,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:887,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:887,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:887,1
    - Dst: decode_varint
      Src: /src/haproxy/src/tcpcheck.c:896,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: spoe_decode_buffer
      Src: /src/haproxy/src/tcpcheck.c:911,1
    - Dst: spoe_skip_data
      Src: /src/haproxy/src/tcpcheck.c:918,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:936,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:939,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:940,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:946,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:948,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:950,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:952,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:952,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:966,1
    CyclomaticComplexity: 79
    EdgeCount: 79
    ICount: 164
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 769
    functionDepth: 2
    functionLinenumber: 769
    functionLinenumberEnd: 969
    functionName: tcpcheck_spop_expect_hello
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - isteq
    - free_trash_chunk
    - decode_varint
    - b_tail
    - read_n32
    - spoe_check_vsn
    - b_head
    - alloc_trash_chunk
    - TRACE_LEAVE
    - b_data
    - ist2
    - spoe_skip_data
    - spoe_decode_buffer
    - set_server_check_status
    - ist
    - spoe_str_to_vsn
    - TRACE_ENTER
    - tcpcheck_expect_onerror_message
    - 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:987,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:1013,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1022,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:1027,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1056,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1061,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1066,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1071,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1077,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1080,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1083,1
    - Dst: isdigit
      Src: /src/haproxy/src/tcpcheck.c:1087,1
    - Dst: strchr
      Src: /src/haproxy/src/tcpcheck.c:1087,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/tcpcheck.c:1091,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:1091,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/tcpcheck.c:1095,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:1095,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:1096,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1117,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1118,1
    - Dst: srv_adm_set_drain
      Src: /src/haproxy/src/tcpcheck.c:1119,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:1121,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1122,1
    - Dst: srv_adm_set_maint
      Src: /src/haproxy/src/tcpcheck.c:1123,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1126,1
    - Dst: srv_adm_set_ready
      Src: /src/haproxy/src/tcpcheck.c:1127,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1135,1
    - Dst: server_parse_weight_change_request
      Src: /src/haproxy/src/tcpcheck.c:1136,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:1144,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1146,1
    - Dst: server_parse_maxconn_change_request
      Src: /src/haproxy/src/tcpcheck.c:1150,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1172,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1173,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1176,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1177,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1183,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1184,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1185,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1191,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1192,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1193,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1196,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1197,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:1201,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1205,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 140
    argCount: 3
    argNames:
    - check
    - rule
    - last_read
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 975
    functionDepth: 5
    functionLinenumber: 975
    functionLinenumberEnd: 1208
    functionName: tcpcheck_agent_expect_reply
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - server_parse_maxconn_change_request
    - server_parse_weight_change_request
    - set_server_check_status
    - srv_adm_set_maint
    - get_trash_chunk
    - chunk_printf
    - strcasecmp
    - strncasecmp
    - TRACE_ENTER
    - isdigit
    - strlen
    - srv_adm_set_ready
    - srv_adm_set_drain
    - b_head
    - strchr
    - TRACE_LEAVE
    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:1217,1
    - Dst: is_addr
      Src: /src/haproxy/src/tcpcheck.c:1217,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 2
    argCount: 2
    argNames:
    - check
    - connect
    argTypes:
    - struct check*
    - struct tcpcheck_connect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1222
    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:1231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - check
    - connect
    argTypes:
    - struct check*
    - struct tcpcheck_connect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1225
    functionDepth: 1
    functionLinenumber: 1225
    functionLinenumberEnd: 1233
    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:1239,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1240,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1240,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1240,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1241,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1242,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:1243,1
    - Dst: b_set_data
      Src: /src/haproxy/src/tcpcheck.c:1251,1
    - Dst: b_tail
      Src: /src/haproxy/src/tcpcheck.c:1252,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: 1254
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1254
    functionName: tcpcheck_connect_auto_sni
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - b_orig
    - b_set_data
    - b_data
    - b_tail
    - sess_build_logline
    - b_size
    - chunk_reset
    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: 64
    BranchProfiles: []
    Callsites:
    - Dst: sc_conn
      Src: /src/haproxy/src/tcpcheck.c:1267,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:1274,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:1276,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1284,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1286,1
    - Dst: tcpcheck_eval_recv
      Src: /src/haproxy/src/tcpcheck.c:1289,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1297,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1298,1
    - Dst: tcpcheck_connect_use_ssl
      Src: /src/haproxy/src/tcpcheck.c:1301,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1302,1
    - Dst: tcpcheck_connect_auto_sni
      Src: /src/haproxy/src/tcpcheck.c:1304,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1305,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1306,1
    - Dst: tcpcheck_use_nondefault_connect
      Src: /src/haproxy/src/tcpcheck.c:1314,1
    - Dst: srv_is_transparent
      Src: /src/haproxy/src/tcpcheck.c:1315,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1321,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1324,1
    - Dst: tcpcheck_connect_use_ssl
      Src: /src/haproxy/src/tcpcheck.c:1325,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1327,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1329,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1331,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1331,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1331,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tcpcheck.c:1336,1
    - Dst: be_calculate_conn_hash
      Src: /src/haproxy/src/tcpcheck.c:1344,1
    - Dst: be_reuse_connection
      Src: /src/haproxy/src/tcpcheck.c:1345,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1348,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1349,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1354,1
    - Dst: __sc_conn
      Src: /src/haproxy/src/tcpcheck.c:1355,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/tcpcheck.c:1356,1
    - Dst: conn_new
      Src: /src/haproxy/src/tcpcheck.c:1364,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1366,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:1367,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/tcpcheck.c:1369,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1370,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1372,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/tcpcheck.c:1375,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1376,1
    - Dst: conn_free
      Src: /src/haproxy/src/tcpcheck.c:1377,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/tcpcheck.c:1383,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/src/tcpcheck.c:1386,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1387,1
    - Dst: is_addr
      Src: /src/haproxy/src/tcpcheck.c:1399,1
    - Dst: is_addr
      Src: /src/haproxy/src/tcpcheck.c:1401,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/tcpcheck.c:1403,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/tcpcheck.c:1404,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/tcpcheck.c:1412,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/tcpcheck.c:1418,1
    - Dst: get_host_port
      Src: /src/haproxy/src/tcpcheck.c:1419,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/tcpcheck.c:1422,1
    - Dst: get_host_port
      Src: /src/haproxy/src/tcpcheck.c:1423,1
    - Dst: set_host_port
      Src: /src/haproxy/src/tcpcheck.c:1428,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1429,1
    - Dst: xprt_get
      Src: /src/haproxy/src/tcpcheck.c:1432,1
    - Dst: xprt_get
      Src: /src/haproxy/src/tcpcheck.c:1433,1
    - Dst: conn_prepare
      Src: /src/haproxy/src/tcpcheck.c:1435,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1436,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1444,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1449,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1455,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1460,1
    - Dst: struct protocol*::connect
      Src: /src/haproxy/src/tcpcheck.c:1471,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/tcpcheck.c:1477,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/tcpcheck.c:1481,1
    - Dst: ssl_sock_set_servername
      Src: /src/haproxy/src/tcpcheck.c:1483,1
    - Dst: ssl_sock_set_servername
      Src: /src/haproxy/src/tcpcheck.c:1485,1
    - Dst: ssl_sock_set_servername
      Src: /src/haproxy/src/tcpcheck.c:1487,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1487,1
    - Dst: ssl_sock_set_alpn
      Src: /src/haproxy/src/tcpcheck.c:1490,1
    - Dst: ssl_sock_set_alpn
      Src: /src/haproxy/src/tcpcheck.c:1492,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/tcpcheck.c:1496,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/tcpcheck.c:1498,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/tcpcheck.c:1501,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/tcpcheck.c:1502,1
    - Dst: conn_xprt_start
      Src: /src/haproxy/src/tcpcheck.c:1506,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/tcpcheck.c:1517,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1520,1
    - Dst: tcpchk_rules_type_to_proto_mode
      Src: /src/haproxy/src/tcpcheck.c:1526,1
    - Dst: conn_get_best_mux
      Src: /src/haproxy/src/tcpcheck.c:1528,1
    - Dst: conn_install_mux
      Src: /src/haproxy/src/tcpcheck.c:1530,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1531,1
    - Dst: tick_add
      Src: /src/haproxy/src/tcpcheck.c:1556,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/tcpcheck.c:1556,1
    - Dst: tick_add
      Src: /src/haproxy/src/tcpcheck.c:1559,1
    - Dst: tick_first
      Src: /src/haproxy/src/tcpcheck.c:1560,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1568,1
    - Dst: chk_report_conn_err
      Src: /src/haproxy/src/tcpcheck.c:1569,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1578,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1580,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1583,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1590,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/tcpcheck.c:1594,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1597,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:1599,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 237
    argCount: 2
    argNames:
    - check
    - rule
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1260
    functionDepth: 4
    functionLinenumber: 1260
    functionLinenumberEnd: 1601
    functionName: tcpcheck_eval_connect
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - TRACE_DEVEL
    - be_reuse_connection
    - sockaddr_alloc
    - conn_is_ssl
    - set_host_port
    - free_trash_chunk
    - sample_fetch_as_type
    - tcpcheck_connect_auto_sni
    - __sc_conn
    - protocol_lookup
    - conn_xprt_start
    - sc_attach_mux
    - alloc_trash_chunk
    - conn_set_owner
    - tcpcheck_use_nondefault_connect
    - struct connection*::mux::subscribe
    - get_host_port
    - TRACE_LEAVE
    - srv_is_transparent
    - chunk_printf
    - b_data
    - chunk_appendf
    - conn_set_private
    - tcpchk_rules_type_to_proto_mode
    - ist2
    - tick_add_ifset
    - tcpcheck_connect_use_ssl
    - conn_install_mux
    - tcpcheck_eval_recv
    - is_addr
    - conn_prepare
    - set_server_check_status
    - xprt_add_hs
    - conn_new
    - conn_get_best_mux
    - check_release_buf
    - conn_free
    - chk_report_conn_err
    - MS_TO_TICKS
    - get_next_tcpcheck_rule
    - struct protocol*::connect
    - ist
    - b_orig
    - tick_add
    - ssl_sock_set_alpn
    - HA_ATOMIC_AND
    - ssl_sock_set_servername
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - tcpcheck_get_step_id
    - conn_ctrl_ready
    - xprt_get
    - tick_first
    - is_inet_addr
    - be_calculate_conn_hash
    linkageType: ''
    returnType: enum tcpcheck_eval_ret
    signature: enum tcpcheck_eval_ret tcpcheck_eval_connect(struct check *check, struct
      tcpcheck_rule *rule)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: __sc_conn
      Src: /src/haproxy/src/tcpcheck.c:1612,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:1617,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1621,1
    - Dst: check_get_buf
      Src: /src/haproxy/src/tcpcheck.c:1625,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1628,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1633,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:1633,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1633,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1633,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1633,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1634,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1639,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1644,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1644,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1645,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1646,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1646,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:1647,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1648,1
    - Dst: b_putist
      Src: /src/haproxy/src/tcpcheck.c:1652,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1655,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1655,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1655,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1656,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1660,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1662,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1665,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1665,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1665,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1666,1
    - Dst: parse_binary
      Src: /src/haproxy/src/tcpcheck.c:1669,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1669,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1679,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1684,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1687,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1687,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1687,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1688,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1688,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1688,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1688,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1688,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:1691,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1691,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:1692,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1692,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1694,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1695,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:1698,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/tcpcheck.c:1701,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/tcpcheck.c:1702,1
    - Dst: http_update_host
      Src: /src/haproxy/src/tcpcheck.c:1706,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:1709,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcpcheck.c:1713,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:1714,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1715,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1715,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1715,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1716,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1718,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1718,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1718,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/tcpcheck.c:1719,1
    - Dst: isteqi
      Src: /src/haproxy/src/tcpcheck.c:1721,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1721,1
    - Dst: http_update_authority
      Src: /src/haproxy/src/tcpcheck.c:1722,1
    - Dst: isteqi
      Src: /src/haproxy/src/tcpcheck.c:1725,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1725,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:1731,1
    - Dst: httpchk_build_status_header
      Src: /src/haproxy/src/tcpcheck.c:1732,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/tcpcheck.c:1733,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1733,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1733,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1733,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1733,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:1739,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1740,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1740,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1740,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:1741,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1741,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1741,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/tcpcheck.c:1746,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1746,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1746,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1752,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1753,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1753,1
    - Dst: ultoa
      Src: /src/haproxy/src/tcpcheck.c:1753,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1753,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/tcpcheck.c:1754,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1754,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/tcpcheck.c:1759,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:1760,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/tcpcheck.c:1760,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/tcpcheck.c:1765,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/tcpcheck.c:1775,1
    - Dst: struct connection*::mux::snd_buf
      Src: /src/haproxy/src/tcpcheck.c:1776,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1777,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1777,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1777,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1778,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1780,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1784,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:1784,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1784,1
    - Dst: IS_HTX_CONN
      Src: /src/haproxy/src/tcpcheck.c:1784,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1784,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1785,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1787,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1792,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1793,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1794,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:1796,1
    - Dst: htx_reset
      Src: /src/haproxy/src/tcpcheck.c:1801,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/tcpcheck.c:1802,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1804,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:1805,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1806,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1807,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:1812,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:1813,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1814,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:1815,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 181
    argCount: 2
    argNames:
    - check
    - rule
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1607
    functionDepth: 4
    functionLinenumber: 1607
    functionLinenumberEnd: 1819
    functionName: tcpcheck_eval_send
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - check_get_buf
    - htx_add_data_atonce
    - free_trash_chunk
    - htx_add_stline
    - TRACE_DATA
    - __sc_conn
    - htx_from_buf
    - htx_add_endof
    - alloc_trash_chunk
    - struct connection*::mux::subscribe
    - TRACE_LEAVE
    - istlen
    - sc_ep_test
    - chunk_printf
    - b_data
    - struct connection*::mux::snd_buf
    - ist2
    - ultoa
    - LIST_ISEMPTY
    - htxbuf
    - parse_binary
    - set_server_check_status
    - htx_add_header
    - http_update_authority
    - sess_build_logline
    - check_release_buf
    - isteqi
    - b_size
    - IS_HTX_CONN
    - b_putist
    - htx_is_empty
    - b_orig
    - ist
    - list_for_each_entry
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - tcpcheck_get_step_id
    - http_update_host
    - htx_reset
    - isttest
    - httpchk_build_status_header
    - htx_to_buf
    - chunk_reset
    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:1829,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:1835,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1838,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1842,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1846,1
    - Dst: check_get_buf
      Src: /src/haproxy/src/tcpcheck.c:1850,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1852,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/tcpcheck.c:1859,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1861,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1862,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/tcpcheck.c:1863,1
    - Dst: htx_free_space
      Src: /src/haproxy/src/tcpcheck.c:1863,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1863,1
    - Dst: b_room
      Src: /src/haproxy/src/tcpcheck.c:1863,1
    - Dst: struct connection*::mux::rcv_buf
      Src: /src/haproxy/src/tcpcheck.c:1864,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1867,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/tcpcheck.c:1874,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:1874,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:1874,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1874,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1875,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1881,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:1884,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:1885,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1886,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/tcpcheck.c:1889,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:1892,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:1893,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:1895,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 60
    argCount: 2
    argNames:
    - check
    - rule
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1905
      start: 1826
    functionDepth: 1
    functionLinenumber: 1826
    functionLinenumberEnd: 1905
    functionName: tcpcheck_eval_recv
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - check_get_buf
    - TRACE_DATA
    - __sc_conn
    - struct connection*::mux::subscribe
    - TRACE_LEAVE
    - struct connection*::mux::rcv_buf
    - sc_ep_test
    - sc_ep_clr
    - IS_HTX_SC
    - b_data
    - htx_free_space
    - htxbuf
    - b_room
    - check_release_buf
    - htx_is_empty
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    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:1914,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:1924,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/tcpcheck.c:1926,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1929,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:1934,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1936,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:1940,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/tcpcheck.c:1944,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:1952,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:1974,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/tcpcheck.c:1975,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:1978,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/tcpcheck.c:1978,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/tcpcheck.c:1978,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:1982,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/tcpcheck.c:1983,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:1992,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:1995,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:1996,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:1999,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:1999,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:1999,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2000,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2002,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2003,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:2006,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2006,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2006,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2012,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2015,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2016,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:2019,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2019,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2019,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2020,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2022,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2023,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:2026,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2026,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2026,1
    - Dst: http_find_str_header
      Src: /src/haproxy/src/tcpcheck.c:2036,1
    - Dst: http_find_pfx_header
      Src: /src/haproxy/src/tcpcheck.c:2040,1
    - Dst: http_find_sfx_header
      Src: /src/haproxy/src/tcpcheck.c:2044,1
    - Dst: http_find_sub_header
      Src: /src/haproxy/src/tcpcheck.c:2048,1
    - Dst: http_match_header
      Src: /src/haproxy/src/tcpcheck.c:2052,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:2073,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2079,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2079,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:2081,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2081,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2081,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:2082,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2088,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2088,1
    - Dst: ist2
      Src: /src/haproxy/src/tcpcheck.c:2090,1
    - Dst: istend
      Src: /src/haproxy/src/tcpcheck.c:2090,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2090,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2090,1
    - Dst: isteq
      Src: /src/haproxy/src/tcpcheck.c:2091,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:2097,1
    - Dst: istist
      Src: /src/haproxy/src/tcpcheck.c:2097,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:2103,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2103,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2103,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:2113,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/tcpcheck.c:2114,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:2122,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/tcpcheck.c:2123,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/tcpcheck.c:2123,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/tcpcheck.c:2124,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/tcpcheck.c:2129,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/tcpcheck.c:2129,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2134,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2136,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:2140,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2141,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2142,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2147,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2150,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2151,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:2154,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2154,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2154,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2155,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2157,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2158,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2164,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2164,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2165,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2165,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2166,1
    - Dst: my_memmem
      Src: /src/haproxy/src/tcpcheck.c:2172,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2172,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2172,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2172,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2172,1
    - Dst: my_memmem
      Src: /src/haproxy/src/tcpcheck.c:2174,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2174,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2174,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2174,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2174,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:2176,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2176,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2176,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2183,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:2189,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2191,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2192,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2203,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2207,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2210,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2211,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2212,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2213,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:2214,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2218,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2220,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:2222,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2223,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2223,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: 2229
      start: 1912
    functionDepth: 3
    functionLinenumber: 1912
    functionLinenumberEnd: 2229
    functionName: tcpcheck_eval_expect_http
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - isteq
    - htx_get_blk_value
    - free_trash_chunk
    - istist
    - http_get_stline
    - HTX_SL_RES_CLEN
    - b_head
    - istend
    - alloc_trash_chunk
    - http_find_sfx_header
    - TRACE_LEAVE
    - htx_free_data_space
    - http_find_sub_header
    - istlen
    - b_data
    - htx_get_head_blk
    - htx_get_blk_type
    - ist2
    - my_memmem
    - htxbuf
    - set_server_check_status
    - lf_expr_isempty
    - htx_get_next_blk
    - sess_build_logline
    - HTX_SL_RES_CPTR
    - b_size
    - ist
    - b_orig
    - htx_is_empty
    - http_find_str_header
    - TRACE_STATE
    - istptr
    - TRACE_ENTER
    - TRACE_ERROR
    - regex_exec2
    - htx_sl_res_reason
    - chunk_istcat
    - tcpcheck_expect_onerror_message
    - http_match_header
    - isttest
    - http_find_pfx_header
    - chunk_reset
    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:2244,1
    - Dst: b_full
      Src: /src/haproxy/src/tcpcheck.c:2246,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2253,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2253,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2255,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2258,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2260,1
    - Dst: my_memmem
      Src: /src/haproxy/src/tcpcheck.c:2273,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2273,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2273,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2273,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2273,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:2276,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2276,1
    - Dst: MIN
      Src: /src/haproxy/src/tcpcheck.c:2276,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2276,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2276,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/tcpcheck.c:2280,1
    - Dst: dump_binary
      Src: /src/haproxy/src/tcpcheck.c:2281,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2281,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2281,1
    - Dst: regex_exec2
      Src: /src/haproxy/src/tcpcheck.c:2282,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2282,1
    - Dst: MIN
      Src: /src/haproxy/src/tcpcheck.c:2282,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2282,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2282,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2288,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2291,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2292,1
    - Dst: sess_build_logline
      Src: /src/haproxy/src/tcpcheck.c:2295,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2295,1
    - Dst: b_size
      Src: /src/haproxy/src/tcpcheck.c:2295,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2296,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2298,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2299,1
    - Dst: parse_binary
      Src: /src/haproxy/src/tcpcheck.c:2304,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2304,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2306,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2307,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2312,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2315,1
    - Dst: my_memmem
      Src: /src/haproxy/src/tcpcheck.c:2320,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2320,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2320,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:2320,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2320,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2329,1
    - Dst: struct tcpcheck_expect*::custom
      Src: /src/haproxy/src/tcpcheck.c:2332,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2346,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2352,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/tcpcheck.c:2358,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2360,1
    - Dst: tcpcheck_expect_onerror_message
      Src: /src/haproxy/src/tcpcheck.c:2362,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2363,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2363,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2364,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2367,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:2368,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: 2370
      start: 2235
    functionDepth: 2
    functionLinenumber: 2235
    functionLinenumberEnd: 2370
    functionName: tcpcheck_eval_expect
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - free_trash_chunk
    - dump_binary
    - b_head
    - b_full
    - alloc_trash_chunk
    - TRACE_LEAVE
    - istlen
    - MIN
    - b_data
    - my_memmem
    - struct tcpcheck_expect*::custom
    - parse_binary
    - set_server_check_status
    - sess_build_logline
    - b_size
    - ist
    - b_orig
    - istptr
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - regex_exec2
    - tcpcheck_expect_onerror_message
    - chunk_reset
    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: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcpcheck.c:2383,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:2385,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:2386,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - check
    - rule
    argTypes:
    - struct check*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2392
      start: 2376
    functionDepth: 1
    functionLinenumber: 2376
    functionLinenumberEnd: 2392
    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
    - 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:2406,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/tcpcheck.c:2415,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:2423,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2430,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/tcpcheck.c:2430,1
    - Dst: session_new
      Src: /src/haproxy/src/tcpcheck.c:2439,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:2441,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2442,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2443,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/tcpcheck.c:2446,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/tcpcheck.c:2447,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:2447,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcpcheck.c:2450,1
    - Dst: memset
      Src: /src/haproxy/src/tcpcheck.c:2453,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/tcpcheck.c:2454,1
    - Dst: vars_set_by_name_ifexist
      Src: /src/haproxy/src/tcpcheck.c:2456,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2456,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:2456,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2458,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/tcpcheck.c:2463,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcpcheck.c:2468,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2477,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2482,1
    - Dst: tcpcheck_eval_connect
      Src: /src/haproxy/src/tcpcheck.c:2483,1
    - Dst: sc_conn
      Src: /src/haproxy/src/tcpcheck.c:2486,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/tcpcheck.c:2488,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/tcpcheck.c:2488,1
    - Dst: htxbuf
      Src: /src/haproxy/src/tcpcheck.c:2488,1
    - Dst: b_data
      Src: /src/haproxy/src/tcpcheck.c:2488,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2492,1
    - Dst: tcpcheck_eval_send
      Src: /src/haproxy/src/tcpcheck.c:2493,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2498,1
    - Dst: tcpcheck_eval_recv
      Src: /src/haproxy/src/tcpcheck.c:2500,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:2505,1
    - Dst: tcpcheck_eval_expect_http
      Src: /src/haproxy/src/tcpcheck.c:2510,1
    - Dst: tcpcheck_eval_expect
      Src: /src/haproxy/src/tcpcheck.c:2511,1
    - Dst: struct connection*::mux::subscribe
      Src: /src/haproxy/src/tcpcheck.c:2516,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2521,1
    - Dst: tcpcheck_eval_action_kw
      Src: /src/haproxy/src/tcpcheck.c:2522,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/tcpcheck.c:2546,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2556,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2557,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2561,1
    - Dst: tcpcheck_expect_onsuccess_message
      Src: /src/haproxy/src/tcpcheck.c:2563,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2565,1
    - Dst: b_head
      Src: /src/haproxy/src/tcpcheck.c:2565,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/tcpcheck.c:2566,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/tcpcheck.c:2572,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2575,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2578,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/tcpcheck.c:2581,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/tcpcheck.c:2583,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/tcpcheck.c:2586,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/tcpcheck.c:2587,1
    - Dst: chk_report_conn_err
      Src: /src/haproxy/src/tcpcheck.c:2588,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:2592,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/tcpcheck.c:2593,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/tcpcheck.c:2596,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 135
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2402
    functionDepth: 5
    functionLinenumber: 2402
    functionLinenumberEnd: 2598
    functionName: tcpcheck_main
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - TRACE_DEVEL
    - conn_is_ssl
    - tcpcheck_eval_connect
    - free_trash_chunk
    - tcpcheck_expect_onsuccess_message
    - smp_set_owner
    - b_head
    - alloc_trash_chunk
    - struct connection*::mux::subscribe
    - TRACE_LEAVE
    - sc_ep_test
    - istlen
    - IS_HTX_SC
    - chunk_printf
    - b_data
    - vars_init_head
    - LIST_NEXT
    - tcpcheck_eval_recv
    - htxbuf
    - tcpcheck_eval_send
    - memset
    - set_server_check_status
    - tcpcheck_eval_expect_http
    - tcpcheck_eval_action_kw
    - TRACE_PROTO
    - typeof
    - check_release_buf
    - chk_report_conn_err
    - htx_is_empty
    - list_for_each_entry
    - list_for_each_entry_from
    - istptr
    - TRACE_ENTER
    - TRACE_ERROR
    - tcpcheck_get_step_id
    - session_new
    - vars_set_by_name_ifexist
    - tcpcheck_eval_expect
    linkageType: ''
    returnType: int
    signature: int tcpcheck_main(struct check *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:2602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2603
      start: 2600
    functionDepth: 1
    functionLinenumber: 2600
    functionLinenumberEnd: 2603
    functionName: tcp_check_keywords_register
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    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:2622,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2624,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/tcpcheck.c:2630,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2631,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:2635,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2637,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2645,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: 2647
      start: 2615
    functionDepth: 5
    functionLinenumber: 2615
    functionLinenumberEnd: 2647
    functionName: parse_tcpcheck_action
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - struct action_kw*::parse
    - free
    - memprintf
    - new_act_rule
    - calloc
    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:2672,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2680,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2682,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2686,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/tcpcheck.c:2690,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2694,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2700,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2704,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:2710,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:2711,1
    - Dst: read_uint
      Src: /src/haproxy/src/tcpcheck.c:2712,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcpcheck.c:2717,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2721,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2725,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcpcheck.c:2728,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2734,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2739,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2741,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/tcpcheck.c:2744,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2744,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2746,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2750,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2751,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2754,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2755,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2761,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2763,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2767,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:2768,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2770,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2774,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2776,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2778,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2781,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2785,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2787,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2791,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:2792,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2794,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2798,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2800,1
    - Dst: ssl_sock_parse_alpn
      Src: /src/haproxy/src/tcpcheck.c:2801,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2802,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2807,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2814,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 138
    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: 2823
      start: 2652
    functionDepth: 5
    functionLinenumber: 2652
    functionLinenumberEnd: 2823
    functionName: parse_tcpcheck_connect
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcmp
    - sample_parse_expr
    - read_uint
    - strlen
    - free
    - sample_src_names
    - memprintf
    - get_mux_proto
    - ssl_sock_parse_alpn
    - release_sample_expr
    - str2sa_range
    - ist
    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:2672,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2664
    functionDepth: 5
    functionLinenumber: 2664
    functionLinenumberEnd: 2676
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 132
    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:2859,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2861,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2863,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2865,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2869,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2878,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2880,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2884,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:2885,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2887,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2892,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:2899,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2901,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:2910,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:2910,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:2911,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2912,1
    - Dst: parse_binary
      Src: /src/haproxy/src/tcpcheck.c:2918,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2919,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:2927,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:2929,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2930,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2942,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:2943,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: 2945
      start: 2852
    functionDepth: 5
    functionLinenumber: 2852
    functionLinenumberEnd: 2945
    functionName: parse_tcpcheck_send
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - strdup
    - parse_binary
    - lf_expr_init
    - strcmp
    - parse_logformat_string
    - free
    - memprintf
    - isttest
    - calloc
    - ist
    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:2961,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2963,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2969,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2969,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2971,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2975,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2980,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2982,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:2988,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2990,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:2994,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:2996,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:2997,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3002,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3003,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3006,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3007,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3012,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3012,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3014,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3018,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3023,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3025,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3029,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3030,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3032,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3037,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:3046,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3048,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:3055,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/tcpcheck.c:3058,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:3058,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3059,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:3060,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3062,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3068,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3070,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3071,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3076,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3076,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3077,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3078,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3084,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3084,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3085,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3086,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:3090,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:3091,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3093,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3096,1
    - Dst: istdup
      Src: /src/haproxy/src/tcpcheck.c:3097,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3098,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3099,1
    - Dst: ist0
      Src: /src/haproxy/src/tcpcheck.c:3103,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3104,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:3104,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:3106,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3112,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3114,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3115,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3120,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3120,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3121,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3122,1
    - Dst: free_tcpcheck_http_hdr
      Src: /src/haproxy/src/tcpcheck.c:3131,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3132,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3133,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: 3135
      start: 2948
    functionDepth: 6
    functionLinenumber: 2948
    functionLinenumberEnd: 3135
    functionName: parse_tcpcheck_send_http
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - istlen
    - lf_expr_init
    - strcmp
    - free_tcpcheck_http_hdr
    - find_http_meth
    - strlen
    - LIST_INIT
    - calloc
    - strdup
    - strcasecmp
    - parse_logformat_string
    - LIST_APPEND
    - memprintf
    - istdup
    - ist
    - istptr
    - free
    - isttest
    - ist0
    - free_tcpcheck
    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:3145,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3149,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3151,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:3155,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3157,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3165,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: 3167
      start: 3138
    functionDepth: 5
    functionLinenumber: 3138
    functionLinenumberEnd: 3167
    functionName: parse_tcpcheck_comment
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - calloc
    - memprintf
    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:3190,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3199,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3201,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3205,1
    - Dst: atol
      Src: /src/haproxy/src/tcpcheck.c:3210,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3212,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3226,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3226,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3228,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3237,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3243,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3243,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3247,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3253,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3259,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3259,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3261,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3273,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3279,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3279,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3283,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3289,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3295,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3297,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3301,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3306,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3306,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3312,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3317,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3322,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3322,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3323,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3328,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3332,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3334,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3338,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3340,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3342,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3344,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3346,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3348,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3355,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3366,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3366,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3370,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3374,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3377,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3381,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3383,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3385,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3387,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3389,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3391,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3398,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3407,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3413,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3415,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3419,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3423,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3424,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3426,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3430,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3432,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3436,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3442,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3444,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3448,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3454,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3456,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3460,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3463,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3465,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3467,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3469,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3472,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3478,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3480,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3484,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3487,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3489,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3491,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3493,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3495,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3498,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3504,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3508,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3512,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:3517,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcpcheck.c:3519,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3522,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3526,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcpcheck.c:3529,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:3534,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3536,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3540,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3543,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3545,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/tcpcheck.c:3547,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3550,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3559,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3564,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:3573,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3575,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3579,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3580,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3592,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3593,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3599,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3600,1
    - Dst: read_uint
      Src: /src/haproxy/src/tcpcheck.c:3613,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:3613,1
    - Dst: read_uint
      Src: /src/haproxy/src/tcpcheck.c:3616,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:3616,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3619,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/tcpcheck.c:3624,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3627,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3636,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3645,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3645,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3646,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3647,1
    - Dst: parse_binary
      Src: /src/haproxy/src/tcpcheck.c:3654,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3655,1
    - Dst: regex_comp
      Src: /src/haproxy/src/tcpcheck.c:3665,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3673,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3675,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3676,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3683,1
    - Dst: regex_comp
      Src: /src/haproxy/src/tcpcheck.c:3687,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3693,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3694,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3695,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3700,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3700,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3701,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3702,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3713,1
    - Dst: regex_comp
      Src: /src/haproxy/src/tcpcheck.c:3717,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3723,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:3724,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3725,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:3730,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:3730,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3731,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3732,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3742,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3762,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3763,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcpcheck.c:3764,1
    CyclomaticComplexity: 215
    EdgeCount: 215
    ICount: 580
    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: 3766
      start: 3173
    functionDepth: 6
    functionLinenumber: 3173
    functionLinenumberEnd: 3766
    functionName: parse_tcpcheck_expect
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - regex_comp
    - sample_parse_expr
    - my_realloc2
    - sample_src_names
    - lf_expr_init
    - strcmp
    - strlen
    - atol
    - calloc
    - strdup
    - parse_binary
    - strcasecmp
    - read_uint
    - parse_logformat_string
    - memprintf
    - release_sample_expr
    - ist
    - free
    - isttest
    - free_tcpcheck
    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: 3758
      start: 3750
    functionDepth: 0
    functionLinenumber: 3750
    functionLinenumberEnd: 3758
    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:3778,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3779,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3780,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3781,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3782,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3783,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3786,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3786,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3786,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3788,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:3790,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3792,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3793,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3795,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:3795,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3795,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3797,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:3799,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3801,1
    - Dst: lf_expr_xfer
      Src: /src/haproxy/src/tcpcheck.c:3802,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3802,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3805,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3805,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3806,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3807,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3808,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:3811,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3811,1
    - Dst: free_tcpcheck_http_hdrs
      Src: /src/haproxy/src/tcpcheck.c:3812,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/tcpcheck.c:3813,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3813,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:3814,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:3815,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3819,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:3819,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3819,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3821,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:3823,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3825,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3826,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3828,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/tcpcheck.c:3828,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3828,1
    - Dst: istfree
      Src: /src/haproxy/src/tcpcheck.c:3830,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/tcpcheck.c:3832,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:3834,1
    - Dst: lf_expr_xfer
      Src: /src/haproxy/src/tcpcheck.c:3835,1
    - Dst: send::send
      Src: /src/haproxy/src/tcpcheck.c:3835,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - old
    - new
    argTypes:
    - struct tcpcheck_rule*
    - struct tcpcheck_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3837
      start: 3773
    functionDepth: 5
    functionLinenumber: 3773
    functionLinenumberEnd: 3837
    functionName: tcpcheck_overwrite_send_http_rule
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - lf_expr_init
    - istfree
    - list_for_each_entry_safe
    - lf_expr_isempty
    - lf_expr_xfer
    - free_tcpcheck_http_hdrs
    - LIST_APPEND
    - free
    - isttest
    - lf_expr_deinit
    - LIST_ISEMPTY
    - send::send
    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:3871,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3873,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/tcpcheck.c:3875,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:3877,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3878,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/tcpcheck.c:3879,1
    - Dst: tcpcheck_overwrite_send_http_rule
      Src: /src/haproxy/src/tcpcheck.c:3882,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3883,1
    - Dst: get_last_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3893,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3897,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3902,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:3907,1
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3913,1
    - Dst: tcpcheck_overwrite_send_http_rule
      Src: /src/haproxy/src/tcpcheck.c:3915,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3916,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:3917,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:3922,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 44
    argCount: 3
    argNames:
    - chk
    - rules
    - errmsg
    argTypes:
    - struct tcpcheck_rule*
    - struct tcpcheck_rules*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3845
    functionDepth: 6
    functionLinenumber: 3845
    functionLinenumberEnd: 3925
    functionName: tcpcheck_add_http_rule
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - LIST_INSERT
    - LIST_APPEND
    - get_last_tcpcheck_rule
    - memprintf
    - get_first_tcpcheck_rule
    - get_next_tcpcheck_rule
    - tcpcheck_overwrite_send_http_rule
    - free_tcpcheck
    linkageType: ''
    returnType: int
    signature: int tcpcheck_add_http_rule(struct tcpcheck_rule *chk, struct tcpcheck_rules
      *rules, char **errmsg)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: deinit_proxy_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:3936,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:3940,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:3941,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:3944,1
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3957,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3959,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:3961,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/tcpcheck.c:3962,1
    - Dst: get_last_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3971,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:3973,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:3977,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:3979,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:3983,1
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:3993,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:3995,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:3997,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/tcpcheck.c:4004,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcpcheck.c:4014,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcpcheck.c:4023,1
    - Dst: isteqi
      Src: /src/haproxy/src/tcpcheck.c:4024,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4024,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/tcpcheck.c:4036,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:4040,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4045,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:4047,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4048,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4052,1
    - Dst: get_next_tcpcheck_rule
      Src: /src/haproxy/src/tcpcheck.c:4053,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:4058,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4063,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:4067,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 97
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4071
      start: 3928
    functionDepth: 7
    functionLinenumber: 3928
    functionLinenumberEnd: 4071
    functionName: check_proxy_tcpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - strdup
    - LIST_DELETE
    - LIST_INSERT
    - list_for_each_entry
    - list_for_each_entry_safe
    - ha_free
    - LIST_APPEND
    - get_last_tcpcheck_rule
    - free
    - parse_tcpcheck_expect
    - isteqi
    - ist
    - ha_alert
    - get_first_tcpcheck_rule
    - get_next_tcpcheck_rule
    - calloc
    - deinit_proxy_tcpcheck
    linkageType: ''
    returnType: int
    signature: int check_proxy_tcpcheck(struct proxy *px)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4073
    functionDepth: 5
    functionLinenumber: 4073
    functionLinenumberEnd: 4078
    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:4086,1
    - Dst: ebpt_next
      Src: /src/haproxy/src/tcpcheck.c:4088,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/tcpcheck.c:4089,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4090,1
    - Dst: container_of
      Src: /src/haproxy/src/tcpcheck.c:4091,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:4091,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/tcpcheck.c:4092,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/tcpcheck.c:4093,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:4094,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4099
      start: 4080
    functionDepth: 6
    functionLinenumber: 4080
    functionLinenumberEnd: 4099
    functionName: deinit_tcpchecks
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - ebpt_next
    - LIST_DELETE
    - list_for_each_entry_safe
    - container_of
    - free
    - typeof
    - ebpt_delete
    - ebpt_first
    - free_tcpcheck
    linkageType: ''
    returnType: void
    signature: void deinit_tcpchecks()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pool_zalloc
      Src: /src/haproxy/src/tcpcheck.c:4106,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:4112,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:4113,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4117,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4117,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:4118,1
    - Dst: pool_free
      Src: /src/haproxy/src/tcpcheck.c:4119,1
    - Dst: list_for_each_entry_rev
      Src: /src/haproxy/src/tcpcheck.c:4127,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 2
    argNames:
    - rules
    - str
    argTypes:
    - struct tcpcheck_rules*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4138
      start: 4101
    functionDepth: 1
    functionLinenumber: 4101
    functionLinenumberEnd: 4138
    functionName: add_tcpcheck_expect_str
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - strdup
    - lf_expr_init
    - list_for_each_entry_rev
    - pool_free
    - pool_zalloc
    - LIST_APPEND
    - isttest
    - ist
    linkageType: ''
    returnType: int
    signature: int add_tcpcheck_expect_str(struct tcpcheck_rules *rules, const char
      *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pool_zalloc
      Src: /src/haproxy/src/tcpcheck.c:4148,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4156,1
    - Dst: malloc
      Src: /src/haproxy/src/tcpcheck.c:4158,1
    - Dst: istlen
      Src: /src/haproxy/src/tcpcheck.c:4158,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:4159,1
    - Dst: pool_free
      Src: /src/haproxy/src/tcpcheck.c:4160,1
    - Dst: istptr
      Src: /src/haproxy/src/tcpcheck.c:4164,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4169,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - rules
    - strs
    argTypes:
    - struct tcpcheck_rules*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4171
      start: 4140
    functionDepth: 1
    functionLinenumber: 4140
    functionLinenumberEnd: 4171
    functionName: add_tcpcheck_send_strs
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - istlen
    - pool_free
    - istptr
    - pool_zalloc
    - LIST_APPEND
    - strlen
    - malloc
    - isttest
    linkageType: ''
    returnType: int
    signature: int add_tcpcheck_send_strs(struct tcpcheck_rules *rules, const char
      * const *strs)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:4182,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:4186,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4190,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:4190,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4192,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:4192,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4194,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:4200,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/tcpcheck.c:4201,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:4201,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4207,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:4208,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4209,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4209,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4210,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4210,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4211,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4212,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4213,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4214,1
    - Dst: parse_tcpcheck_comment
      Src: /src/haproxy/src/tcpcheck.c:4215,1
    - Dst: action_kw_tcp_check_lookup
      Src: /src/haproxy/src/tcpcheck.c:4217,1
    - Dst: action_kw_tcp_check_build_list
      Src: /src/haproxy/src/tcpcheck.c:4220,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4221,1
    - Dst: parse_tcpcheck_action
      Src: /src/haproxy/src/tcpcheck.c:4226,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4230,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4237,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:4253,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4254,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 56
    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: 4256
      start: 4174
    functionDepth: 7
    functionLinenumber: 4174
    functionLinenumberEnd: 4256
    functionName: proxy_parse_tcpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - find_tcpcheck_ruleset
    - LIST_PREV
    - parse_tcpcheck_comment
    - create_tcpcheck_ruleset
    - parse_tcpcheck_expect
    - action_kw_tcp_check_lookup
    - parse_tcpcheck_send
    - strcmp
    - warnifnotcap
    - chunk_printf
    - LIST_ISEMPTY
    - LIST_APPEND
    - typeof
    - memprintf
    - parse_tcpcheck_action
    - free_tcpcheck_ruleset
    - parse_tcpcheck_connect
    - b_orig
    - action_kw_tcp_check_build_list
    - free_tcpcheck
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_tcpcheck(char **args, int section, struct proxy *curpx,\n
      \                        const struct proxy *defpx, const char *file, int line,\n
      \                        char **errmsg)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:4267,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4271,1
    - Dst: too_many_args
      Src: /src/haproxy/src/tcpcheck.c:4274,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4278,1
    - Dst: too_many_args
      Src: /src/haproxy/src/tcpcheck.c:4281,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:4287,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4291,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:4291,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4293,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:4293,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4295,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/tcpcheck.c:4301,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/tcpcheck.c:4302,1
    - Dst: typeof
      Src: /src/haproxy/src/tcpcheck.c:4302,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4308,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:4309,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4310,1
    - Dst: parse_tcpcheck_send_http
      Src: /src/haproxy/src/tcpcheck.c:4311,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4312,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4313,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4315,1
    - Dst: parse_tcpcheck_comment
      Src: /src/haproxy/src/tcpcheck.c:4316,1
    - Dst: action_kw_tcp_check_lookup
      Src: /src/haproxy/src/tcpcheck.c:4318,1
    - Dst: action_kw_tcp_check_build_list
      Src: /src/haproxy/src/tcpcheck.c:4321,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4322,1
    - Dst: parse_tcpcheck_action
      Src: /src/haproxy/src/tcpcheck.c:4327,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4331,1
    - Dst: tcpcheck_add_http_rule
      Src: /src/haproxy/src/tcpcheck.c:4342,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:4343,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4351,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:4358,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4359,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 81
    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: 4361
      start: 4259
    functionDepth: 7
    functionLinenumber: 4259
    functionLinenumberEnd: 4361
    functionName: proxy_parse_httpcheck
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - find_tcpcheck_ruleset
    - LIST_PREV
    - parse_tcpcheck_comment
    - tcpcheck_add_http_rule
    - create_tcpcheck_ruleset
    - parse_tcpcheck_expect
    - action_kw_tcp_check_lookup
    - strcmp
    - warnifnotcap
    - chunk_printf
    - LIST_ISEMPTY
    - too_many_args
    - LIST_APPEND
    - typeof
    - memprintf
    - parse_tcpcheck_action
    - free_tcpcheck_ruleset
    - parse_tcpcheck_connect
    - b_orig
    - parse_tcpcheck_send_http
    - action_kw_tcp_check_build_list
    - free_tcpcheck
    linkageType: ''
    returnType: int
    signature: "int proxy_parse_httpcheck(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/tcpcheck.c:4376,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:4379,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4385,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4389,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4393,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4395,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4399,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4402,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4406,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4408,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4415,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4419,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4427,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4431,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4364
    functionDepth: 7
    functionLinenumber: 4364
    functionLinenumberEnd: 4434
    functionName: proxy_parse_redis_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - find_tcpcheck_ruleset
    - warnifnotcap
    - alertif_too_many_args_idx
    - create_tcpcheck_ruleset
    - LIST_APPEND
    - free
    - parse_tcpcheck_expect
    - ha_alert
    - free_tcpcheck_vars
    - free_tcpcheck_ruleset
    - parse_tcpcheck_send
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:4477,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:4480,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4486,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4490,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4494,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4496,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4500,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4503,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4507,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4509,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4515,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4519,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4527,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4531,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4534
      start: 4438
    functionDepth: 7
    functionLinenumber: 4438
    functionLinenumberEnd: 4534
    functionName: proxy_parse_ssl_hello_chk_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - find_tcpcheck_ruleset
    - warnifnotcap
    - alertif_too_many_args_idx
    - create_tcpcheck_ruleset
    - LIST_APPEND
    - free
    - parse_tcpcheck_expect
    - ha_alert
    - free_tcpcheck_vars
    - free_tcpcheck_ruleset
    - parse_tcpcheck_send
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:4549,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:4552,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4558,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4564,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4564,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4566,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4566,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:4567,1
    - Dst: snprintf
      Src: /src/haproxy/src/tcpcheck.c:4569,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4574,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:4577,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4577,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4579,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4584,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:4585,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4586,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4590,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4594,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4596,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:4600,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4603,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4607,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4609,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4616,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4620,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4622,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4630,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4634,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4636,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4639,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4643,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4645,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4653,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4657,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:4679,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4683,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4691,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4695,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4696,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4697,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4698,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 116
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4701
      start: 4537
    functionDepth: 7
    functionLinenumber: 4537
    functionLinenumberEnd: 4701
    functionName: proxy_parse_smtpchk_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - find_tcpcheck_ruleset
    - alertif_too_many_args_idx
    - create_tcpcheck_ruleset
    - parse_tcpcheck_expect
    - free_tcpcheck_vars
    - parse_tcpcheck_send
    - strcmp
    - warnifnotcap
    - snprintf
    - strlen
    - LIST_INIT
    - calloc
    - strdup
    - LIST_APPEND
    - ha_alert
    - free_tcpcheck_ruleset
    - parse_tcpcheck_connect
    - ist
    - create_tcpcheck_var
    - free
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:4723,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:4726,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4732,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4738,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4742,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4743,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4744,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:4746,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4746,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4748,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4753,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:4754,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4755,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:4759,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4759,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4761,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:4766,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4767,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4771,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4776,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4780,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4782,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:4786,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4789,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4793,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:4795,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4798,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4802,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4804,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4811,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4815,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:4817,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4825,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4829,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4837,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4841,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:4842,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4843,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:4844,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 109
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4847
      start: 4704
    functionDepth: 7
    functionLinenumber: 4704
    functionLinenumberEnd: 4847
    functionName: proxy_parse_pgsql_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - create_tcpcheck_var
    - strdup
    - find_tcpcheck_ruleset
    - strcmp
    - warnifnotcap
    - alertif_too_many_args_idx
    - create_tcpcheck_ruleset
    - LIST_APPEND
    - strlen
    - free
    - LIST_INIT
    - parse_tcpcheck_expect
    - ha_alert
    - free_tcpcheck_vars
    - free_tcpcheck_ruleset
    - parse_tcpcheck_send
    - parse_tcpcheck_connect
    - ist
    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: 19
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:4917,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:4920,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:4926,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4934,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4935,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4941,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:4946,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:4947,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:4948,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4951,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4955,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcpcheck.c:4960,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4966,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/tcpcheck.c:4976,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:4976,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:4978,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:4984,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4985,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: strlen
      Src: /src/haproxy/src/tcpcheck.c:4996,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:4997,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:4998,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5003,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5007,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5009,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:5013,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5016,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5020,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:5023,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5026,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5030,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5033,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5036,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5041,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5044,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5047,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5052,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5061,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5065,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5066,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5067,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5068,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5069,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 143
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5072
      start: 4851
    functionDepth: 7
    functionLinenumber: 4851
    functionLinenumberEnd: 5072
    functionName: proxy_parse_mysql_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - find_tcpcheck_ruleset
    - alertif_too_many_args_idx
    - create_tcpcheck_ruleset
    - parse_tcpcheck_expect
    - free_tcpcheck_vars
    - parse_tcpcheck_send
    - strcmp
    - warnifnotcap
    - strlen
    - LIST_INIT
    - calloc
    - strdup
    - LIST_APPEND
    - ha_alert
    - free_tcpcheck_ruleset
    - parse_tcpcheck_connect
    - ist
    - create_tcpcheck_var
    - free
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5085,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5088,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5094,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5098,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5102,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5104,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:5108,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5111,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5115,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5117,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5123,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5127,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5129,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5132,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5137,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5145,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5149,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5152
      start: 5074
    functionDepth: 7
    functionLinenumber: 5074
    functionLinenumberEnd: 5152
    functionName: proxy_parse_ldap_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - find_tcpcheck_ruleset
    - warnifnotcap
    - alertif_too_many_args_idx
    - create_tcpcheck_ruleset
    - LIST_APPEND
    - free
    - parse_tcpcheck_expect
    - ha_alert
    - free_tcpcheck_vars
    - free_tcpcheck_ruleset
    - parse_tcpcheck_send
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5170,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5173,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5179,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5183,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5187,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5189,1
    - Dst: parse_tcpcheck_connect
      Src: /src/haproxy/src/tcpcheck.c:5193,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5196,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5200,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/tcpcheck.c:5202,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5205,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5209,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/tcpcheck.c:5211,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5214,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5219,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5230,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5233
      start: 5154
    functionDepth: 7
    functionLinenumber: 5154
    functionLinenumberEnd: 5233
    functionName: proxy_parse_spop_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - find_tcpcheck_ruleset
    - warnifnotcap
    - alertif_too_many_args_idx
    - create_tcpcheck_ruleset
    - LIST_APPEND
    - parse_tcpcheck_expect
    - ha_alert
    - free_tcpcheck_vars
    - free_tcpcheck_ruleset
    - parse_tcpcheck_send
    - parse_tcpcheck_connect
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/haproxy/src/tcpcheck.c:5243,1
    - Dst: strstr
      Src: /src/haproxy/src/tcpcheck.c:5244,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5246,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:5251,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5253,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcpcheck.c:5260,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/tcpcheck.c:5277,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:5277,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:5278,1
    - Dst: strlen
      Src: /src/haproxy/src/tcpcheck.c:5279,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5281,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:5286,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:5286,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:5287,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5288,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:5293,1
    - Dst: strdup
      Src: /src/haproxy/src/tcpcheck.c:5293,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:5294,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5295,1
    - Dst: calloc
      Src: /src/haproxy/src/tcpcheck.c:5300,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5302,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/tcpcheck.c:5305,1
    - Dst: istdup
      Src: /src/haproxy/src/tcpcheck.c:5306,1
    - Dst: ist
      Src: /src/haproxy/src/tcpcheck.c:5306,1
    - Dst: isttest
      Src: /src/haproxy/src/tcpcheck.c:5307,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcpcheck.c:5308,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/tcpcheck.c:5312,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcpcheck.c:5314,1
    - Dst: free_tcpcheck_http_hdr
      Src: /src/haproxy/src/tcpcheck.c:5321,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:5322,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: 5324
      start: 5236
    functionDepth: 6
    functionLinenumber: 5236
    functionLinenumberEnd: 5324
    functionName: proxy_parse_httpchk_req
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 0
    functionsReached:
    - strdup
    - lf_expr_init
    - free_tcpcheck_http_hdr
    - find_http_meth
    - parse_logformat_string
    - LIST_APPEND
    - strlen
    - LIST_INIT
    - memprintf
    - istdup
    - isttest
    - ist
    - calloc
    - free_tcpcheck
    - strstr
    linkageType: ''
    returnType: struct tcpcheck_rule
    signature: struct tcpcheck_rule *proxy_parse_httpchk_req(char **args, int cur_arg,
      struct proxy *px, char **errmsg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5336,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5339,1
    - Dst: proxy_parse_httpchk_req
      Src: /src/haproxy/src/tcpcheck.c:5342,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5344,1
    - Dst: ha_warning
      Src: /src/haproxy/src/tcpcheck.c:5348,1
    - Dst: ha_free
      Src: /src/haproxy/src/tcpcheck.c:5350,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5357,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:5362,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5366,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5366,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5368,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5368,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5370,1
    - Dst: tcpcheck_add_http_rule
      Src: /src/haproxy/src/tcpcheck.c:5378,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5379,1
    - Dst: free
      Src: /src/haproxy/src/tcpcheck.c:5385,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5389,1
    - Dst: free_tcpcheck
      Src: /src/haproxy/src/tcpcheck.c:5390,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 6
    argNames:
    - args
    - cur_arg
    - curpx
    - defpx
    - file
    - line
    argTypes:
    - char**
    - int
    - struct proxy*
    - struct proxy*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5393
      start: 5327
    functionDepth: 7
    functionLinenumber: 5327
    functionLinenumberEnd: 5393
    functionName: proxy_parse_httpchk_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - b_orig
    - find_tcpcheck_ruleset
    - ha_warning
    - warnifnotcap
    - alertif_too_many_args_idx
    - chunk_printf
    - ha_free
    - create_tcpcheck_ruleset
    - tcpcheck_add_http_rule
    - proxy_parse_httpchk_req
    - free
    - ha_alert
    - free_tcpcheck_vars
    - free_tcpcheck_ruleset
    - free_tcpcheck
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: warnifnotcap
      Src: /src/haproxy/src/tcpcheck.c:5403,1
    - Dst: alertif_too_many_args_idx
      Src: /src/haproxy/src/tcpcheck.c:5406,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:5424,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5425,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5425,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/tcpcheck.c:5432,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5436,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5436,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/tcpcheck.c:5438,1
    - Dst: b_orig
      Src: /src/haproxy/src/tcpcheck.c:5438,1
    - Dst: ha_alert
      Src: /src/haproxy/src/tcpcheck.c:5440,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/tcpcheck.c:5446,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    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: 5457
      start: 5396
    functionDepth: 5
    functionLinenumber: 5396
    functionLinenumberEnd: 5457
    functionName: proxy_parse_tcp_check_opt
    functionSourceFile: /src/haproxy/src/tcpcheck.c
    functionUses: 1
    functionsReached:
    - b_orig
    - find_tcpcheck_ruleset
    - warnifnotcap
    - alertif_too_many_args_idx
    - chunk_printf
    - create_tcpcheck_ruleset
    - ha_alert
    - free_tcpcheck_vars
    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: 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:
    - HTX_SL_P2_LEN
    - htx_dump
    - br_head_idx
    - htx_get_blk_ptr
    - br_tail
    - b_data
    - chunk_appendf
    - fcgi_rt_str
    - htx_get_blk_type
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - HTX_SL_P2_PTR
    - b_head_ofs
    - br_tail_idx
    - htx_nbblks
    - br_head
    - HTX_SL_P1_LEN
    - fconn_st_to_str
    - br_size
    - b_size
    - chunk_memcat
    - __htx_get_head_blk
    - fstrm_st_to_str
    - b_orig
    - HTX_SL_P3_LEN
    - h1m_state_str
    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_recv_allowed
    - fcgi_may_demux
    - tasklet_wakeup
    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:
    - fcgi_strm_notify_recv
    - TRACE_STATE
    - fcgi_conn_restart_reading
    - fcgi_strm_sc
    - br_tail
    - b_alloc
    - fcgi_conn_st_by_id
    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:
    - LIST_INLIST
    - unlikely
    - likely
    - b_alloc
    - b_queue
    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_size
    - offer_buffers
    - br_head_pick
    - b_free
    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
    - MIN
    - fcgi_streams_left
    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:
    - TRACE_DEVEL
    - tick_add
    - get_px_fcgi_app
    - tasklet_new
    - tasklet_free
    - pool_free
    - tick_isset
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - LIST_INIT
    - task_queue
    - fcgi_conn_restart_reading
    - task_destroy
    - fcgi_stconn_new
    - task_new_here
    - br_init
    - TRACE_LEAVE
    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:
    - eb32_lookup
    - container_of
    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:
    - fcgi_conn_report_term_evt
    - TRACE_DEVEL
    - struct connection*::destroy_cb
    - tasklet_free
    - fcgi_release_mbuf
    - pool_free
    - conn_full_close
    - task_wakeup
    - struct connection*::xprt::unsubscribe
    - fcgi_release_buf
    - conn_stop_tracking
    - conn_free
    - TRACE_POINT
    - b_dequeue
    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:
    - br_data
    - eb_is_empty
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:900,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:903,1
    - Dst: fcgi_strm_notify_send
      Src: /src/haproxy/src/mux_fcgi.c:904,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:906,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:906,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:907,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:908,1
    - Dst: wake
      Src: /src/haproxy/src/mux_fcgi.c:908,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 898
    functionDepth: 2
    functionLinenumber: 898
    functionLinenumberEnd: 910
    functionName: fcgi_strm_alert
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_sc
    - wake
    - fcgi_strm_notify_send
    - TRACE_POINT
    - fcgi_strm_notify_recv
    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: 919
      start: 913
    functionDepth: 0
    functionLinenumber: 913
    functionLinenumberEnd: 919
    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: 928
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 928
    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:937,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:941,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:942,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:942,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:943,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:946,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:947,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 934
    functionDepth: 2
    functionLinenumber: 934
    functionLinenumberEnd: 949
    functionName: fcgi_strm_close
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_data
    - se_fl_test
    - TRACE_STATE
    - TRACE_ENTER
    - fcgi_strm_sc
    - TRACE_LEAVE
    - fcgi_strm_notify_recv
    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:957,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:960,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:961,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:964,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:965,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:966,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:967,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:968,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:971,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:973,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:974,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 975
    functionName: fcgi_strm_propagate_term_flags
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - se_fl_test
    - fcgi_conn_read0_pending
    - se_fl_set
    - 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:984,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:986,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_fcgi.c:987,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:988,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_fcgi.c:989,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_fcgi.c:990,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:998,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_fcgi.c:999,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:1000,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:1000,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_fcgi.c:1001,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_fcgi.c:1002,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1004,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 980
    functionDepth: 4
    functionLinenumber: 980
    functionLinenumberEnd: 1005
    functionName: fcgi_strm_destroy
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - offer_buffers
    - tasklet_free
    - pool_free
    - se_fl_test
    - fcgi_strm_close
    - LIST_DEL_INIT
    - TRACE_ENTER
    - BUG_ON
    - eb32_delete
    - TRACE_LEAVE
    - b_size
    - b_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:1017,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_fcgi.c:1019,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1021,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_fcgi.c:1025,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1027,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_fcgi.c:1028,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_fcgi.c:1034,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/mux_fcgi.c:1042,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_fcgi.c:1052,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1056,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1060,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 2
    argNames:
    - fconn
    - id
    argTypes:
    - struct fcgi_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1013
    functionDepth: 1
    functionLinenumber: 1013
    functionLinenumberEnd: 1062
    functionName: fcgi_strm_new
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - tasklet_new
    - pool_free
    - h1m_init_res
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - LIST_INIT
    - eb32_insert
    - TRACE_LEAVE
    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:1073,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1075,1
    - Dst: fcgi_streams_left
      Src: /src/haproxy/src/mux_fcgi.c:1079,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1080,1
    - Dst: fcgi_strm_new
      Src: /src/haproxy/src/mux_fcgi.c:1085,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1087,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_fcgi.c:1090,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1096,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1100,1
    - Dst: fcgi_strm_destroy
      Src: /src/haproxy/src/mux_fcgi.c:1101,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: 1103
      start: 1068
    functionDepth: 5
    functionLinenumber: 1068
    functionLinenumberEnd: 1103
    functionName: fcgi_stconn_new
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - fcgi_strm_new
    - fcgi_strm_destroy
    - fcgi_streams_left
    - TRACE_ENTER
    - TRACE_ERROR
    - sc_attach_mux
    - TRACE_LEAVE
    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:1114,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1116,1
    - Dst: fcgi_strm_destroy
      Src: /src/haproxy/src/mux_fcgi.c:1118,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1119,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:1123,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1126,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:1129,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_fcgi.c:1133,1
    - Dst: fcgi_strm_propagate_term_flags
      Src: /src/haproxy/src/mux_fcgi.c:1134,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1137,1
    - Dst: fcgi_strm_alert
      Src: /src/haproxy/src/mux_fcgi.c:1141,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1143,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1110
    functionDepth: 5
    functionLinenumber: 1110
    functionLinenumberEnd: 1144
    functionName: fcgi_strm_wake_one_stream
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - fcgi_strm_destroy
    - fcgi_conn_read0_pending
    - TRACE_STATE
    - fcgi_strm_close
    - TRACE_ENTER
    - fcgi_strm_sc
    - se_fl_set_error
    - fcgi_strm_propagate_term_flags
    - fcgi_strm_alert
    - TRACE_LEAVE
    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:1152,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:1154,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:1157,1
    - Dst: fcgi_strm_wake_one_stream
      Src: /src/haproxy/src/mux_fcgi.c:1158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1147
    functionDepth: 6
    functionLinenumber: 1147
    functionLinenumberEnd: 1160
    functionName: fcgi_wake_unassigned_streams
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_wake_one_stream
    - eb32_lookup
    - container_of
    - 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:1170,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_fcgi.c:1173,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:1175,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:1176,1
    - Dst: fcgi_strm_wake_one_stream
      Src: /src/haproxy/src/mux_fcgi.c:1177,1
    - Dst: fcgi_wake_unassigned_streams
      Src: /src/haproxy/src/mux_fcgi.c:1179,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fconn
    - last
    argTypes:
    - struct fcgi_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1165
    functionDepth: 7
    functionLinenumber: 1165
    functionLinenumberEnd: 1182
    functionName: fcgi_wake_some_streams
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_wake_unassigned_streams
    - eb32_lookup_ge
    - container_of
    - eb32_next
    - TRACE_ENTER
    - fcgi_strm_wake_one_stream
    - TRACE_LEAVE
    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:1188,1
    - Dst: sc_check
      Src: /src/haproxy/src/mux_fcgi.c:1189,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1189,1
    - Dst: conn_src
      Src: /src/haproxy/src/mux_fcgi.c:1189,1
    - Dst: sc_src
      Src: /src/haproxy/src/mux_fcgi.c:1189,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/mux_fcgi.c:1189,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1189,1
    - Dst: sc_check
      Src: /src/haproxy/src/mux_fcgi.c:1190,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1190,1
    - Dst: conn_dst
      Src: /src/haproxy/src/mux_fcgi.c:1190,1
    - Dst: sc_dst
      Src: /src/haproxy/src/mux_fcgi.c:1190,1
    - Dst: sc_opposite
      Src: /src/haproxy/src/mux_fcgi.c:1190,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:1190,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/mux_fcgi.c:1200,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1201,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1201,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1202,1
    - Dst: h1_get_uri
      Src: /src/haproxy/src/mux_fcgi.c:1205,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1206,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1206,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1207,1
    - Dst: htx_sl_req_vsn
      Src: /src/haproxy/src/mux_fcgi.c:1210,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1211,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1211,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1212,1
    - Dst: get_host_port
      Src: /src/haproxy/src/mux_fcgi.c:1218,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/mux_fcgi.c:1219,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1219,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1219,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1222,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1222,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1222,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1228,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/mux_fcgi.c:1232,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1232,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1232,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1233,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1235,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/mux_fcgi.c:1244,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1244,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1244,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1245,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1247,1
    - Dst: get_host_port
      Src: /src/haproxy/src/mux_fcgi.c:1255,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/mux_fcgi.c:1256,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1256,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1256,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1259,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1259,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1259,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:1268,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/mux_fcgi.c:1268,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:1269,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:1274,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/mux_fcgi.c:1276,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1276,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:1276,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1279,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1279,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1279,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/mux_fcgi.c:1285,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/mux_fcgi.c:1290,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/mux_fcgi.c:1291,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1295,1
    - Dst: istfind
      Src: /src/haproxy/src/mux_fcgi.c:1300,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1306,1
    - Dst: istnext
      Src: /src/haproxy/src/mux_fcgi.c:1307,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1321,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1322,1
    - Dst: url_decode
      Src: /src/haproxy/src/mux_fcgi.c:1323,1
    - Dst: ist0
      Src: /src/haproxy/src/mux_fcgi.c:1323,1
    - Dst: istchr
      Src: /src/haproxy/src/mux_fcgi.c:1343,1
    - Dst: istchr
      Src: /src/haproxy/src/mux_fcgi.c:1343,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/mux_fcgi.c:1349,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1362,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1364,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1371,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1374,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1374,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1375,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1376,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1381,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1381,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:1382,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1383,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: 1390
      start: 1184
    functionDepth: 4
    functionLinenumber: 1184
    functionLinenumberEnd: 1390
    functionName: fcgi_set_default_param
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - conn_is_ssl
    - url_decode
    - conn_src
    - b_tail
    - sc_src
    - ultoa_o
    - istfind
    - ist0
    - get_host_port
    - istlen
    - objt_conn
    - htx_get_head_blk
    - chunk_appendf
    - sc_opposite
    - htx_get_blk_type
    - ist2
    - fcgi_strm_sc
    - regex_exec_match2
    - h1_get_uri
    - addr_to_str
    - http_parse_path
    - sc_dst
    - istchr
    - htx_sl_req_meth
    - b_room
    - htx_get_next_blk
    - http_uri_parser_init
    - conn_dst
    - ist
    - htx_get_blksz
    - istnext
    - chunk_istcat
    - htx_sl_req_vsn
    - sc_check
    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:1400,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1404,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1405,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1408,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1412,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1416,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1420,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1424,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1428,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1432,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1436,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1440,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1444,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1448,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1452,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1453,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1454,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1455,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:1455,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1455,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1458,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1460,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1461,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/mux_fcgi.c:1462,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:1463,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:1463,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1463,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1466,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1472,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1473,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1476,1
    - Dst: istlen
      Src: /src/haproxy/src/mux_fcgi.c:1484,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:1486,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: 1491
      start: 1392
    functionDepth: 2
    functionLinenumber: 1392
    functionLinenumberEnd: 1491
    functionName: fcgi_encode_default_param
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - istlen
    - b_data
    - chunk_reset
    - ist2
    - chunk_istcat
    - b_head
    - fcgi_encode_param
    - ist
    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:1502,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1502,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1503,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1503,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1506,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:1508,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:1510,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1513,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1519,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1519,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:1519,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:1520,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:1523,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1523,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:1531,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:1537,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:1537,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1541,1
    - Dst: fcgi_set_record_size
      Src: /src/haproxy/src/mux_fcgi.c:1542,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:1543,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1547,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1551,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1552,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:1556,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1560,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1565,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1566,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1498
    functionDepth: 2
    functionLinenumber: 1498
    functionLinenumberEnd: 1568
    functionName: fcgi_conn_send_get_values
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_space_wraps
    - b_tail
    - br_tail
    - TRACE_LEAVE
    - b_data
    - fcgi_set_record_size
    - b_make
    - fcgi_encode_param
    - fcgi_get_buf
    - TRACE_PROTO
    - br_tail_add
    - b_contig_space
    - ist
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - b_slow_realign
    - memcpy
    - b_add
    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:1581,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:1586,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1590,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1592,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:1596,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_fcgi.c:1596,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:1596,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_fcgi.c:1601,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1604,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:1604,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1604,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1606,1
    - Dst: fcgi_aligned_decode_param
      Src: /src/haproxy/src/mux_fcgi.c:1610,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1613,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_fcgi.c:1618,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1618,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1619,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1619,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1620,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1624,1
    - Dst: isteqi
      Src: /src/haproxy/src/mux_fcgi.c:1628,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1628,1
    - Dst: strl2ui
      Src: /src/haproxy/src/mux_fcgi.c:1629,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1630,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1642,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:1649,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1653,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:1654,1
    - Dst: fcgi_wake_unassigned_streams
      Src: /src/haproxy/src/mux_fcgi.c:1658,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1659,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1660,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1664,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:1665,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1575
    functionDepth: 7
    functionLinenumber: 1575
    functionLinenumberEnd: 1667
    functionName: fcgi_conn_handle_values_result
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - isteq
    - unlikely
    - b_head
    - TRACE_LEAVE
    - fcgi_wake_unassigned_streams
    - b_data
    - b_head_ofs
    - b_make
    - b_slow_realign_ofs
    - b_contig_data
    - fcgi_aligned_decode_param
    - TRACE_PROTO
    - isteqi
    - b_size
    - ist
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - b_del
    - strl2ui
    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:1678,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_fcgi.c:1680,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:1682,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:1683,1
    - Dst: fcgi_strm_send_abort
      Src: /src/haproxy/src/mux_fcgi.c:1686,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:1690,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1691,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1692,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1673
    functionDepth: 2
    functionLinenumber: 1673
    functionLinenumberEnd: 1694
    functionName: fcgi_conn_send_aborts
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_conn_report_term_evt
    - fcgi_strm_send_abort
    - eb32_lookup_ge
    - container_of
    - eb32_next
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_LEAVE
    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:1707,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:1709,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:1711,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1714,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1720,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1720,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:1720,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:1721,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:1724,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1724,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:1732,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:1733,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1737,1
    - Dst: fcgi_encode_begin_request
      Src: /src/haproxy/src/mux_fcgi.c:1740,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1744,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:1745,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1748,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1752,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:1755,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1759,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1700
    functionDepth: 2
    functionLinenumber: 1700
    functionLinenumberEnd: 1762
    functionName: fcgi_strm_send_begin_request
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - fcgi_get_buf
    - b_contig_space
    - fcgi_encode_begin_request
    - b_data
    - fcgi_set_record_id
    - TRACE_STATE
    - b_tail
    - TRACE_ENTER
    - memcpy
    - TRACE_PROTO
    - br_tail_add
    - TRACE_LEAVE
    - br_tail
    - b_slow_realign
    - b_make
    - b_add
    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:1775,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:1776,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:1778,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1781,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1787,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1787,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:1787,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:1788,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:1791,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1791,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:1799,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:1801,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:1805,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:1809,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:1812,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1816,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: 1819
      start: 1768
    functionDepth: 2
    functionLinenumber: 1768
    functionLinenumberEnd: 1819
    functionName: fcgi_strm_send_empty_record
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - fcgi_get_buf
    - b_contig_space
    - b_data
    - fcgi_set_record_id
    - TRACE_STATE
    - b_tail
    - TRACE_ENTER
    - memcpy
    - br_tail_add
    - TRACE_LEAVE
    - br_tail
    - b_slow_realign
    - b_make
    - b_add
    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:1829,1
    - Dst: fcgi_strm_send_empty_record
      Src: /src/haproxy/src/mux_fcgi.c:1830,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1825
    functionDepth: 3
    functionLinenumber: 1825
    functionLinenumberEnd: 1836
    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:1845,1
    - Dst: fcgi_strm_send_empty_record
      Src: /src/haproxy/src/mux_fcgi.c:1846,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1849,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:1850,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1841
    functionDepth: 3
    functionLinenumber: 1841
    functionLinenumberEnd: 1854
    functionName: fcgi_strm_send_empty_stdin
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - fcgi_strm_send_empty_record
    - TRACE_USER
    - TRACE_PROTO
    - TRACE_POINT
    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:1863,1
    - Dst: fcgi_strm_send_empty_record
      Src: /src/haproxy/src/mux_fcgi.c:1864,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:1867,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:1868,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:1869,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1859
    functionDepth: 3
    functionLinenumber: 1859
    functionLinenumberEnd: 1873
    functionName: fcgi_strm_send_abort
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - TRACE_STATE
    - fcgi_strm_send_empty_record
    - TRACE_USER
    - TRACE_PROTO
    - TRACE_POINT
    - se_report_term_evt
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_send_abort(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:1890,1
    - Dst: memset
      Src: /src/haproxy/src/mux_fcgi.c:1892,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_fcgi.c:1893,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:1895,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:1897,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:1900,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:1905,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:1905,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:1905,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:1906,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:1909,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:1909,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:1917,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:1918,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:1921,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:1924,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:1927,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_fcgi.c:1930,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/mux_fcgi.c:1938,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_fcgi.c:1939,1
    - Dst: istmatch
      Src: /src/haproxy/src/mux_fcgi.c:1941,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1941,1
    - Dst: istadv
      Src: /src/haproxy/src/mux_fcgi.c:1942,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1943,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1943,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1945,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1945,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1949,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1949,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1953,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1953,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1957,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1957,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1961,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1961,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1963,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1963,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1965,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1965,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1967,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1967,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1969,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1969,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1971,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1971,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1973,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1973,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1975,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1975,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1977,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1977,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1979,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1979,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1981,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1981,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1984,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1984,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1985,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1988,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1988,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1989,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1993,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1993,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:1995,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1995,1
    - Dst: istist
      Src: /src/haproxy/src/mux_fcgi.c:1999,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:1999,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_fcgi.c:2000,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2002,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_fcgi.c:2006,1
    - Dst: isteq
      Src: /src/haproxy/src/mux_fcgi.c:2006,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:2009,1
    - Dst: istcat
      Src: /src/haproxy/src/mux_fcgi.c:2010,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2010,1
    - Dst: istcat
      Src: /src/haproxy/src/mux_fcgi.c:2011,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:2015,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:2016,1
    - Dst: isttest
      Src: /src/haproxy/src/mux_fcgi.c:2025,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_fcgi.c:2026,1
    - Dst: ist2
      Src: /src/haproxy/src/mux_fcgi.c:2031,1
    - Dst: istcat
      Src: /src/haproxy/src/mux_fcgi.c:2032,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2032,1
    - Dst: istcat
      Src: /src/haproxy/src/mux_fcgi.c:2033,1
    - Dst: ist
      Src: /src/haproxy/src/mux_fcgi.c:2034,1
    - Dst: fcgi_encode_param
      Src: /src/haproxy/src/mux_fcgi.c:2036,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:2037,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2042,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_fcgi.c:2050,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: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2076,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2081,1
    - Dst: fcgi_set_record_size
      Src: /src/haproxy/src/mux_fcgi.c:2082,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:2083,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2086,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:2089,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2093,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2100,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:2101,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 183
    argCount: 3
    argNames:
    - fconn
    - fstrm
    - htx
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 1880
    functionDepth: 5
    functionLinenumber: 1880
    functionLinenumberEnd: 2103
    functionName: fcgi_strm_send_params
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - isteq
    - b_space_wraps
    - get_trash_chunk
    - htx_get_blk_value
    - fcgi_set_record_id
    - istadv
    - b_tail
    - istist
    - htx_get_blk_name
    - htx_get_blk_ptr
    - fcgi_encode_default_param
    - br_tail
    - TRACE_LEAVE
    - b_data
    - htx_get_head_blk
    - htx_get_blk_type
    - ist2
    - fcgi_set_record_size
    - b_make
    - fcgi_encode_param
    - fcgi_get_buf
    - memset
    - fcgi_strm_error
    - htx_remove_blk
    - TRACE_PROTO
    - br_tail_add
    - b_contig_space
    - ist
    - istmatch
    - htx_get_blksz
    - objt_server
    - TRACE_STATE
    - TRACE_ENTER
    - istcat
    - TRACE_ERROR
    - fcgi_set_default_param
    - isttest
    - b_slow_realign
    - memcpy
    - b_add
    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: 23
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2120,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:2124,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:2126,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2129,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:2149,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:2152,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:2153,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2154,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/mux_fcgi.c:2154,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2162,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2169,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2170,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2170,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2171,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:2171,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2176,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:2180,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:2181,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:2184,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:2185,1
    - Dst: fcgi_set_record_size
      Src: /src/haproxy/src/mux_fcgi.c:2186,1
    - Dst: htx_reset
      Src: /src/haproxy/src/mux_fcgi.c:2194,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:2202,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_fcgi.c:2202,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_fcgi.c:2202,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:2203,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_fcgi.c:2206,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2206,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_fcgi.c:2214,1
    - Dst: fcgi_set_record_id
      Src: /src/haproxy/src/mux_fcgi.c:2215,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:2218,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:2220,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:2221,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2226,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/mux_fcgi.c:2227,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_fcgi.c:2229,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2237,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_fcgi.c:2242,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2243,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2243,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2244,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2246,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2248,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/mux_fcgi.c:2250,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/mux_fcgi.c:2258,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_fcgi.c:2268,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2273,1
    - Dst: fcgi_set_record_size
      Src: /src/haproxy/src/mux_fcgi.c:2274,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_fcgi.c:2275,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:2278,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2280,1
    - Dst: fcgi_strm_send_empty_stdin
      Src: /src/haproxy/src/mux_fcgi.c:2281,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2284,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:2285,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2290,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_fcgi.c:2293,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2297,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 134
    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: 2299
      start: 2108
    functionDepth: 4
    functionLinenumber: 2108
    functionLinenumberEnd: 2299
    functionName: fcgi_strm_send_stdin
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - unlikely
    - htx_get_blk_value
    - fcgi_set_record_id
    - b_tail
    - fcgi_strm_send_empty_stdin
    - b_head
    - br_tail
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - htx_cut_data_blk
    - htx_get_blk_type
    - fcgi_set_record_size
    - b_make
    - fcgi_get_buf
    - htx_nbblks
    - fcgi_strm_error
    - htx_is_unique_blk
    - b_room
    - htx_remove_blk
    - TRACE_PROTO
    - br_tail_add
    - b_size
    - chunk_memcat
    - b_contig_space
    - htx_is_empty
    - htx_get_blksz
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - htx_reset
    - b_slow_realign
    - memcpy
    - b_add
    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:2311,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2319,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2319,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:2324,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2326,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_fcgi.c:2331,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2332,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_fcgi.c:2337,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2341,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2342,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_fcgi.c:2344,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2346,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2356,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2356,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2357,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2363,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2364,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2367,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 55
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2369
      start: 2305
    functionDepth: 2
    functionLinenumber: 2305
    functionLinenumberEnd: 2369
    functionName: fcgi_strm_handle_stdout
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - fcgi_get_buf
    - buf_room_for_htx_data
    - MIN
    - b_xfer
    - b_data
    - TRACE_DATA
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_PROTO
    - b_del
    - b_full
    - TRACE_LEAVE
    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:2380,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2382,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2382,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2388,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2392,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2392,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2393,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2399,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2400,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2401,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2405,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2376
    functionDepth: 1
    functionLinenumber: 2376
    functionLinenumberEnd: 2407
    functionName: fcgi_strm_handle_empty_stdout
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - MIN
    - b_data
    - TRACE_STATE
    - TRACE_ENTER
    - b_del
    - TRACE_PROTO
    - b_full
    - TRACE_LEAVE
    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:2418,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2425,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2425,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/mux_fcgi.c:2430,1
    - Dst: b_force_xfer
      Src: /src/haproxy/src/mux_fcgi.c:2431,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2431,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2431,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2435,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_fcgi.c:2439,1
    - Dst: app_log
      Src: /src/haproxy/src/mux_fcgi.c:2440,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2449,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2449,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2450,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2455,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2456,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2459,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 45
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2412
    functionDepth: 1
    functionLinenumber: 2412
    functionLinenumberEnd: 2461
    functionName: fcgi_strm_handle_stderr
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - app_log
    - MIN
    - b_data
    - b_force_xfer
    - TRACE_STATE
    - TRACE_ENTER
    - b_room
    - strlen
    - TRACE_PROTO
    - b_del
    - b_full
    - TRACE_LEAVE
    - chunk_reset
    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:2475,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2479,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2480,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2485,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2487,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2491,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_fcgi.c:2491,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:2491,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_fcgi.c:2496,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_fcgi.c:2499,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_fcgi.c:2499,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2499,1
    - Dst: fcgi_decode_end_request
      Src: /src/haproxy/src/mux_fcgi.c:2501,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2502,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2507,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2508,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:2510,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2512,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2516,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2517,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:2521,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2522,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - fconn
    - fstrm
    argTypes:
    - struct fcgi_conn*
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2469
    functionDepth: 3
    functionLinenumber: 2469
    functionLinenumberEnd: 2524
    functionName: fcgi_strm_handle_end_request
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_slow_realign_ofs
    - unlikely
    - b_data
    - b_contig_data
    - fcgi_strm_error
    - TRACE_STATE
    - fcgi_strm_close
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_PROTO
    - b_del
    - b_head
    - TRACE_LEAVE
    - b_size
    - b_head_ofs
    - b_make
    - fcgi_decode_end_request
    linkageType: ''
    returnType: int
    signature: int fcgi_strm_handle_end_request(struct fcgi_conn *fconn, struct fcgi_strm
      *fstrm)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2533,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2538,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2540,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2545,1
    - Dst: fcgi_decode_record_hdr
      Src: /src/haproxy/src/mux_fcgi.c:2546,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2549,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2552,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:2556,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2557,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2567,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2570,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2571,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2577,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2582,1
    - Dst: fcgi_decode_record_hdr
      Src: /src/haproxy/src/mux_fcgi.c:2583,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2588,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2596,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2600,1
    - Dst: fcgi_conn_st_by_id
      Src: /src/haproxy/src/mux_fcgi.c:2604,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:2606,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2607,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:2608,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:2611,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2613,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:2614,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:2615,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2630,1
    - Dst: fcgi_conn_handle_values_result
      Src: /src/haproxy/src/mux_fcgi.c:2631,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2638,1
    - Dst: fcgi_strm_handle_stdout
      Src: /src/haproxy/src/mux_fcgi.c:2640,1
    - Dst: fcgi_strm_handle_empty_stdout
      Src: /src/haproxy/src/mux_fcgi.c:2642,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2646,1
    - Dst: fcgi_strm_handle_stderr
      Src: /src/haproxy/src/mux_fcgi.c:2647,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2651,1
    - Dst: fcgi_strm_handle_end_request
      Src: /src/haproxy/src/mux_fcgi.c:2652,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2662,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2662,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_fcgi.c:2671,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2671,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2672,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2673,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2674,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2681,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2687,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:2698,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:2698,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:2702,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:2702,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_fcgi.c:2707,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:2711,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2712,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:2713,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:2716,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2718,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:2719,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:2720,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:2723,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 143
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2527
    functionDepth: 8
    functionLinenumber: 2527
    functionLinenumberEnd: 2724
    functionName: fcgi_process_demux
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - unlikely
    - fcgi_conn_read0_pending
    - fcgi_conn_handle_values_result
    - eb_is_empty
    - b_full
    - MIN
    - fcgi_strm_handle_stderr
    - b_data
    - fcgi_strm_handle_end_request
    - fcgi_strm_sc
    - fcgi_conn_st_by_id
    - fcgi_conn_report_term_evt
    - se_fl_set
    - se_fl_test
    - fcgi_decode_record_hdr
    - TRACE_PROTO
    - fcgi_strm_notify_recv
    - TRACE_STATE
    - TRACE_ENTER
    - fcgi_conn_restart_reading
    - TRACE_ERROR
    - b_del
    - fcgi_strm_handle_stdout
    - fcgi_strm_handle_empty_stdout
    linkageType: ''
    returnType: void
    signature: void fcgi_process_demux(struct fcgi_conn *fconn)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2733,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2735,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2736,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2739,1
    - Dst: fcgi_wake_unassigned_streams
      Src: /src/haproxy/src/mux_fcgi.c:2740,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:2743,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:2744,1
    - Dst: fcgi_conn_send_get_values
      Src: /src/haproxy/src/mux_fcgi.c:2744,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2747,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_fcgi.c:2755,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:2767,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:2772,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:2775,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:2781,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:2782,1
    - Dst: fcgi_conn_send_aborts
      Src: /src/haproxy/src/mux_fcgi.c:2789,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2791,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2798,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 61
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2800
      start: 2729
    functionDepth: 7
    functionLinenumber: 2729
    functionLinenumberEnd: 2800
    functionName: fcgi_process_mux
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_wake_unassigned_streams
    - TRACE_DEVEL
    - tasklet_wakeup
    - unlikely
    - list_for_each_entry_safe
    - TRACE_STATE
    - fcgi_conn_send_get_values
    - TRACE_ENTER
    - LIST_DEL_INIT
    - fcgi_conn_send_aborts
    - TRACE_PROTO
    - TRACE_POINT
    - TRACE_LEAVE
    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:2813,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2816,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2817,1
    - Dst: fcgi_recv_allowed
      Src: /src/haproxy/src/mux_fcgi.c:2820,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2821,1
    - Dst: fcgi_get_buf
      Src: /src/haproxy/src/mux_fcgi.c:2825,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2827,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2832,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/mux_fcgi.c:2841,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_fcgi.c:2845,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_fcgi.c:2847,1
    - Dst: fcgi_recv_allowed
      Src: /src/haproxy/src/mux_fcgi.c:2849,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2850,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_fcgi.c:2851,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2855,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:2858,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2859,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2863,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2864,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2868,1
    - Dst: fcgi_release_buf
      Src: /src/haproxy/src/mux_fcgi.c:2869,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2874,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:2879,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2881
      start: 2806
    functionDepth: 2
    functionLinenumber: 2806
    functionLinenumberEnd: 2881
    functionName: fcgi_recv
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - fcgi_recv_allowed
    - fcgi_get_buf
    - buf_room_for_htx_data
    - conn_xprt_read0_pending
    - b_data
    - TRACE_DATA
    - fcgi_release_buf
    - TRACE_ENTER
    - b_room
    - struct connection*::xprt::subscribe
    - struct connection*::xprt::rcv_buf
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int fcgi_recv(struct fcgi_conn *fconn)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:2893,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:2896,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_fcgi.c:2899,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:2899,1
    - Dst: fcgi_process_mux
      Src: /src/haproxy/src/mux_fcgi.c:2936,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_fcgi.c:2947,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:2947,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_fcgi.c:2947,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2948,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_fcgi.c:2951,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2951,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_fcgi.c:2957,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:2958,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:2959,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_fcgi.c:2964,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_fcgi.c:2969,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:2973,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:2979,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_fcgi.c:2982,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:2982,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mux_fcgi.c:2991,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:3003,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3008,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:3011,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:3017,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:3018,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_fcgi.c:3023,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3024,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3029,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_fcgi.c:3030,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3033,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 93
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3036
      start: 2887
    functionDepth: 8
    functionLinenumber: 2887
    functionLinenumberEnd: 3036
    functionName: fcgi_send
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - fcgi_process_mux
    - offer_buffers
    - TRACE_DATA
    - br_tail
    - b_free
    - b_data
    - fcgi_conn_report_term_evt
    - tasklet_wakeup
    - br_head
    - LIST_DEL_INIT
    - struct connection*::xprt::subscribe
    - br_del_head
    - b_size
    - list_for_each_entry
    - br_data
    - TRACE_STATE
    - TRACE_ENTER
    - b_del
    - TRACE_POINT
    - b_reset
    - struct connection*::xprt::snd_buf
    linkageType: ''
    returnType: int
    signature: int fcgi_send(struct fcgi_conn *fconn)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_fcgi.c:3051,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3057,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_fcgi.c:3058,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_fcgi.c:3062,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_fcgi.c:3067,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_fcgi.c:3071,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3075,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3079,1
    - Dst: fcgi_send
      Src: /src/haproxy/src/mux_fcgi.c:3084,1
    - Dst: fcgi_recv
      Src: /src/haproxy/src/mux_fcgi.c:3086,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3087,1
    - Dst: fcgi_process
      Src: /src/haproxy/src/mux_fcgi.c:3088,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_fcgi.c:3099,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_fcgi.c:3103,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_fcgi.c:3109,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_fcgi.c:3110,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/mux_fcgi.c:3111,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3112,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3123,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3125
      start: 3039
    functionDepth: 9
    functionLinenumber: 3039
    functionLinenumberEnd: 3125
    functionName: fcgi_io_cb
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - tasklet_free
    - conn_delete_from_tree
    - b_data
    - fcgi_process
    - objt_server
    - TRACE_ENTER
    - fcgi_send
    - _srv_add_idle
    - ASSUME_NONNULL
    - HA_SPIN_LOCK
    - session_detach_idle_conn
    - TRACE_POINT
    - HA_SPIN_UNLOCK
    - fcgi_release
    - session_reinsert_idle_conn
    - fcgi_recv
    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:3135,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3138,1
    - Dst: fcgi_process_demux
      Src: /src/haproxy/src/mux_fcgi.c:3140,1
    - Dst: fcgi_recv_allowed
      Src: /src/haproxy/src/mux_fcgi.c:3148,1
    - Dst: fcgi_recv
      Src: /src/haproxy/src/mux_fcgi.c:3152,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3154,1
    - Dst: fcgi_may_demux
      Src: /src/haproxy/src/mux_fcgi.c:3154,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:3157,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_fcgi.c:3160,1
    - Dst: fcgi_send
      Src: /src/haproxy/src/mux_fcgi.c:3162,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_fcgi.c:3164,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3169,1
    - Dst: fcgi_conn_send_aborts
      Src: /src/haproxy/src/mux_fcgi.c:3172,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_fcgi.c:3186,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:3189,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3190,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:3190,1
    - Dst: fcgi_strm_notify_recv
      Src: /src/haproxy/src/mux_fcgi.c:3191,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:3192,1
    - Dst: fcgi_conn_read0_pending
      Src: /src/haproxy/src/mux_fcgi.c:3196,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3198,1
    - Dst: fcgi_wake_some_streams
      Src: /src/haproxy/src/mux_fcgi.c:3199,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3201,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3203,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3204,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3209,1
    - Dst: fcgi_release_buf
      Src: /src/haproxy/src/mux_fcgi.c:3210,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_fcgi.c:3213,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_fcgi.c:3213,1
    - Dst: fcgi_release_mbuf
      Src: /src/haproxy/src/mux_fcgi.c:3214,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_fcgi.c:3217,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_fcgi.c:3218,1
    - Dst: fcgi_send
      Src: /src/haproxy/src/mux_fcgi.c:3221,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3222,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 52
    argCount: 1
    argNames:
    - fconn
    argTypes:
    - struct fcgi_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3224
      start: 3131
    functionDepth: 9
    functionLinenumber: 3131
    functionLinenumberEnd: 3224
    functionName: fcgi_process
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - fcgi_may_demux
    - eb32_lookup_ge
    - unlikely
    - fcgi_conn_read0_pending
    - eb_is_empty
    - TRACE_LEAVE
    - fcgi_release_mbuf
    - b_data
    - container_of
    - eb32_next
    - fcgi_strm_sc
    - LIST_ISEMPTY
    - fcgi_recv_allowed
    - fcgi_process_demux
    - se_fl_test
    - fcgi_conn_send_aborts
    - fcgi_release_buf
    - fcgi_send
    - fcgi_release
    - fcgi_strm_notify_recv
    - tick_add
    - br_data
    - TRACE_STATE
    - fcgi_conn_restart_reading
    - task_queue
    - TRACE_POINT
    - fcgi_wake_some_streams
    - fcgi_recv
    - b_reset
    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:3232,1
    - Dst: fcgi_process
      Src: /src/haproxy/src/mux_fcgi.c:3233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3234
      start: 3228
    functionDepth: 10
    functionLinenumber: 3228
    functionLinenumberEnd: 3234
    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: 3258
      start: 3237
    functionDepth: 0
    functionLinenumber: 3237
    functionLinenumberEnd: 3258
    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:3263,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_fcgi.c:3274,1
    - Dst: fcgi_dump_fcgi_strm_info
      Src: /src/haproxy/src/mux_fcgi.c:3277,1
    - Dst: fcgi_dump_fcgi_conn_info
      Src: /src/haproxy/src/mux_fcgi.c:3280,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:3283,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_fcgi.c:3285,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: 3295
      start: 3260
    functionDepth: 2
    functionLinenumber: 3260
    functionLinenumberEnd: 3295
    functionName: fcgi_sctl
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - get_trash_chunk
    - chunk_appendf
    - fcgi_dump_fcgi_strm_info
    - fcgi_dump_fcgi_conn_info
    - tevt_evts2str
    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:3306,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3308,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_fcgi.c:3311,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3317,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3323,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3324,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_fcgi.c:3332,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_fcgi.c:3334,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_fcgi.c:3336,1
    - Dst: fcgi_conn_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:3338,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_fcgi.c:3342,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3346,1
    - Dst: fcgi_wake_some_streams
      Src: /src/haproxy/src/mux_fcgi.c:3352,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_fcgi.c:3354,1
    - Dst: fcgi_conn_send_aborts
      Src: /src/haproxy/src/mux_fcgi.c:3361,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_fcgi.c:3364,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_fcgi.c:3365,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_fcgi.c:3369,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:3369,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_fcgi.c:3369,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3370,1
    - Dst: struct fcgi_conn*::conn::xprt::snd_buf
      Src: /src/haproxy/src/mux_fcgi.c:3371,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3372,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:3375,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3376,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_fcgi.c:3378,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_fcgi.c:3384,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3391,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3392,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3394,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3396
      start: 3303
    functionDepth: 8
    functionLinenumber: 3303
    functionLinenumberEnd: 3396
    functionName: fcgi_timeout_task
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - offer_buffers
    - task_destroy
    - HA_SPIN_LOCK
    - session_detach_idle_conn
    - eb_is_empty
    - b_free
    - TRACE_LEAVE
    - tick_is_expired
    - b_data
    - conn_xprt_ready
    - HA_SPIN_UNLOCK
    - fcgi_conn_report_term_evt
    - struct fcgi_conn*::conn::xprt::snd_buf
    - br_head
    - fcgi_conn_send_aborts
    - br_del_head
    - fcgi_release
    - b_size
    - br_data
    - conn_delete_from_tree
    - TRACE_ENTER
    - b_del
    - fcgi_wake_some_streams
    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:3409,1
    - Dst: h1m_state_str
      Src: /src/haproxy/src/mux_fcgi.c:3414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - out
    - es
    argTypes:
    - struct buffer*
    - struct error_snapshot*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3416
      start: 3407
    functionDepth: 1
    functionLinenumber: 3407
    functionLinenumberEnd: 3416
    functionName: fcgi_show_error_snapshot
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - h1m_state_str
    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:3433,1
    - Dst: sc_strm
      Src: /src/haproxy/src/mux_fcgi.c:3433,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3433,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/mux_fcgi.c:3435,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3435,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/mux_fcgi.c:3437,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3437,1
    - Dst: proxy_capture_error
      Src: /src/haproxy/src/mux_fcgi.c:3450,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: 3453
      start: 3425
    functionDepth: 1
    functionLinenumber: 3425
    functionLinenumberEnd: 3453
    functionName: fcgi_strm_capture_bad_message
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - proxy_capture_error
    - fcgi_strm_sc
    - sc_strm
    - __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:3460,1
    - Dst: h1_parse_msg_hdrs
      Src: /src/haproxy/src/mux_fcgi.c:3461,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3463,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3465,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3466,1
    - Dst: fcgi_strm_capture_bad_message
      Src: /src/haproxy/src/mux_fcgi.c:3467,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3480,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3481,1
    - Dst: fcgi_strm_capture_bad_message
      Src: /src/haproxy/src/mux_fcgi.c:3482,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3489,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: 3492
      start: 3455
    functionDepth: 2
    functionLinenumber: 3455
    functionLinenumberEnd: 3492
    functionName: fcgi_strm_parse_headers
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - h1_parse_msg_hdrs
    - fcgi_strm_capture_bad_message
    - fcgi_strm_error
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_LEAVE
    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:3499,1
    - Dst: h1_parse_msg_data
      Src: /src/haproxy/src/mux_fcgi.c:3500,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3502,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3504,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3505,1
    - Dst: fcgi_strm_capture_bad_message
      Src: /src/haproxy/src/mux_fcgi.c:3506,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3512,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: 3514
      start: 3494
    functionDepth: 2
    functionLinenumber: 3494
    functionLinenumberEnd: 3514
    functionName: fcgi_strm_parse_data
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - fcgi_strm_capture_bad_message
    - fcgi_strm_error
    - TRACE_ENTER
    - TRACE_ERROR
    - h1_parse_msg_data
    - TRACE_LEAVE
    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:3521,1
    - Dst: h1_parse_msg_tlrs
      Src: /src/haproxy/src/mux_fcgi.c:3522,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3524,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3526,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3527,1
    - Dst: fcgi_strm_capture_bad_message
      Src: /src/haproxy/src/mux_fcgi.c:3528,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3535,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: 3537
      start: 3516
    functionDepth: 2
    functionLinenumber: 3516
    functionLinenumberEnd: 3537
    functionName: fcgi_strm_parse_trailers
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - fcgi_strm_capture_bad_message
    - fcgi_strm_error
    - TRACE_ENTER
    - TRACE_ERROR
    - h1_parse_msg_tlrs
    - TRACE_LEAVE
    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:3548,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3549,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_fcgi.c:3556,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3559,1
    - Dst: fcgi_strm_parse_headers
      Src: /src/haproxy/src/mux_fcgi.c:3560,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:3564,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:3567,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/mux_fcgi.c:3572,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3577,1
    - Dst: fcgi_strm_parse_data
      Src: /src/haproxy/src/mux_fcgi.c:3578,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3581,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3582,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3583,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/mux_fcgi.c:3583,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:3587,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3593,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3596,1
    - Dst: fcgi_strm_parse_trailers
      Src: /src/haproxy/src/mux_fcgi.c:3597,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3601,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:3604,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:3605,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:3607,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3608,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_fcgi.c:3614,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:3615,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/mux_fcgi.c:3619,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_fcgi.c:3623,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_fcgi.c:3624,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3625,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_fcgi.c:3629,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_fcgi.c:3633,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3635,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: 3637
      start: 3539
    functionDepth: 3
    functionLinenumber: 3539
    functionLinenumberEnd: 3637
    functionName: fcgi_strm_parse_response
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - htx_get_blk_ptr
    - htx_from_buf
    - htx_add_endof
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - TRACE_USER
    - fcgi_strm_error
    - fcgi_strm_parse_trailers
    - TRACE_PROTO
    - fcgi_strm_parse_data
    - htx_is_empty
    - b_reset
    - TRACE_ENTER
    - TRACE_ERROR
    - b_del
    - htx_used_space
    - htx_to_buf
    - fcgi_strm_parse_headers
    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:3648,1
    - Dst: fcgi_stconn_new
      Src: /src/haproxy/src/mux_fcgi.c:3649,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_fcgi.c:3654,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_fcgi.c:3655,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3657,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3661,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: 3663
      start: 3643
    functionDepth: 6
    functionLinenumber: 3643
    functionLinenumberEnd: 3663
    functionName: fcgi_attach
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_AND
    - xprt_set_used
    - TRACE_ENTER
    - fcgi_stconn_new
    - TRACE_LEAVE
    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:3676,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:3678,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3679,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3680,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:3681,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3684
      start: 3670
    functionDepth: 1
    functionLinenumber: 3670
    functionLinenumberEnd: 3684
    functionName: fcgi_get_first_sc
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_sc
    - eb32_next
    - container_of
    - eb32_first
    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:3693,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3694,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:3695,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3698
      start: 3689
    functionDepth: 4
    functionLinenumber: 3689
    functionLinenumberEnd: 3698
    functionName: fcgi_destroy
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_release
    - eb_is_empty
    - BUG_ON
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void fcgi_destroy(void *ctx)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3709,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3712,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3740,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:3747,1
    - Dst: fcgi_strm_destroy
      Src: /src/haproxy/src/mux_fcgi.c:3750,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_fcgi.c:3756,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3759,1
    - Dst: struct fcgi_conn*::conn::mux::destroy
      Src: /src/haproxy/src/mux_fcgi.c:3762,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3763,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_fcgi.c:3770,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_fcgi.c:3771,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_fcgi.c:3774,1
    - Dst: struct fcgi_conn*::conn::mux::destroy
      Src: /src/haproxy/src/mux_fcgi.c:3775,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3776,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3784,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:3789,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/mux_fcgi.c:3794,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_fcgi.c:3801,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_fcgi.c:3802,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_fcgi.c:3804,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_fcgi.c:3804,1
    - Dst: struct fcgi_conn*::conn::mux::destroy
      Src: /src/haproxy/src/mux_fcgi.c:3806,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3807,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3814,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/mux_fcgi.c:3817,1
    - Dst: fcgi_avail_streams
      Src: /src/haproxy/src/mux_fcgi.c:3818,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_fcgi.c:3818,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:3819,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/mux_fcgi.c:3820,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_fcgi.c:3820,1
    - Dst: fcgi_conn_is_dead
      Src: /src/haproxy/src/mux_fcgi.c:3828,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3830,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3831,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_fcgi.c:3834,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_fcgi.c:3835,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3836,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:3839,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3840
      start: 3703
    functionDepth: 5
    functionLinenumber: 3703
    functionLinenumberEnd: 3840
    functionName: fcgi_detach
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - session_add_conn
    - eb_is_empty
    - LIST_INLIST
    - TRACE_LEAVE
    - fcgi_avail_streams
    - ceb_intree
    - fcgi_strm_destroy
    - session_unown_conn
    - struct fcgi_conn*::conn::mux::destroy
    - xprt_set_idle
    - HA_ATOMIC_OR
    - fcgi_conn_is_dead
    - __objt_server
    - fcgi_release
    - tick_add
    - srv_add_to_avail_list
    - objt_server
    - TRACE_ENTER
    - fcgi_conn_restart_reading
    - task_queue
    - session_check_idle_conn
    - srv_add_to_idle_list
    linkageType: ''
    returnType: void
    signature: void fcgi_detach(struct sedesc *sd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3848,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:3857,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3859,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3863,1
    - Dst: fcgi_strm_send_abort
      Src: /src/haproxy/src/mux_fcgi.c:3865,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:3869,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:3872,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3875,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:3884,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_fcgi.c:3886,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3890,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3892
      start: 3844
    functionDepth: 4
    functionLinenumber: 3844
    functionLinenumberEnd: 3892
    functionName: fcgi_do_shutr
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_send_abort
    - tasklet_wakeup
    - se_fl_test
    - fcgi_strm_close
    - TRACE_STATE
    - TRACE_ENTER
    - LIST_APPEND
    - LIST_INLIST
    - TRACE_LEAVE
    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:3899,1
    - Dst: fcgi_strm_send_abort
      Src: /src/haproxy/src/mux_fcgi.c:3906,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:3910,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:3918,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:3920,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:3924,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:3928,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3931,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:3940,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_fcgi.c:3942,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3946,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 36
    argCount: 1
    argNames:
    - fstrm
    argTypes:
    - struct fcgi_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3948
      start: 3895
    functionDepth: 4
    functionLinenumber: 3895
    functionLinenumberEnd: 3948
    functionName: fcgi_do_shutw
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_strm_send_abort
    - tasklet_wakeup
    - se_fl_test
    - TRACE_STATE
    - fcgi_strm_close
    - TRACE_ENTER
    - LIST_APPEND
    - LIST_INLIST
    - TRACE_LEAVE
    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:3959,1
    - Dst: fcgi_do_shutw
      Src: /src/haproxy/src/mux_fcgi.c:3967,1
    - Dst: fcgi_do_shutr
      Src: /src/haproxy/src/mux_fcgi.c:3970,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:3974,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:3976,1
    - Dst: fcgi_strm_destroy
      Src: /src/haproxy/src/mux_fcgi.c:3977,1
    - Dst: fcgi_conn_is_dead
      Src: /src/haproxy/src/mux_fcgi.c:3978,1
    - Dst: fcgi_release
      Src: /src/haproxy/src/mux_fcgi.c:3979,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3983,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3985
      start: 3954
    functionDepth: 5
    functionLinenumber: 3954
    functionLinenumberEnd: 3985
    functionName: fcgi_deferred_shut
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - fcgi_do_shutr
    - fcgi_do_shutw
    - fcgi_conn_is_dead
    - fcgi_strm_destroy
    - LIST_DEL_INIT
    - TRACE_ENTER
    - fcgi_strm_sc
    - fcgi_release
    - TRACE_LEAVE
    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:3989,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:3991,1
    - Dst: fcgi_do_shutw
      Src: /src/haproxy/src/mux_fcgi.c:3993,1
    - Dst: fcgi_do_shutr
      Src: /src/haproxy/src/mux_fcgi.c:3995,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:3996,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: 3997
      start: 3987
    functionDepth: 5
    functionLinenumber: 3987
    functionLinenumberEnd: 3997
    functionName: fcgi_shut
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - fcgi_do_shutr
    - fcgi_do_shutw
    - TRACE_ENTER
    - TRACE_LEAVE
    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:4006,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:4009,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:4010,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4016,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4019,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_fcgi.c:4020,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_fcgi.c:4021,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: 4024
      start: 4004
    functionDepth: 1
    functionLinenumber: 4004
    functionLinenumberEnd: 4024
    functionName: fcgi_subscribe
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - BUG_ON
    - LIST_APPEND
    - 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:4032,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:4035,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_fcgi.c:4036,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4043,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4046,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:4049,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: 4052
      start: 4030
    functionDepth: 1
    functionLinenumber: 4030
    functionLinenumberEnd: 4052
    functionName: fcgi_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - 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:4068,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:4072,1
    - Dst: fcgi_strm_parse_response
      Src: /src/haproxy/src/mux_fcgi.c:4075,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:4077,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4079,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4085,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:4086,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_fcgi.c:4089,1
    - Dst: fcgi_strm_propagate_term_flags
      Src: /src/haproxy/src/mux_fcgi.c:4090,1
    - Dst: fcgi_release_buf
      Src: /src/haproxy/src/mux_fcgi.c:4091,1
    - Dst: fcgi_conn_restart_reading
      Src: /src/haproxy/src/mux_fcgi.c:4097,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:4100,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: 4102
      start: 4066
    functionDepth: 4
    functionLinenumber: 4066
    functionLinenumberEnd: 4102
    functionName: fcgi_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - se_fl_set
    - b_data
    - fcgi_strm_parse_response
    - TRACE_STATE
    - fcgi_release_buf
    - TRACE_ENTER
    - fcgi_conn_restart_reading
    - fcgi_strm_propagate_term_flags
    - TRACE_LEAVE
    - se_fl_clr
    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:4111,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_fcgi.c:4120,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_fcgi.c:4126,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:4127,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_fcgi.c:4133,1
    - Dst: htxbuf
      Src: /src/haproxy/src/mux_fcgi.c:4137,1
    - Dst: fcgi_conn_get_next_sid
      Src: /src/haproxy/src/mux_fcgi.c:4139,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:4142,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_fcgi.c:4143,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4144,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_fcgi.c:4148,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_fcgi.c:4152,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/mux_fcgi.c:4158,1
    - Dst: fcgi_strm_error
      Src: /src/haproxy/src/mux_fcgi.c:4161,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4167,1
    - Dst: fcgi_strm_send_begin_request
      Src: /src/haproxy/src/mux_fcgi.c:4168,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/mux_fcgi.c:4176,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_fcgi.c:4177,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/mux_fcgi.c:4177,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/mux_fcgi.c:4178,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/mux_fcgi.c:4180,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/mux_fcgi.c:4183,1
    - Dst: fcgi_strm_send_params
      Src: /src/haproxy/src/mux_fcgi.c:4184,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4194,1
    - Dst: fcgi_strm_send_empty_params
      Src: /src/haproxy/src/mux_fcgi.c:4195,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_fcgi.c:4199,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4200,1
    - Dst: fcgi_strm_send_empty_stdin
      Src: /src/haproxy/src/mux_fcgi.c:4201,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4208,1
    - Dst: fcgi_strm_send_stdin
      Src: /src/haproxy/src/mux_fcgi.c:4209,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/mux_fcgi.c:4211,1
    - Dst: htx_is_unique_blk
      Src: /src/haproxy/src/mux_fcgi.c:4220,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_fcgi.c:4221,1
    - Dst: fcgi_strm_send_empty_stdin
      Src: /src/haproxy/src/mux_fcgi.c:4222,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/mux_fcgi.c:4230,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4247,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_fcgi.c:4248,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_fcgi.c:4249,1
    - Dst: fcgi_strm_send_abort
      Src: /src/haproxy/src/mux_fcgi.c:4250,1
    - Dst: fcgi_strm_close
      Src: /src/haproxy/src/mux_fcgi.c:4251,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/mux_fcgi.c:4255,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_fcgi.c:4259,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_fcgi.c:4260,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_fcgi.c:4265,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_fcgi.c:4268,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: 4270
      start: 4109
    functionDepth: 6
    functionLinenumber: 4109
    functionLinenumberEnd: 4270
    functionName: fcgi_snd_buf
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - fcgi_strm_send_empty_stdin
    - http_get_stline
    - eb32_delete
    - ASSUME_NONNULL
    - htx_from_buf
    - fcgi_strm_send_stdin
    - TRACE_LEAVE
    - htx_get_head_blk
    - htx_get_blk_type
    - TRACE_USER
    - LIST_ISEMPTY
    - se_report_term_evt
    - htxbuf
    - tasklet_wakeup
    - fcgi_conn_get_next_sid
    - se_fl_set
    - fcgi_strm_error
    - LIST_DEL_INIT
    - htx_is_unique_blk
    - htx_remove_blk
    - TRACE_PROTO
    - se_fl_set_error
    - eb32_insert
    - htx_is_empty
    - fcgi_strm_send_params
    - htx_get_blksz
    - fcgi_strm_send_abort
    - fcgi_strm_send_empty_params
    - TRACE_STATE
    - fcgi_strm_close
    - TRACE_ENTER
    - fcgi_strm_send_begin_request
    - htx_to_buf
    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:4284,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4286,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:4286,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:4287,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:4287,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4288,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4291,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4293,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_fcgi.c:4293,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_fcgi.c:4293,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_fcgi.c:4294,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4295,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4296,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4296,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_fcgi.c:4296,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4296,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4299,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4301,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4303,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4304,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/mux_fcgi.c:4309,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4310,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: 4313
      start: 4277
    functionDepth: 6
    functionLinenumber: 4277
    functionLinenumberEnd: 4313
    functionName: fcgi_dump_fcgi_strm_info
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - b_orig
    - resolve_sym_name
    - b_data
    - chunk_appendf
    - tevt_evts2str
    - se_fl_test
    - fcgi_strm_sc
    - b_size
    - b_head_ofs
    - se_fl_get
    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:4333,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_fcgi.c:4337,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:4339,1
    - Dst: fcgi_strm_sc
      Src: /src/haproxy/src/mux_fcgi.c:4341,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_fcgi.c:4343,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_fcgi.c:4346,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_fcgi.c:4347,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4348,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_fcgi.c:4351,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4354,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4356,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4358,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:4358,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:4359,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:4359,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4363,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4365,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_fcgi.c:4366,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_fcgi.c:4366,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_fcgi.c:4366,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4367,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:4367,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:4368,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:4368,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_fcgi.c:4369,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_fcgi.c:4369,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_fcgi.c:4370,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_fcgi.c:4370,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4372,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4374,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_fcgi.c:4375,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_fcgi.c:4376,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_fcgi.c:4376,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_fcgi.c:4376,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: 4380
      start: 4320
    functionDepth: 2
    functionLinenumber: 4320
    functionLinenumberEnd: 4380
    functionName: fcgi_dump_fcgi_conn_info
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 1
    functionsReached:
    - br_head_idx
    - br_tail
    - tick_is_expired
    - b_data
    - chunk_appendf
    - container_of
    - eb32_next
    - human_time
    - fcgi_strm_sc
    - b_head_ofs
    - tevt_evts2str
    - br_tail_idx
    - br_head
    - br_size
    - b_size
    - b_orig
    - list_for_each_entry
    - eb32_first
    - TICKS_TO_MS
    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:4395,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_fcgi.c:4397,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_fcgi.c:4399,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4400,1
    - Dst: fcgi_dump_fcgi_strm_info
      Src: /src/haproxy/src/mux_fcgi.c:4401,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4405
      start: 4385
    functionDepth: 7
    functionLinenumber: 4385
    functionLinenumberEnd: 4405
    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:4421,1
    - Dst: fcgi_dump_fcgi_strm_info
      Src: /src/haproxy/src/mux_fcgi.c:4422,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4424,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_fcgi.c:4425,1
    - Dst: fcgi_dump_fcgi_conn_info
      Src: /src/haproxy/src/mux_fcgi.c:4426,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4428
      start: 4413
    functionDepth: 7
    functionLinenumber: 4413
    functionLinenumberEnd: 4428
    functionName: fcgi_show_sd
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - fcgi_dump_fcgi_strm_info
    - 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:4449,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_fcgi.c:4456,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_fcgi.c:4457,1
    - Dst: fd_takeover
      Src: /src/haproxy/src/mux_fcgi.c:4462,1
    - Dst: struct connection*::xprt::takeover
      Src: /src/haproxy/src/mux_fcgi.c:4465,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_fcgi.c:4472,1
    - Dst: struct fcgi_conn*::conn::xprt::unsubscribe
      Src: /src/haproxy/src/mux_fcgi.c:4477,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/mux_fcgi.c:4487,1
    - Dst: task_kill
      Src: /src/haproxy/src/mux_fcgi.c:4488,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_fcgi.c:4502,1
    - Dst: struct fcgi_conn*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_fcgi.c:4508,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_fcgi.c:4513,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_fcgi.c:4517,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_fcgi.c:4518,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - conn
    - orig_tid
    - release
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4520
      start: 4434
    functionDepth: 2
    functionLinenumber: 4434
    functionLinenumberEnd: 4520
    functionName: fcgi_takeover
    functionSourceFile: /src/haproxy/src/mux_fcgi.c
    functionUses: 0
    functionsReached:
    - struct fcgi_conn*::conn::xprt::subscribe
    - struct connection*::xprt::takeover
    - tasklet_free
    - tasklet_new
    - struct fcgi_conn*::conn::xprt::unsubscribe
    - fd_takeover
    - tasklet_wakeup_on
    - __task_free
    - task_new_here
    - task_kill
    - LIST_INLIST
    - __ha_barrier_store
    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: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    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: 19
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/quic_cli.c:58,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/quic_cli.c:61,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/quic_cli.c:64,1
    - Dst: strcmp
      Src: /src/haproxy/src/quic_cli.c:71,1
    - Dst: strcmp
      Src: /src/haproxy/src/quic_cli.c:75,1
    - Dst: strcmp
      Src: /src/haproxy/src/quic_cli.c:80,1
    - Dst: strcmp
      Src: /src/haproxy/src/quic_cli.c:85,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/quic_cli.c:86,1
    - Dst: cli_err
      Src: /src/haproxy/src/quic_cli.c:99,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:102,1
    - Dst: istsplit
      Src: /src/haproxy/src/quic_cli.c:103,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:106,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:106,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:109,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:109,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:112,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:112,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:115,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:115,1
    - Dst: isteq
      Src: /src/haproxy/src/quic_cli.c:118,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:118,1
    - Dst: cli_err
      Src: /src/haproxy/src/quic_cli.c:127,1
    - Dst: istsplit
      Src: /src/haproxy/src/quic_cli.c:134,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:147,1
    - Dst: istmatchi
      Src: /src/haproxy/src/quic_cli.c:149,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:149,1
    - Dst: strtol
      Src: /src/haproxy/src/quic_cli.c:151,1
    - Dst: cli_err
      Src: /src/haproxy/src/quic_cli.c:153,1
    - Dst: istmatch
      Src: /src/haproxy/src/quic_cli.c:162,1
    - Dst: ist
      Src: /src/haproxy/src/quic_cli.c:162,1
    - Dst: cli_err
      Src: /src/haproxy/src/quic_cli.c:166,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_cli.c:173,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 78
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 176
    functionName: cli_parse_show_quic
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_FETCH_ADD
    - istmatch
    - isteq
    - strcmp
    - chunk_printf
    - istmatchi
    - cli_err
    - istsplit
    - LIST_INIT
    - cli_has_level
    - applet_reserve_svcctx
    - strtol
    - ist
    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:186,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_cli.c:188,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:190,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:194,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:196,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:198,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:200,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:203,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_cli.c:211,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_cli.c:212,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:213,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_cli.c:215,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_cli.c:216,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:217,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:223,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:225,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:227,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:229,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: 230
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 230
    functionName: dump_quic_oneline
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - chunk_appendf
    - addr_to_str
    - port_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:240,1
    - Dst: eb_entry
      Src: /src/haproxy/src/quic_cli.c:242,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/quic_cli.c:246,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_cli.c:247,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:251,1
    - Dst: human_time
      Src: /src/haproxy/src/quic_cli.c:252,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/quic_cli.c:252,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/quic_cli.c:252,1
    - Dst: bdata_ctr_print
      Src: /src/haproxy/src/quic_cli.c:254,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:256,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:257,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:258,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:261,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:262,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:263,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:266,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_cli.c:267,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: 269
      start: 233
    functionDepth: 2
    functionLinenumber: 233
    functionLinenumberEnd: 269
    functionName: dump_quic_stream
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_uni
    - eb64_next
    - chunk_appendf
    - human_time
    - eb64_first
    - bdata_ctr_print
    - ns_to_sec
    - eb_entry
    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:281,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:283,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:285,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:287,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:289,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:291,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:293,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:296,1
    - Dst: quic_transport_params_dump
      Src: /src/haproxy/src/quic_cli.c:297,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:298,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:299,1
    - Dst: quic_transport_params_dump
      Src: /src/haproxy/src/quic_cli.c:300,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:301,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:306,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:308,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:310,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:312,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:315,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:317,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:319,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:323,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/quic_cli.c:324,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_cli.c:324,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:327,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:331,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_cli.c:334,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_cli.c:335,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:336,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/quic_cli.c:338,1
    - Dst: port_to_str
      Src: /src/haproxy/src/quic_cli.c:339,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:340,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:343,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:350,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:357,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:364,1
    - Dst: struct quic_conn*::path::cc::algo::state_cli
      Src: /src/haproxy/src/quic_cli.c:372,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:374,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:385,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:389,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:393,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:397,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:401,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:405,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:409,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:413,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:417,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:421,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:425,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:429,1
    - Dst: qcc_show_quic
      Src: /src/haproxy/src/quic_cli.c:432,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:434,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: 435
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 435
    functionName: dump_quic_full
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - addr_to_str
    - struct quic_conn*::path::cc::algo::state_cli
    - quic_transport_params_dump
    - chunk_appendf
    - qcc_show_quic
    - tick_remain
    - port_to_str
    - TICKS_TO_MS
    linkageType: ''
    returnType: void
    signature: void dump_quic_full(struct show_quic_ctx *ctx, struct quic_conn *qc)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: thread_isolate
      Src: /src/haproxy/src/quic_cli.c:442,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/quic_cli.c:447,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_cli.c:449,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_cli.c:451,1
    - Dst: cli_show_quic_format
      Src: /src/haproxy/src/quic_cli.c:458,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/quic_cli.c:459,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/quic_cli.c:463,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/quic_cli.c:494,1
    - Dst: cli_show_quic_format
      Src: /src/haproxy/src/quic_cli.c:512,1
    - Dst: dump_quic_full
      Src: /src/haproxy/src/quic_cli.c:514,1
    - Dst: dump_quic_oneline
      Src: /src/haproxy/src/quic_cli.c:517,1
    - Dst: dump_quic_stream
      Src: /src/haproxy/src/quic_cli.c:521,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_cli.c:526,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/quic_cli.c:529,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_cli.c:531,1
    - Dst: thread_release
      Src: /src/haproxy/src/quic_cli.c:543,1
    - Dst: thread_release
      Src: /src/haproxy/src/quic_cli.c:547,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 437
    functionDepth: 3
    functionLinenumber: 437
    functionLinenumberEnd: 549
    functionName: cli_io_handler_dump_quic
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - cli_show_quic_format
    - dump_quic_oneline
    - thread_release
    - thread_isolate
    - dump_quic_stream
    - chunk_appendf
    - LIST_DEL_INIT
    - LIST_APPEND
    - applet_putchk
    - ABORT_NOW
    - dump_quic_full
    - LIST_ISEMPTY
    - LIST_ELEM
    - chunk_reset
    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:556,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_cli.c:557,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_cli.c:558,1
    - Dst: thread_release
      Src: /src/haproxy/src/quic_cli.c:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 561
    functionName: cli_release_show_quic
    functionSourceFile: /src/haproxy/src/quic_cli.c
    functionUses: 0
    functionsReached:
    - thread_release
    - LIST_ISEMPTY
    - LIST_DEL_INIT
    - thread_isolate
    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:575,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_cli.c:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 578
    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:28,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:28,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:30,1
    - Dst: b_size
      Src: /src/haproxy/src/quic_stream.c:35,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:39,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:43,1
    - Dst: bdata_ctr_del
      Src: /src/haproxy/src/quic_stream.c:46,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:46,1
    - Dst: bdata_ctr_bdec
      Src: /src/haproxy/src/quic_stream.c:47,1
    - Dst: b_free
      Src: /src/haproxy/src/quic_stream.c:48,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/quic_stream.c:49,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:51,1
    - Dst: struct qc_stream_desc*::notify_room
      Src: /src/haproxy/src/quic_stream.c:56,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - stream
    - stream_buf
    argTypes:
    - struct qc_stream_desc*
    - struct qc_stream_buf**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 57
    functionName: qc_stream_buf_free
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - b_free
    - offer_buffers
    - pool_free
    - b_data
    - eb64_delete
    - bdata_ctr_bdec
    - BUG_ON
    - struct qc_stream_desc*::notify_room
    - eb_is_empty
    - b_size
    - bdata_ctr_del
    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:70,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_stream.c:79,1
    - Dst: bdata_ctr_init
      Src: /src/haproxy/src/quic_stream.c:86,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: 96
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 96
    functionName: qc_stream_desc_new
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 1
    functionsReached:
    - pool_alloc
    - eb64_insert
    - bdata_ctr_init
    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:113,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_stream.c:123,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:123,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:126,1
    - Dst: b_sub
      Src: /src/haproxy/src/quic_stream.c:130,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:136,1
    - Dst: qc_stream_buf_free
      Src: /src/haproxy/src/quic_stream.c:137,1
    - Dst: qc_stream_buf_release
      Src: /src/haproxy/src/quic_stream.c:139,1
    - Dst: qc_stream_desc_done
      Src: /src/haproxy/src/quic_stream.c:142,1
    - Dst: qc_stream_desc_free
      Src: /src/haproxy/src/quic_stream.c:144,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: 146
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 146
    functionName: qc_stream_desc_release
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 1
    functionsReached:
    - b_sub
    - b_data
    - qc_stream_buf_free
    - BUG_ON
    - qc_stream_desc_done
    - MAX
    - qc_stream_buf_release
    - qc_stream_desc_free
    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: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    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:168,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:170,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/src/quic_stream.c:176,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:178,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_stream.c:204,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:205,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:206,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:209,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_stream.c:225,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_stream.c:235,1
    - Dst: qc_stream_buf_is_released
      Src: /src/haproxy/src/quic_stream.c:239,1
    - Dst: struct qc_stream_desc*::notify_room
      Src: /src/haproxy/src/quic_stream.c:240,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: 244
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 244
    functionName: qc_stream_buf_store_ack
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - eb64_lookup_ge
    - eb64_next
    - pool_free
    - eb64_delete
    - eb64_insert
    - eb64_lookup_le
    - eb64_entry
    - pool_alloc
    - qc_stream_buf_is_released
    - struct qc_stream_desc*::notify_room
    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:261,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_stream.c:265,1
    - Dst: bdata_ctr_del
      Src: /src/haproxy/src/quic_stream.c:267,1
    - Dst: qc_stream_buf_is_released
      Src: /src/haproxy/src/quic_stream.c:270,1
    - Dst: struct qc_stream_desc*::notify_room
      Src: /src/haproxy/src/quic_stream.c:274,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:287,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:287,1
    - Dst: qc_stream_buf_free
      Src: /src/haproxy/src/quic_stream.c:288,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:290,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:291,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:291,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: 296
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 296
    functionName: qc_stream_buf_ack
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - b_data
    - qc_stream_buf_free
    - BUG_ON
    - eb64_entry
    - eb64_first
    - qc_stream_buf_is_released
    - struct qc_stream_desc*::notify_room
    - b_del
    - eb_is_empty
    - bdata_ctr_del
    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:308,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:310,1
    - Dst: MAX
      Src: /src/haproxy/src/quic_stream.c:316,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:321,1
    - Dst: qc_stream_buf_ack
      Src: /src/haproxy/src/quic_stream.c:322,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:324,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:326,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: 328
      start: 302
    functionDepth: 3
    functionLinenumber: 302
    functionLinenumberEnd: 328
    functionName: qc_stream_buf_consume
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - pool_free
    - eb64_delete
    - eb64_first
    - eb64_entry
    - qc_stream_buf_ack
    - MAX
    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:346,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:353,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/src/quic_stream.c:359,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:360,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:361,1
    - Dst: qc_stream_buf_store_ack
      Src: /src/haproxy/src/quic_stream.c:362,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:366,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:366,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:369,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:369,1
    - Dst: qc_stream_buf_ack
      Src: /src/haproxy/src/quic_stream.c:370,1
    - Dst: qc_stream_buf_consume
      Src: /src/haproxy/src/quic_stream.c:374,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: 378
      start: 338
    functionDepth: 4
    functionLinenumber: 338
    functionLinenumberEnd: 378
    functionName: qc_stream_desc_ack
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - qc_stream_buf_consume
    - eb64_lookup_le
    - BUG_ON
    - eb64_entry
    - qc_stream_buf_store_ack
    - eb64_first
    - qc_stream_buf_ack
    - eb_is_empty
    linkageType: ''
    returnType: int
    signature: "int qc_stream_desc_ack(struct qc_stream_desc *stream,\n                       uint64_t
      offset, uint64_t len, int fin)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:391,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:394,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:395,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:396,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:402,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:402,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_stream.c:405,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_stream.c:408,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:409,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_stream.c:411,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:412,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:416,1
    - Dst: b_free
      Src: /src/haproxy/src/quic_stream.c:418,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:420,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:421,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/quic_stream.c:426,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:429,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:430,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - stream
    - closing
    argTypes:
    - struct qc_stream_desc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 431
    functionName: qc_stream_desc_free
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 1
    functionsReached:
    - offer_buffers
    - pool_free
    - b_data
    - eb64_delete
    - eb64_first
    - BUG_ON
    - eb64_entry
    - eb_is_empty
    - b_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: 440
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 440
    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:452,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_stream.c:455,1
    - Dst: b_alloc
      Src: /src/haproxy/src/quic_stream.c:466,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:467,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_stream.c:475,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:476,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_stream.c:482,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_stream.c:485,1
    - Dst: bdata_ctr_binc
      Src: /src/haproxy/src/quic_stream.c:486,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 3
    argNames:
    - stream
    - offset
    - small
    argTypes:
    - struct qc_stream_desc*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 489
    functionName: qc_stream_buf_alloc
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - pool_free
    - eb64_insert
    - BUG_ON
    - pool_alloc
    - bdata_ctr_binc
    - b_alloc
    - b_make
    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:499,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_stream.c:502,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_stream.c:502,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:505,1
    - Dst: b_alloc
      Src: /src/haproxy/src/quic_stream.c:509,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_stream.c:510,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_stream.c:511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 517
    functionName: qc_stream_buf_realloc
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - pool_free
    - b_data
    - eb64_delete
    - BUG_ON
    - b_alloc
    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:527,1
    - Dst: b_room
      Src: /src/haproxy/src/quic_stream.c:529,1
    - Dst: struct qc_stream_desc*::notify_room
      Src: /src/haproxy/src/quic_stream.c:537,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - stream
    argTypes:
    - struct qc_stream_desc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 538
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_stream.c:543,1
    - Dst: create_pool
      Src: /src/haproxy/src/quic_stream.c:548,1
    - Dst: ha_warning
      Src: /src/haproxy/src/quic_stream.c:551,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 556
    functionName: create_sbuf_pool
    functionSourceFile: /src/haproxy/src/quic_stream.c
    functionUses: 0
    functionsReached:
    - create_pool
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int create_sbuf_pool(void)
  - 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:
    - NODEK
    - _ceb_next_unique
    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:
    - NODEK
    - _ceb_prev_unique
    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:
    - NODEK
    - _ceb_prev_dup
    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:
    - NODEK
    - _ceb_prev
    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:
    - NODEK
    - _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: 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:
    - NODEK
    - _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: 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:
    - TO_STR
    - printf
    - ceb_imm_default_dump_tree
    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:
    - HA_RWLOCK_INIT
    - b_make
    - 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:
    - dns_ring_init
    - free
    - malloc
    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
    - varint_bytes
    - appctx_wakeup
    - HA_RWLOCK_WRLOCK
    - b_peek_varint
    - b_data
    - __b_put_varint
    - HA_RWLOCK_WRUNLOCK
    - BUG_ON
    - b_tail
    - b_room
    - b_del
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - b_head
    - b_size
    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:
    - MT_LIST_DELETE
    - HA_ATOMIC_DEC
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - BUG_ON
    - b_peek
    - b_size
    - b_head_ofs
    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:206,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/stats-proxy.c:208,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stats-proxy.c:211,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/stats-proxy.c:215,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:219,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-proxy.c:241,1
    - Dst: COUNTERS_SHARED_LAST
      Src: /src/haproxy/src/stats-proxy.c:250,1
    - Dst: COUNTERS_SHARED_LAST
      Src: /src/haproxy/src/stats-proxy.c:252,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: 259
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 259
    functionName: stcol_hide
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - obj_type
    - __objt_listener
    - __objt_server
    - COUNTERS_SHARED_LAST
    - __objt_proxy
    - BUG_ON
    - ABORT_NOW
    linkageType: ''
    returnType: int
    signature: int stcol_hide(enum stat_idx_px idx, enum obj_type *objt)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-proxy.c:280,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-proxy.c:280,1
    - Dst: stcol_nature
      Src: /src/haproxy/src/stats-proxy.c:282,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:309,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/stats-proxy.c:317,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:325,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:326,1
    - Dst: stcol_hide
      Src: /src/haproxy/src/stats-proxy.c:341,1
    - Dst: mkf_s32
      Src: /src/haproxy/src/stats-proxy.c:343,1
    - Dst: stcol_format
      Src: /src/haproxy/src/stats-proxy.c:350,1
    - Dst: COUNTERS_SHARED_TOTAL_OFFSET
      Src: /src/haproxy/src/stats-proxy.c:355,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:356,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:359,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:363,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-proxy.c:368,1
    - Dst: stcol_format
      Src: /src/haproxy/src/stats-proxy.c:368,1
    - Dst: COUNTERS_SHARED_TOTAL_OFFSET
      Src: /src/haproxy/src/stats-proxy.c:372,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:373,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:376,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stats-proxy.c:376,1
    - Dst: COUNTERS_SHARED_LAST_OFFSET
      Src: /src/haproxy/src/stats-proxy.c:382,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stats-proxy.c:387,1
    - Dst: stcol_format
      Src: /src/haproxy/src/stats-proxy.c:389,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:391,1
    - Dst: mkf_s32
      Src: /src/haproxy/src/stats-proxy.c:394,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:398,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stats-proxy.c:403,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 83
    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: 407
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 407
    functionName: me_generate_field
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - stcol_nature
    - read_freq_ctr
    - mkf_s32
    - __objt_proxy
    - BUG_ON
    - mkf_u32
    - ns_to_sec
    - COUNTERS_SHARED_TOTAL_OFFSET
    - mkf_u64
    - COUNTERS_SHARED_LAST_OFFSET
    - stcol_format
    - stcol_hide
    - ABORT_NOW
    - COUNTERS_SHARED_TOTAL
    - stcol_is_generic
    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:427,1
    - Dst: me_generate_field
      Src: /src/haproxy/src/stats-proxy.c:428,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:435,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:438,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:441,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-proxy.c:441,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:444,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:447,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:450,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:461,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:465,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:468,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:471,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:474,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:477,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:480,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:483,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:486,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:494,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:496,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:499,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: 516
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 516
    functionName: stats_fill_fe_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - mkf_str
    - me_generate_field
    - mkf_u32
    - proxy_mode_str
    - mkf_u64
    - COUNTERS_SHARED_TOTAL
    - stcol_is_generic
    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:525,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:537,1
    - Dst: stats_fill_fe_line
      Src: /src/haproxy/src/stats-proxy.c:539,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:542,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:548,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/stats-proxy.c:553,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/stats-proxy.c:554,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/stats-proxy.c:559,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 2
    argNames:
    - sc
    - px
    argTypes:
    - struct stconn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 523
    functionDepth: 4
    functionLinenumber: 523
    functionLinenumberEnd: 560
    functionName: stats_dump_fe_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - memset
    - list_for_each_entry
    - stats_fill_fe_line
    - stats_dump_one_line
    - stats_px_get_cap
    - EXTRA_COUNTERS_GET
    - __sc_appctx
    - 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:572,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-proxy.c:580,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-proxy.c:586,1
    - Dst: me_generate_field
      Src: /src/haproxy/src/stats-proxy.c:587,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:594,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:597,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:600,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-proxy.c:600,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:603,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:606,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:609,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:612,1
    - Dst: get_li_status
      Src: /src/haproxy/src/stats-proxy.c:612,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:615,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:618,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:621,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:624,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stats-proxy.c:631,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stats-proxy.c:632,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:634,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:634,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:635,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:638,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:638,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:639,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:644,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:647,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:647,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:648,1
    - Dst: strerror
      Src: /src/haproxy/src/stats-proxy.c:648,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:656,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: 672
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 672
    functionName: stats_fill_li_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - get_host_port
    - mkf_str
    - chunk_newstr
    - me_generate_field
    - addr_to_str
    - get_trash_chunk
    - chunk_appendf
    - mkf_u32
    - proxy_mode_str
    - chunk_strcat
    - strerror
    - get_li_status
    - stcol_is_generic
    - chunk_reset
    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:681,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:687,1
    - Dst: stats_fill_li_line
      Src: /src/haproxy/src/stats-proxy.c:689,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:693,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:699,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/stats-proxy.c:704,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/stats-proxy.c:705,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/stats-proxy.c:710,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 3
    argNames:
    - sc
    - px
    - l
    argTypes:
    - struct stconn*
    - struct proxy*
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 679
    functionDepth: 4
    functionLinenumber: 679
    functionLinenumberEnd: 711
    functionName: stats_dump_li_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - memset
    - list_for_each_entry
    - stats_dump_one_line
    - stats_px_get_cap
    - EXTRA_COUNTERS_GET
    - __sc_appctx
    - struct stats_module*::fill_stats
    - stats_fill_li_line
    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: 788
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 788
    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:806,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-proxy.c:814,1
    - Dst: stats_fill_sv_computestate
      Src: /src/haproxy/src/stats-proxy.c:825,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:832,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:832,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-proxy.c:841,1
    - Dst: me_generate_field
      Src: /src/haproxy/src/stats-proxy.c:842,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:849,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:852,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:855,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-proxy.c:855,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:858,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:861,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:864,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:867,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:871,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:874,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:878,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:881,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:884,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:887,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:890,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:893,1
    - Dst: chunk_appendf
      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: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:906,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:909,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:912,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:915,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:918,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:922,1
    - Dst: srv_downtime
      Src: /src/haproxy/src/stats-proxy.c:922,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:926,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:929,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:932,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:935,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:938,1
    - Dst: server_is_draining
      Src: /src/haproxy/src/stats-proxy.c:941,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:942,1
    - Dst: server_throttle_rate
      Src: /src/haproxy/src/stats-proxy.c:942,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:946,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:947,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:948,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:952,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:955,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:961,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:962,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:963,1
    - Dst: get_check_status_info
      Src: /src/haproxy/src/stats-proxy.c:963,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:966,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:972,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:977,1
    - Dst: MAX
      Src: /src/haproxy/src/stats-proxy.c:977,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:981,1
    - Dst: get_check_status_description
      Src: /src/haproxy/src/stats-proxy.c:981,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:985,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:989,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:993,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:997,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1003,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:1004,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:1005,1
    - Dst: get_check_status_info
      Src: /src/haproxy/src/stats-proxy.c:1005,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1008,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1014,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/stats-proxy.c:1018,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1022,1
    - Dst: get_check_status_description
      Src: /src/haproxy/src/stats-proxy.c:1022,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1026,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1030,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1034,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1038,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1041,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1041,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1044,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1044,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1047,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1047,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1050,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1050,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1053,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1056,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1059,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1062,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stats-proxy.c:1066,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1068,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1068,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:1069,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1072,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1072,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:1073,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1078,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1081,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1081,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/stats-proxy.c:1082,1
    - Dst: strerror
      Src: /src/haproxy/src/stats-proxy.c:1082,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1091,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1094,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: 1110
      start: 797
    functionDepth: 3
    functionLinenumber: 797
    functionLinenumberEnd: 1110
    functionName: stats_fill_sv_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - swrate_avg
    - get_trash_chunk
    - mkf_u32
    - strerror
    - get_check_status_info
    - srv_downtime
    - COUNTERS_SHARED_TOTAL
    - chunk_appendf
    - chunk_strcat
    - stcol_is_generic
    - me_generate_field
    - addr_to_str
    - server_is_draining
    - MAX
    - mkf_str
    - chunk_newstr
    - server_throttle_rate
    - get_check_status_description
    - proxy_mode_str
    - stats_fill_sv_computestate
    - mkf_u64
    - chunk_reset
    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:1119,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1125,1
    - Dst: stats_fill_sv_line
      Src: /src/haproxy/src/stats-proxy.c:1127,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1131,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: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/stats-proxy.c:1145,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/stats-proxy.c:1146,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/stats-proxy.c:1151,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - sc
    - px
    - sv
    argTypes:
    - struct stconn*
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1117
    functionDepth: 4
    functionLinenumber: 1117
    functionLinenumberEnd: 1152
    functionName: stats_dump_sv_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - memset
    - list_for_each_entry
    - stats_dump_one_line
    - stats_px_get_cap
    - EXTRA_COUNTERS_GET
    - stats_fill_sv_line
    - __sc_appctx
    - struct stats_module*::fill_stats
    - stats_get_domain
    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:1165,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stats-proxy.c:1172,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stats-proxy.c:1175,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: 1181
      start: 1156
    functionDepth: 1
    functionLinenumber: 1156
    functionLinenumberEnd: 1181
    functionName: stats_fill_be_computesrv
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDUNLOCK
    - srv_currently_usable
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: void
    signature: void stats_fill_be_computesrv(struct proxy *px, int *nbup, int *nbsrv,
      int *totuw)
  - BBCount: 46
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stats-proxy.c:1196,1
    - Dst: stats_fill_be_computesrv
      Src: /src/haproxy/src/stats-proxy.c:1208,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:1214,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/stats-proxy.c:1214,1
    - Dst: stcol_is_generic
      Src: /src/haproxy/src/stats-proxy.c:1223,1
    - Dst: me_generate_field
      Src: /src/haproxy/src/stats-proxy.c:1224,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1231,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1234,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1237,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stats-proxy.c:1237,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1240,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1243,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1246,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1249,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1252,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/stats-proxy.c:1255,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:1256,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stats-proxy.c:1258,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1259,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1263,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1266,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1269,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1272,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1275,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1278,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1282,1
    - Dst: be_downtime
      Src: /src/haproxy/src/stats-proxy.c:1282,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1285,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1288,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1291,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1294,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1297,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1301,1
    - Dst: mkf_str
      Src: /src/haproxy/src/stats-proxy.c:1305,1
    - Dst: backend_lb_algo_str
      Src: /src/haproxy/src/stats-proxy.c:1305,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1308,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1308,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1311,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1311,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1314,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1314,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1317,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/stats-proxy.c:1317,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1320,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1323,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1326,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stats-proxy.c:1329,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 129
    argCount: 5
    argNames:
    - px
    - flags
    - line
    - len
    - index
    argTypes:
    - struct proxy*
    - int
    - struct field*
    - int
    - enum stat_idx_px*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1345
      start: 1190
    functionDepth: 3
    functionLinenumber: 1190
    functionLinenumberEnd: 1345
    functionName: stats_fill_be_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - swrate_avg
    - mkf_str
    - chunk_newstr
    - me_generate_field
    - get_trash_chunk
    - chunk_appendf
    - mkf_u32
    - stats_fill_be_computesrv
    - proxy_mode_str
    - be_downtime
    - COUNTERS_SHARED_TOTAL
    - stcol_is_generic
    - backend_lb_algo_str
    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:1353,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1365,1
    - Dst: stats_fill_be_line
      Src: /src/haproxy/src/stats-proxy.c:1367,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1370,1
    - Dst: stats_get_domain
      Src: /src/haproxy/src/stats-proxy.c:1376,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:1379,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/stats-proxy.c:1384,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/stats-proxy.c:1385,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/stats-proxy.c:1390,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - sc
    - px
    argTypes:
    - struct stconn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1351
    functionDepth: 4
    functionLinenumber: 1351
    functionLinenumberEnd: 1391
    functionName: stats_dump_be_line
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - memset
    - list_for_each_entry
    - stats_dump_one_line
    - stats_px_get_cap
    - EXTRA_COUNTERS_GET
    - __sc_appctx
    - struct stats_module*::fill_stats
    - stats_fill_be_line
    - stats_get_domain
    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:1403,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stats-proxy.c:1413,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-proxy.c:1425,1
    - Dst: memcmp
      Src: /src/haproxy/src/stats-proxy.c:1430,1
    - Dst: strcmp
      Src: /src/haproxy/src/stats-proxy.c:1434,1
    - Dst: stats_scope_ptr
      Src: /src/haproxy/src/stats-proxy.c:1448,1
    - Dst: strnistr
      Src: /src/haproxy/src/stats-proxy.c:1450,1
    - Dst: strlen
      Src: /src/haproxy/src/stats-proxy.c:1450,1
    - Dst: stats_dump_html_px_hdr
      Src: /src/haproxy/src/stats-proxy.c:1464,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1465,1
    - Dst: stats_dump_fe_line
      Src: /src/haproxy/src/stats-proxy.c:1474,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1475,1
    - Dst: stats_is_full
      Src: /src/haproxy/src/stats-proxy.c:1490,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/stats-proxy.c:1493,1
    - Dst: stats_dump_li_line
      Src: /src/haproxy/src/stats-proxy.c:1506,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1507,1
    - Dst: watcher_attach
      Src: /src/haproxy/src/stats-proxy.c:1517,1
    - Dst: watcher_next
      Src: /src/haproxy/src/stats-proxy.c:1525,1
    - Dst: stats_is_full
      Src: /src/haproxy/src/stats-proxy.c:1527,1
    - Dst: watcher_detach
      Src: /src/haproxy/src/stats-proxy.c:1532,1
    - Dst: stats_dump_sv_line
      Src: /src/haproxy/src/stats-proxy.c:1560,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1561,1
    - Dst: stats_dump_be_line
      Src: /src/haproxy/src/stats-proxy.c:1575,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1576,1
    - Dst: stats_dump_html_px_end
      Src: /src/haproxy/src/stats-proxy.c:1589,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/stats-proxy.c:1590,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: 1609
      start: 1400
    functionDepth: 5
    functionLinenumber: 1400
    functionLinenumberEnd: 1609
    functionName: stats_dump_proxy_to_buffer
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 0
    functionsReached:
    - watcher_attach
    - stats_putchk
    - stats_dump_html_px_end
    - __sc_appctx
    - watcher_next
    - strcmp
    - watcher_detach
    - strlen
    - stats_dump_fe_line
    - LIST_ELEM
    - strnistr
    - memcmp
    - stats_dump_sv_line
    - stats_dump_li_line
    - stats_scope_ptr
    - stats_is_full
    - stats_dump_be_line
    - stats_dump_html_px_hdr
    - chunk_reset
    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:1616,1
    - Dst: stats_is_full
      Src: /src/haproxy/src/stats-proxy.c:1622,1
    - Dst: stats_dump_proxy_to_buffer
      Src: /src/haproxy/src/stats-proxy.c:1632,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - sc
    - buf
    - htx
    argTypes:
    - struct stconn*
    - struct buffer*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1645
      start: 1614
    functionDepth: 6
    functionLinenumber: 1614
    functionLinenumberEnd: 1645
    functionName: stats_dump_proxies
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - stats_is_full
    - __sc_appctx
    - stats_dump_proxy_to_buffer
    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:1656,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1657,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1678,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1689,1
    - Dst: memset
      Src: /src/haproxy/src/stats-proxy.c:1692,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/src/stats-proxy.c:1703,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1706,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1713,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1721,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1729,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1730,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 2
    argNames:
    - clrall
    - stat_modules
    argTypes:
    - int
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1647
    functionDepth: 1
    functionLinenumber: 1647
    functionLinenumberEnd: 1738
    functionName: proxy_stats_clear_counters
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 1
    functionsReached:
    - EXTRA_COUNTERS_INIT
    - memset
    - list_for_each_entry
    - stats_px_get_cap
    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:1703,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1706,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1713,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1721,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stats-proxy.c:1729,1
    - Dst: EXTRA_COUNTERS_INIT
      Src: /src/haproxy/src/stats-proxy.c:1730,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1737
      start: 1698
    functionDepth: 1
    functionLinenumber: 1698
    functionLinenumberEnd: 1737
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/stats-proxy.c
    functionUses: 141
    functionsReached:
    - list_for_each_entry
    - EXTRA_COUNTERS_INIT
    - stats_px_get_cap
    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
    - _HA_ATOMIC_AND
    - _HA_ATOMIC_OR
    - evports_state_to_events
    - evports_resync_fd
    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:
    - clock_update_global_date
    - fd_grab_tgid
    - _HA_ATOMIC_INC
    - thread_idle_now
    - done_update_polling
    - compute_poll_timeout
    - clock_entering_poll
    - tick_is_expired
    - tick_isset
    - clock_update_local_date
    - evports_resync_fd
    - fd_leaving_poll
    - port_dissociate
    - fd_drop_tgid
    - thread_harmless_now
    - _HA_ATOMIC_AND
    - fd_update_events
    - fd_tgid
    - evports_state_to_events
    - _update_fd
    - port_getn
    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
    - fd_reregister_all
    - port_create
    - calloc
    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
    - hap_register_per_thread_init
    - port_create
    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:
    - port_create
    - close
    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:
    - port_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: 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:
    - HA_RWLOCK_INIT
    - malloc
    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:
    - strdup
    - ha_free
    - strlen
    - free
    - calloc
    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:
    - free
    - ha_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:
    - container_of
    - ebis_lookup
    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_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/dict.c:87,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dict.c:89,1
    - Dst: new_dict_entry
      Src: /src/haproxy/src/dict.c:93,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dict.c:97,1
    - Dst: ebis_insert
      Src: /src/haproxy/src/dict.c:98,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dict.c:99,1
    - Dst: free_dict_entry
      Src: /src/haproxy/src/dict.c:101,1
    - Dst: container_of
      Src: /src/haproxy/src/dict.c:102,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - d
    - s
    argTypes:
    - struct dict*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 80
    functionDepth: 4
    functionLinenumber: 80
    functionLinenumberEnd: 106
    functionName: dict_insert
    functionSourceFile: /src/haproxy/src/dict.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    - HA_RWLOCK_WRLOCK
    - ebis_insert
    - HA_RWLOCK_WRUNLOCK
    - container_of
    - HA_RWLOCK_RDUNLOCK
    - free_dict_entry
    - new_dict_entry
    - __dict_lookup
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct dict_entry
    signature: struct dict_entry *dict_insert(struct dict *d, char *s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/dict.c:119,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dict.c:122,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/dict.c:123,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dict.c:124,1
    - Dst: free_dict_entry
      Src: /src/haproxy/src/dict.c:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - d
    - de
    argTypes:
    - struct dict*
    - struct dict_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 4
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: dict_entry_unref
    functionSourceFile: /src/haproxy/src/dict.c
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - free_dict_entry
    - ebpt_delete
    - HA_ATOMIC_SUB_FETCH
    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:
    - list_for_each_entry_safe
    - shctx_block_append_hot
    - BUG_ON
    - struct shared_context*::free_block
    - struct shared_context*::reserve_finish
    - shctx_wrunlock
    - shctx_block_detach
    - shctx_wrlock
    - LIST_ISEMPTY
    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: 4
    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:211,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - shctx
    - first
    - data
    - len
    argTypes:
    - struct shared_context*
    - struct shared_block*
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 215
    functionName: shctx_row_data_append
    functionSourceFile: /src/haproxy/src/shctx.c
    functionUses: 1
    functionsReached:
    - memcpy
    - LIST_ELEM
    - BUG_ON
    - MIN
    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:250,1
    - Dst: MIN
      Src: /src/haproxy/src/shctx.c:253,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/shctx.c:254,1
    - Dst: memcpy
      Src: /src/haproxy/src/shctx.c:256,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/shctx.c:261,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: 264
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 264
    functionName: shctx_row_data_get
    functionSourceFile: /src/haproxy/src/shctx.c
    functionUses: 1
    functionsReached:
    - memcpy
    - LIST_ELEM
    - BUG_ON
    - MIN
    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:289,1
    - Dst: vma_set_name
      Src: /src/haproxy/src/shctx.c:296,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/shctx.c:300,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/shctx.c:301,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/shctx.c:313,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: 322
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 322
    functionName: shctx_init
    functionSourceFile: /src/haproxy/src/shctx.c
    functionUses: 2
    functionsReached:
    - HA_RWLOCK_INIT
    - vma_set_name
    - LIST_APPEND
    - LIST_INIT
    - mmap
    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: 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
    - snprintf
    - free_trash_chunk
    - chunk_appendf
    - ha_free
    - listener_backlog
    - listener_set_state
    - sa2str
    - strerror
    - listen
    - alloc_trash_chunk
    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:
    - obj_type
    - fd_cant_recv
    - HA_ATOMIC_AND
    - __objt_server
    - fd_want_send
    - fd_cant_send
    - BUG_ON
    - __objt_proxy
    - close
    - send_log
    - conn_ctrl_init
    - strerror
    - setsockopt
    - sock_create_server_socket
    - qfprintf
    - connect
    - get_addr_len
    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_CTX_get_client_CA_list
    - SSL_set_SSL_CTX
    - SSL_set_client_CA_list
    - SSL_dup_CA_list
    - SSL_set_verify
    - 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_chose_sni_ctx
    functionSourceFile: /src/haproxy/src/ssl_clienthello.c
    functionUses: 2
    functionsReached:
    - list_for_each_entry
    - strcmp
    - container_of
    - TRACE_STATE
    - TRACE_ENTER
    - ebmb_next_dup
    - ebst_lookup
    - TRACE_LEAVE
    linkageType: ''
    returnType: struct sni_ctx
    signature: "struct sni_ctx *ssl_sock_chose_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:545,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/ssl_clienthello.c:550,1
    - Dst: SSL_get_peer_quic_transport_params
      Src: /src/haproxy/src/ssl_clienthello.c:556,1
    - Dst: quic_set_tls_alert
      Src: /src/haproxy/src/ssl_clienthello.c:563,1
    - Dst: quic_transport_params_store
      Src: /src/haproxy/src/ssl_clienthello.c:567,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_clienthello.c:575,1
    - Dst: ssl_sock_generate_certificate_from_conn
      Src: /src/haproxy/src/ssl_clienthello.c:578,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:579,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_clienthello.c:584,1
    - Dst: tolower
      Src: /src/haproxy/src/ssl_clienthello.c:599,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:607,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:610,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_clienthello.c:611,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_clienthello.c:611,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_clienthello.c:613,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:620,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_clienthello.c:621,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_clienthello.c:621,1
    - Dst: container_of
      Src: /src/haproxy/src/ssl_clienthello.c:623,1
    - Dst: ssl_sock_generate_certificate
      Src: /src/haproxy/src/ssl_clienthello.c:631,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:633,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:634,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:638,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/ssl_clienthello.c:646,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/ssl_clienthello.c:649,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:655,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/ssl_clienthello.c:656,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 3
    argNames:
    - ssl
    - al
    - priv
    argTypes:
    - SSL*
    - int*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 535
    functionDepth: 5
    functionLinenumber: 535
    functionLinenumberEnd: 658
    functionName: ssl_sock_switchctx_cbk
    functionSourceFile: /src/haproxy/src/ssl_clienthello.c
    functionUses: 0
    functionsReached:
    - tolower
    - ssl_sock_generate_certificate_from_conn
    - SSL_get_ex_data
    - container_of
    - TRACE_STATE
    - TRACE_ENTER
    - HA_RWLOCK_RDUNLOCK
    - TRACE_ERROR
    - quic_transport_params_store
    - quic_set_tls_alert
    - SSL_get_servername
    - ebmb_next_dup
    - ebst_lookup
    - ssl_sock_generate_certificate
    - SSL_get_peer_quic_transport_params
    - TRACE_LEAVE
    - 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:670,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/ssl_clienthello.c:680,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_clienthello.c:684,1
    - Dst: wolfSSL_get_client_suites_sigalgs
      Src: /src/haproxy/src/ssl_clienthello.c:703,1
    - Dst: SSL_version
      Src: /src/haproxy/src/ssl_clienthello.c:707,1
    - Dst: wolfSSL_get_ciphersuite_info
      Src: /src/haproxy/src/ssl_clienthello.c:714,1
    - Dst: wolfSSL_get_sigalg_info
      Src: /src/haproxy/src/ssl_clienthello.c:728,1
    - Dst: tolower
      Src: /src/haproxy/src/ssl_clienthello.c:743,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:747,1
    - Dst: ssl_sock_chose_sni_ctx
      Src: /src/haproxy/src/ssl_clienthello.c:748,1
    - Dst: ssl_sock_switchctx_set
      Src: /src/haproxy/src/ssl_clienthello.c:752,1
    - Dst: ssl_set_version
      Src: /src/haproxy/src/ssl_clienthello.c:754,1
    - Dst: ssl_set_version
      Src: /src/haproxy/src/ssl_clienthello.c:755,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:757,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_clienthello.c:761,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/ssl_clienthello.c:778,1
    - Dst: strncpy
      Src: /src/haproxy/src/ssl_clienthello.c:780,1
    - Dst: SSL_set_ex_data
      Src: /src/haproxy/src/ssl_clienthello.c:782,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 2
    argNames:
    - ssl
    - arg
    argTypes:
    - WOLFSSL*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 794
    functionName: ssl_sock_switchctx_wolfSSL_cbk
    functionSourceFile: /src/haproxy/src/ssl_clienthello.c
    functionUses: 0
    functionsReached:
    - SSL_set_ex_data
    - tolower
    - HA_RWLOCK_RDLOCK
    - ssl_sock_chose_sni_ctx
    - SSL_get_ex_data
    - ssl_set_version
    - wolfSSL_get_sigalg_info
    - HA_RWLOCK_RDUNLOCK
    - pool_alloc
    - SSL_get_servername
    - wolfSSL_get_ciphersuite_info
    - SSL_version
    - ssl_sock_switchctx_set
    - ABORT_NOW
    - strncpy
    - wolfSSL_get_client_suites_sigalgs
    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: 23
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 23
    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:36,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:39,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:42,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:48,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:51,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:54,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:58,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: 65
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 65
    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:73,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:99,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:100,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:103,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:117,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:121,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:124,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:127,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
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 70
    argCount: 2
    argNames:
    - out
    - status
    argTypes:
    - struct buffer*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 133
    functionName: qpack_encode_int_status
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - qpack_encode_prefix_integer
    - qpack_get_prefix_int_size
    - BUG_ON
    - b_room
    - b_putchr
    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:154,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:157,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qpack-enc.c:160,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:160,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:162,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:162,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:162,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:163,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:167,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:168,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:168,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:169,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:170,1
    - Dst: istptr
      Src: /src/haproxy/src/qpack-enc.c:170,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: 174
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 174
    functionName: qpack_encode_method
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - istlen
    - qpack_encode_prefix_integer
    - qpack_get_prefix_int_size
    - BUG_ON
    - istptr
    - b_room
    - b_putchr
    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:182,1
    - Dst: isteq
      Src: /src/haproxy/src/qpack-enc.c:182,1
    - Dst: ist
      Src: /src/haproxy/src/qpack-enc.c:182,1
    - Dst: isteq
      Src: /src/haproxy/src/qpack-enc.c:182,1
    - Dst: ist
      Src: /src/haproxy/src/qpack-enc.c:182,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:183,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:183,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:183,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:184,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:188,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:189,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:189,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:190,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:191,1
    - Dst: istptr
      Src: /src/haproxy/src/qpack-enc.c:191,1
    - Dst: isteq
      Src: /src/haproxy/src/qpack-enc.c:194,1
    - Dst: ist
      Src: /src/haproxy/src/qpack-enc.c:194,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:198,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - out
    - scheme
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 206
    functionName: qpack_encode_scheme
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - isteq
    - istlen
    - unlikely
    - qpack_encode_prefix_integer
    - qpack_get_prefix_int_size
    - istptr
    - b_room
    - b_putchr
    - ist
    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:213,1
    - Dst: isteq
      Src: /src/haproxy/src/qpack-enc.c:213,1
    - Dst: ist
      Src: /src/haproxy/src/qpack-enc.c:213,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:214,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:217,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:221,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:221,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:221,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:222,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:225,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:226,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:226,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:227,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:228,1
    - Dst: istptr
      Src: /src/haproxy/src/qpack-enc.c:228,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - out
    - path
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: qpack_encode_path
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - isteq
    - istlen
    - qpack_encode_prefix_integer
    - unlikely
    - qpack_get_prefix_int_size
    - istptr
    - b_room
    - b_putchr
    - ist
    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:241,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:241,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:241,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:242,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:245,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:246,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:246,1
    - Dst: istlen
      Src: /src/haproxy/src/qpack-enc.c:247,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:248,1
    - Dst: istptr
      Src: /src/haproxy/src/qpack-enc.c:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - out
    - auth
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 250
    functionName: qpack_encode_auth
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - istlen
    - qpack_encode_prefix_integer
    - qpack_get_prefix_int_size
    - istptr
    - b_room
    - b_putchr
    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:260,1
    - Dst: b_putblk
      Src: /src/haproxy/src/qpack-enc.c:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 266
    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:276,1
    - Dst: qpack_get_prefix_int_size
      Src: /src/haproxy/src/qpack-enc.c:277,1
    - Dst: b_room
      Src: /src/haproxy/src/qpack-enc.c:279,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:288,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:291,1
    - Dst: qpack_encode_prefix_integer
      Src: /src/haproxy/src/qpack-enc.c:296,1
    - Dst: b_putchr
      Src: /src/haproxy/src/qpack-enc.c:299,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: 302
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 302
    functionName: qpack_encode_header
    functionSourceFile: /src/haproxy/src/qpack-enc.c
    functionUses: 0
    functionsReached:
    - qpack_get_prefix_int_size
    - b_room
    - b_putchr
    - 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
    - BUG_ON
    - memcpy
    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_orig
    - b_data
    - BUG_ON
    - b_wrap
    - b_head
    - memcpy
    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_data
    - memset
    - b_next
    - b_peek
    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_data
    - b_next
    - b_peek
    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_ofs
    - b_orig
    - b_data
    - b_tail_ofs
    - BUG_ON_HOT
    - b_wrap
    - b_head
    - b_peek
    - b_size
    - b_head_ofs
    - memcpy
    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_orig
    - __b_tail_ofs
    - b_data
    - b_tail_ofs
    - BUG_ON_HOT
    - b_head
    - b_size
    - memcpy
    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
    - BUG_ON
    - memcpy
    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: 3
    functionsReached:
    - b_contig_space
    - b_data
    - BUG_ON
    - b_tail
    - b_peek
    - b_size
    - memcpy
    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_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: 10
    EdgeCount: 10
    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: 11
    functionsReached:
    - __b_putblk
    - b_data
    - b_contig_data
    - b_del
    - b_head
    - b_peek
    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_data
    - b_contig_data
    - b_head
    - b_peek
    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:
    - b_orig
    - b_size
    - memmove
    - 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_realign_if_empty
    - __b_tail
    - b_data
    - memmove
    - BUG_ON
    - b_tail
    - b_wrap
    - b_head
    - memcpy
    - b_add
    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_peek_ofs
    - __b_putblk
    - b_sub
    - b_move
    - b_data
    - b_tail_ofs
    - b_room
    - b_add
    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_size
    - BUG_ON_HOT
    - b_wrap
    - 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_size
    - BUG_ON_HOT
    - b_wrap
    - 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: 22
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:94,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:97,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:101,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:107,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:110,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:113,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:115,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:116,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:117,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:118,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:119,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:120,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:134,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:137,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:138,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 65
    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: 141
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 141
    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:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 173
    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:181,1
    - Dst: calloc
      Src: /src/haproxy/src/acme.c:185,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:189,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:193,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 207
    functionName: new_acme_cfg
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - strdup
    - get_acme_cfg
    - calloc
    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:217,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:219,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 7
    argNames:
    - value
    - buf
    - d
    - cli
    - filename
    - linenum
    - err
    argTypes:
    - void*
    - char*
    - struct ckch_data*
    - int
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 236
    functionName: ckch_conf_acme_init
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strdup
    - new_acme_cfg
    linkageType: ''
    returnType: int
    signature: int ckch_conf_acme_init(void *value, char *buf, struct ckch_data *d,
      int cli, const char *filename, int linenum, char **err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: httpclient_create_proxy
      Src: /src/haproxy/src/acme.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 239
    functionDepth: 9
    functionLinenumber: 239
    functionLinenumberEnd: 247
    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: 16
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:263,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/acme.c:267,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:269,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:272,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:277,1
    - Dst: httpclient_acme_init
      Src: /src/haproxy/src/acme.c:282,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:284,1
    - Dst: new_acme_cfg
      Src: /src/haproxy/src/acme.c:289,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:292,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:303,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:308,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:309,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/acme.c:315,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:319,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/acme.c:320,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:321,1
    - Dst: parse
      Src: /src/haproxy/src/acme.c:327,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:329,1
    - Dst: ha_warning
      Src: /src/haproxy/src/acme.c:334,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/acme.c:343,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:345,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:347,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:354,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 87
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 253
    functionDepth: 10
    functionLinenumber: 253
    functionLinenumberEnd: 358
    functionName: cfg_parse_acme
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - strdup
    - cfg_find_best_match
    - ha_warning
    - list_for_each_entry
    - check_kw_experimental
    - strcmp
    - ha_free
    - httpclient_acme_init
    - free
    - new_acme_cfg
    - ha_alert
    - parse
    - alertif_too_many_args
    - mark_tainted
    linkageType: ''
    returnType: int
    signature: int cfg_parse_acme(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:366,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:368,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:372,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:374,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:375,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:378,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:381,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:384,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:388,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:391,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:392,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:395,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:398,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:401,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:405,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:408,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:409,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:412,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:415,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:416,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:416,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:417,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:422,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:425,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:426,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:429,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:432,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:435,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:439,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:442,1
    - Dst: strdup
      Src: /src/haproxy/src/acme.c:443,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:446,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:449,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:451,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:455,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:458,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:460,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:464,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:468,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:473,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 128
    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: 475
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 475
    functionName: cfg_parse_acme_kws
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcmp
    - strcasecmp
    - ha_free
    - free
    - ha_alert
    - alertif_too_many_args
    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:490,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:492,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:496,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:501,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:504,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:508,1
    - Dst: strlen
      Src: /src/haproxy/src/acme.c:511,1
    - Dst: malloc
      Src: /src/haproxy/src/acme.c:512,1
    - Dst: realloc
      Src: /src/haproxy/src/acme.c:522,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:524,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:539,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:544,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: 546
      start: 479
    functionDepth: 3
    functionLinenumber: 479
    functionLinenumberEnd: 546
    functionName: cfg_parse_acme_vars_provider
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - strcmp
    - ha_free
    - strlen
    - free
    - malloc
    - realloc
    - ha_alert
    - alertif_too_many_args
    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:554,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:556,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:560,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:563,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:565,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:568,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:573,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:577,1
    - Dst: strtol
      Src: /src/haproxy/src/acme.c:582,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:585,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:589,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:592,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:594,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:598,1
    - Dst: curves2nid
      Src: /src/haproxy/src/acme.c:601,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:602,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:609,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: 611
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 611
    functionName: cfg_parse_acme_cfg_key
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - strcmp
    - free
    - ha_alert
    - curves2nid
    - alertif_too_many_args
    - strtol
    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:620,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/acme.c:623,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:626,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:628,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:631,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: 639
      start: 614
    functionDepth: 5
    functionLinenumber: 614
    functionLinenumberEnd: 639
    functionName: cfg_parse_global_acme_sched
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - alertif_too_many_args
    - memprintf
    - strcmp
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:655,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:657,1
    - Dst: snprintf
      Src: /src/haproxy/src/acme.c:667,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:669,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:680,1
    - Dst: ckch_store_new
      Src: /src/haproxy/src/acme.c:684,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:686,1
    - Dst: stat
      Src: /src/haproxy/src/acme.c:692,1
    - Dst: ssl_sock_load_key_into_ckch
      Src: /src/haproxy/src/acme.c:693,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:694,1
    - Dst: indent_msg
      Src: /src/haproxy/src/acme.c:696,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:698,1
    - Dst: ha_notice
      Src: /src/haproxy/src/acme.c:703,1
    - Dst: acme_EVP_PKEY_gen
      Src: /src/haproxy/src/acme.c:705,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:706,1
    - Dst: BIO_new_file
      Src: /src/haproxy/src/acme.c:710,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:711,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/haproxy/src/acme.c:716,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:717,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:727,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/acme.c:733,1
    - Dst: jws_thumbprint
      Src: /src/haproxy/src/acme.c:735,1
    - Dst: my_strndup
      Src: /src/haproxy/src/acme.c:737,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:739,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/acme.c:744,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/acme.c:747,1
    - Dst: BIO_free_all
      Src: /src/haproxy/src/acme.c:748,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:749,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 642
    functionDepth: 5
    functionLinenumber: 642
    functionLinenumberEnd: 751
    functionName: cfg_postsection_acme
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - BIO_new_file
    - my_strndup
    - EVP_PKEY_free
    - snprintf
    - jws_thumbprint
    - stat
    - ssl_sock_load_key_into_ckch
    - ha_free
    - ckch_store_free
    - BIO_free_all
    - ha_notice
    - PEM_write_bio_PrivateKey
    - memprintf
    - ha_alert
    - indent_msg
    - ckch_store_new
    - acme_EVP_PKEY_gen
    - EVP_PKEY_up_ref
    linkageType: ''
    returnType: int
    signature: int cfg_postsection_acme()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:766,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/acme.c:774,1
    - Dst: ha_alert
      Src: /src/haproxy/src/acme.c:777,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/acme.c:783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 788
    functionName: cfg_postparser_acme
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - task_new_anywhere
    - task_wakeup
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int cfg_postparser_acme()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:799,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:800,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:801,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:802,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:803,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:804,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/acme.c:805,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:806,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:807,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:808,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:809,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 814
    functionName: deinit_acme
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - free
    - ha_free
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void deinit_acme()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:851,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:852,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:853,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:854,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:855,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:856,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:862,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:863,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:864,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:865,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:867,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:871,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:872,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/acme.c:874,1
    - Dst: X509_REQ_free
      Src: /src/haproxy/src/acme.c:876,1
    - Dst: free
      Src: /src/haproxy/src/acme.c:879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct acme_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 880
    functionName: acme_ctx_destroy
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - istfree
    - free
    - X509_REQ_free
    - ckch_store_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:895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - hc
    argTypes:
    - struct httpclient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 896
    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:912,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:914,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/acme.c:918,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/acme.c:919,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/acme.c:920,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - map
    - challenge
    - thumbprint
    - errmsg
    argTypes:
    - char*
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 902
    functionDepth: 5
    functionLinenumber: 902
    functionLinenumberEnd: 929
    functionName: acme_add_challenge_map
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookup
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - memprintf
    - pat_ref_load
    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:942,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/acme.c:946,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/acme.c:947,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/acme.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - map
    - challenge
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 934
    functionDepth: 5
    functionLinenumber: 934
    functionLinenumberEnd: 952
    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:967,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct acme_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 957
    functionDepth: 6
    functionLinenumber: 957
    functionLinenumberEnd: 971
    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:977,1
    - Dst: httpclient_req_gen
      Src: /src/haproxy/src/acme.c:981,1
    - Dst: httpclient_start
      Src: /src/haproxy/src/acme.c:988,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:993,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: 998
      start: 973
    functionDepth: 6
    functionLinenumber: 973
    functionLinenumberEnd: 998
    functionName: acme_http_req
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - httpclient_req_gen
    - httpclient_new_from_proxy
    - httpclient_destroy
    - httpclient_start
    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:1015,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/acme.c:1018,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:1019,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/acme.c:1020,1
    - Dst: EVP_Digest
      Src: /src/haproxy/src/acme.c:1022,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/acme.c:1022,1
    - Dst: a2base64url
      Src: /src/haproxy/src/acme.c:1025,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1031,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: 1034
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1034
    functionName: acme_txt_record
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - EVP_Digest
    - free_trash_chunk
    - chunk_appendf
    - a2base64url
    - chunk_istcat
    - EVP_sha256
    - alloc_trash_chunk
    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:1047,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1048,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1049,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1050,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1053,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1057,1
    - Dst: EVP_PKEY_to_pub_jwk
      Src: /src/haproxy/src/acme.c:1058,1
    - Dst: EVP_PKEY_to_jws_alg
      Src: /src/haproxy/src/acme.c:1059,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1062,1
    - Dst: jws_b64_payload
      Src: /src/haproxy/src/acme.c:1066,1
    - Dst: jws_b64_protected
      Src: /src/haproxy/src/acme.c:1067,1
    - Dst: jws_b64_signature
      Src: /src/haproxy/src/acme.c:1068,1
    - Dst: jws_flattened
      Src: /src/haproxy/src/acme.c:1069,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1077,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1078,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1079,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1080,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: 1084
      start: 1037
    functionDepth: 5
    functionLinenumber: 1037
    functionLinenumberEnd: 1084
    functionName: acme_jws_payload
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_to_jws_alg
    - jws_b64_payload
    - free_trash_chunk
    - jws_b64_signature
    - EVP_PKEY_to_pub_jwk
    - memprintf
    - jws_flattened
    - jws_b64_protected
    - isttest
    - alloc_trash_chunk
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/acme.c:1101,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1102,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/acme.c:1106,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1107,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/acme.c:1111,1
    - Dst: typeof
      Src: /src/haproxy/src/acme.c:1111,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/acme.c:1114,1
    - Dst: ckch_inst_rebuild
      Src: /src/haproxy/src/acme.c:1117,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/acme.c:1122,1
    - Dst: ckch_store_replace
      Src: /src/haproxy/src/acme.c:1126,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:1128,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1131,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1132,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1133,1
    - Dst: sink_find
      Src: /src/haproxy/src/acme.c:1135,1
    - Dst: sink_write
      Src: /src/haproxy/src/acme.c:1137,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:1144,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: 1147
      start: 1091
    functionDepth: 5
    functionLinenumber: 1091
    functionLinenumberEnd: 1147
    functionName: acme_update_certificate
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - sink_write
    - list_for_each_entry_from
    - ckch_inst_rebuild
    - ckchs_lookup
    - send_log
    - LIST_APPEND
    - sink_find
    - typeof
    - memprintf
    - ckch_store_replace
    - HA_SPIN_UNLOCK
    - LIST_ELEM
    - ist
    linkageType: ''
    returnType: int
    signature: int acme_update_certificate(struct task *task, struct acme_ctx *ctx,
      char **errmsg)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1161,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1163,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1168,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1169,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1169,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1170,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1171,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1174,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1174,1
    - Dst: atol
      Src: /src/haproxy/src/acme.c:1175,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1179,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1182,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1184,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1188,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1190,1
    - Dst: ssl_sock_load_pem_into_ckch
      Src: /src/haproxy/src/acme.c:1199,1
    - Dst: acme_update_certificate
      Src: /src/haproxy/src/acme.c:1206,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1215,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1216,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1217,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1149
    functionDepth: 6
    functionLinenumber: 1149
    functionLinenumberEnd: 1221
    functionName: acme_res_certificate
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - istfree
    - TRACE_DATA
    - ssl_sock_load_pem_into_ckch
    - httpclient_destroy
    - acme_update_certificate
    - isteqi
    - memprintf
    - atol
    - istdup
    - isttest
    - mjson_get_string
    - alloc_trash_chunk
    - ist
    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:1234,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1236,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1241,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1242,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1242,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1243,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1244,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1247,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1247,1
    - Dst: atol
      Src: /src/haproxy/src/acme.c:1248,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1252,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1255,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1257,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1261,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1263,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1266,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1268,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1272,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1272,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1273,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1274,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1277,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1279,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:1283,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1284,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1292,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1293,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1294,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1298
      start: 1223
    functionDepth: 6
    functionLinenumber: 1223
    functionLinenumberEnd: 1298
    functionName: acme_res_chkorder
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - istfree
    - strncasecmp
    - TRACE_DATA
    - httpclient_destroy
    - ist2
    - isteqi
    - memprintf
    - atol
    - istdup
    - isttest
    - mjson_get_string
    - alloc_trash_chunk
    - ist
    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:1308,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1308,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1315,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1317,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1319,1
    - Dst: i2d_X509_REQ
      Src: /src/haproxy/src/acme.c:1322,1
    - Dst: a2base64url
      Src: /src/haproxy/src/acme.c:1326,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/acme.c:1331,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/acme.c:1332,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:1335,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:1338,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1338,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1344,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1346,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1347,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1348,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1352
      start: 1301
    functionDepth: 7
    functionLinenumber: 1301
    functionLinenumberEnd: 1352
    functionName: acme_req_finalize
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - IST
    - acme_http_req
    - chunk_printf
    - free_trash_chunk
    - a2base64url
    - acme_jws_payload
    - ist2
    - memprintf
    - i2d_X509_REQ
    - alloc_trash_chunk
    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:1365,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1367,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1372,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1373,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1373,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1374,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1375,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1378,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1378,1
    - Dst: atol
      Src: /src/haproxy/src/acme.c:1379,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1383,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1386,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1388,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1392,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1394,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1401,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1402,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1403,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 43
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1354
    functionDepth: 6
    functionLinenumber: 1354
    functionLinenumberEnd: 1407
    functionName: acme_res_finalize
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - istfree
    - TRACE_DATA
    - httpclient_destroy
    - isteqi
    - memprintf
    - atol
    - istdup
    - isttest
    - mjson_get_string
    - alloc_trash_chunk
    - ist
    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:1417,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1417,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1422,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1424,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/acme.c:1427,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1429,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:1431,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1434,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:1436,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1436,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1441,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1443,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1444,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 4
    argNames:
    - task
    - ctx
    - auth
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - struct acme_auth*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1412
    functionDepth: 7
    functionLinenumber: 1412
    functionLinenumberEnd: 1448
    functionName: acme_req_challenge
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_http_req
    - chunk_printf
    - free_trash_chunk
    - TRACE_DATA
    - acme_jws_payload
    - ist2
    - memprintf
    - IST
    - alloc_trash_chunk
    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:1463,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1465,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1470,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1472,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1473,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1473,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1474,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1475,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1478,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1478,1
    - Dst: atol
      Src: /src/haproxy/src/acme.c:1479,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1483,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1485,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:1491,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:1491,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1493,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:1502,1
    - Dst: mjson_find
      Src: /src/haproxy/src/acme.c:1507,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1509,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1511,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1514,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1516,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1521,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1522,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1523,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    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: 1527
      start: 1451
    functionDepth: 6
    functionLinenumber: 1451
    functionLinenumberEnd: 1527
    functionName: acme_res_challenge
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - istfree
    - strncasecmp
    - TRACE_DATA
    - httpclient_destroy
    - isteqi
    - memprintf
    - atol
    - mjson_find
    - istdup
    - isttest
    - mjson_get_string
    - alloc_trash_chunk
    - ist
    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:1535,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1535,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1540,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1542,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/acme.c:1545,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:1548,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1551,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:1553,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1553,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1559,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1563,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1567,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1571,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1572,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 4
    argNames:
    - task
    - ctx
    - url
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - struct ist
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1575
      start: 1530
    functionDepth: 7
    functionLinenumber: 1530
    functionLinenumberEnd: 1575
    functionName: acme_post_as_get
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_http_req
    - free_trash_chunk
    - TRACE_DATA
    - TRACE_USER
    - acme_jws_payload
    - ist2
    - memprintf
    - IST
    - alloc_trash_chunk
    linkageType: ''
    returnType: int
    signature: int acme_post_as_get(struct task *task, struct acme_ctx *ctx, struct
      ist url, char **errmsg)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1589,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1591,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1596,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1597,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1597,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1598,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1599,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1602,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1602,1
    - Dst: atol
      Src: /src/haproxy/src/acme.c:1603,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1607,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1611,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1613,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1616,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1618,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1623,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1625,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1630,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1632,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1637,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1637,1
    - Dst: snprintf
      Src: /src/haproxy/src/acme.c:1646,1
    - Dst: mjson_find
      Src: /src/haproxy/src/acme.c:1650,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1653,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1655,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/acme.c:1661,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1664,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1666,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1670,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1670,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1671,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1672,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1676,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1678,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1682,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1682,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1683,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1684,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:1689,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/acme.c:1695,1
    - Dst: acme_txt_record
      Src: /src/haproxy/src/acme.c:1697,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1697,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1698,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:1702,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1706,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1707,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1708,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1709,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1710,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1713,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1714,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1715,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1718,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1719,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1720,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1723,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1724,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1725,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1728,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1729,1
    - Dst: sink_find
      Src: /src/haproxy/src/acme.c:1731,1
    - Dst: sink_write
      Src: /src/haproxy/src/acme.c:1733,1
    - Dst: acme_add_challenge_map
      Src: /src/haproxy/src/acme.c:1737,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1738,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1750,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1751,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1752,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 140
    argCount: 4
    argNames:
    - task
    - ctx
    - auth
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - struct acme_auth*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1577
    functionDepth: 6
    functionLinenumber: 1577
    functionLinenumberEnd: 1756
    functionName: acme_res_auth
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - sink_write
    - get_trash_chunk
    - free_trash_chunk
    - TRACE_DATA
    - sink_find
    - alloc_trash_chunk
    - snprintf
    - istfree
    - strncasecmp
    - ist2
    - atol
    - strcasecmp
    - isteqi
    - memprintf
    - istdup
    - mjson_get_string
    - ist
    - acme_txt_record
    - httpclient_destroy
    - send_log
    - acme_add_challenge_map
    - mjson_find
    - isttest
    linkageType: ''
    returnType: int
    signature: int acme_res_auth(struct task *task, struct acme_ctx *ctx, struct acme_auth
      *auth, char **errmsg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1764,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1764,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1770,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1772,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/acme.c:1775,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:1782,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:1785,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1787,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:1790,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1793,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:1794,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1794,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1799,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1801,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1802,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 30
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1759
    functionDepth: 7
    functionLinenumber: 1759
    functionLinenumberEnd: 1806
    functionName: acme_req_neworder
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_http_req
    - chunk_printf
    - free_trash_chunk
    - chunk_appendf
    - TRACE_DATA
    - acme_jws_payload
    - ist2
    - memprintf
    - IST
    - alloc_trash_chunk
    linkageType: ''
    returnType: int
    signature: int acme_req_neworder(struct task *task, struct acme_ctx *ctx, char
      **errmsg)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1820,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1822,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1827,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1828,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1828,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1829,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1830,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1833,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1833,1
    - Dst: atol
      Src: /src/haproxy/src/acme.c:1834,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1837,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1837,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1838,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1839,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1842,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1845,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1847,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1850,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1852,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1856,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1857,1
    - Dst: snprintf
      Src: /src/haproxy/src/acme.c:1865,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1866,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1870,1
    - Dst: calloc
      Src: /src/haproxy/src/acme.c:1875,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1876,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1880,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1880,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1881,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1882,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/acme.c:1888,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:1896,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1897,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1901,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1902,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1902,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1903,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1904,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1912,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1913,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:1914,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 92
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1808
    functionDepth: 6
    functionLinenumber: 1808
    functionLinenumberEnd: 1918
    functionName: acme_res_neworder
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - snprintf
    - istfree
    - strcasecmp
    - TRACE_DATA
    - free_trash_chunk
    - httpclient_destroy
    - ist2
    - isteqi
    - memprintf
    - atol
    - istdup
    - isttest
    - mjson_get_string
    - alloc_trash_chunk
    - calloc
    - ist
    linkageType: ''
    returnType: int
    signature: int acme_res_neworder(struct task *task, struct acme_ctx *ctx, char
      **errmsg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1926,1
    - Dst: IST
      Src: /src/haproxy/src/acme.c:1926,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1941,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1943,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/acme.c:1947,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/acme.c:1949,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:1951,1
    - Dst: acme_jws_payload
      Src: /src/haproxy/src/acme.c:1953,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:1956,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:1956,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:1961,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1963,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:1964,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - task
    - ctx
    - newaccount
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1921
    functionDepth: 7
    functionLinenumber: 1921
    functionLinenumberEnd: 1967
    functionName: acme_req_account
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_http_req
    - chunk_printf
    - free_trash_chunk
    - TRACE_DATA
    - acme_jws_payload
    - ist2
    - memprintf
    - IST
    - alloc_trash_chunk
    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:1980,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:1982,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:1987,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1988,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1988,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1989,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1990,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1993,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1993,1
    - Dst: atol
      Src: /src/haproxy/src/acme.c:1994,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:1996,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:1996,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:1997,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:1998,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2002,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2005,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2007,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:2012,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2017,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2019,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2026,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2027,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2028,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 4
    argNames:
    - task
    - ctx
    - newaccount
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 1969
    functionDepth: 6
    functionLinenumber: 1969
    functionLinenumberEnd: 2032
    functionName: acme_res_account
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - strcmp
    - free_trash_chunk
    - istfree
    - TRACE_DATA
    - httpclient_destroy
    - isteqi
    - memprintf
    - atol
    - istdup
    - isttest
    - mjson_get_string
    - alloc_trash_chunk
    - ist
    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:2046,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2050,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2054,1
    - Dst: isteqi
      Src: /src/haproxy/src/acme.c:2055,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2055,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2056,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2057,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2063,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2069,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 3
    argNames:
    - task
    - ctx
    - errmsg
    argTypes:
    - struct task*
    - struct acme_ctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2073
      start: 2036
    functionDepth: 5
    functionLinenumber: 2036
    functionLinenumberEnd: 2073
    functionName: acme_nonce
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - istfree
    - TRACE_DATA
    - httpclient_destroy
    - isteqi
    - memprintf
    - istdup
    - isttest
    - ist
    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:2086,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/acme.c:2090,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2092,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2093,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2096,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2096,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2097,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2098,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2102,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2103,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2106,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2106,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2107,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2108,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/acme.c:2111,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2112,1
    - Dst: istdup
      Src: /src/haproxy/src/acme.c:2115,1
    - Dst: ist2
      Src: /src/haproxy/src/acme.c:2115,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2116,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2117,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2121,1
    - Dst: httpclient_destroy
      Src: /src/haproxy/src/acme.c:2130,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2133,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2134,1
    - Dst: istfree
      Src: /src/haproxy/src/acme.c:2135,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: 2138
      start: 2075
    functionDepth: 6
    functionLinenumber: 2075
    functionLinenumberEnd: 2138
    functionName: acme_directory
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - istfree
    - TRACE_DATA
    - httpclient_destroy
    - ist2
    - memprintf
    - istdup
    - isttest
    - mjson_get_string
    linkageType: ''
    returnType: int
    signature: int acme_directory(struct task *task, struct acme_ctx *ctx, char **errmsg)
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_LOCK_FULL
      Src: /src/haproxy/src/acme.c:2152,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/acme.c:2155,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:2160,1
    - Dst: ist
      Src: /src/haproxy/src/acme.c:2160,1
    - Dst: acme_directory
      Src: /src/haproxy/src/acme.c:2165,1
    - Dst: acme_http_req
      Src: /src/haproxy/src/acme.c:2174,1
    - Dst: acme_nonce
      Src: /src/haproxy/src/acme.c:2178,1
    - Dst: acme_req_account
      Src: /src/haproxy/src/acme.c:2188,1
    - Dst: acme_res_account
      Src: /src/haproxy/src/acme.c:2192,1
    - Dst: isttest
      Src: /src/haproxy/src/acme.c:2195,1
    - Dst: acme_req_account
      Src: /src/haproxy/src/acme.c:2204,1
    - Dst: acme_res_account
      Src: /src/haproxy/src/acme.c:2208,1
    - Dst: acme_req_neworder
      Src: /src/haproxy/src/acme.c:2219,1
    - Dst: acme_res_neworder
      Src: /src/haproxy/src/acme.c:2223,1
    - Dst: acme_post_as_get
      Src: /src/haproxy/src/acme.c:2232,1
    - Dst: acme_res_auth
      Src: /src/haproxy/src/acme.c:2236,1
    - Dst: acme_req_challenge
      Src: /src/haproxy/src/acme.c:2254,1
    - Dst: acme_res_challenge
      Src: /src/haproxy/src/acme.c:2258,1
    - Dst: acme_post_as_get
      Src: /src/haproxy/src/acme.c:2278,1
    - Dst: acme_res_challenge
      Src: /src/haproxy/src/acme.c:2282,1
    - Dst: acme_req_finalize
      Src: /src/haproxy/src/acme.c:2297,1
    - Dst: acme_res_finalize
      Src: /src/haproxy/src/acme.c:2301,1
    - Dst: acme_post_as_get
      Src: /src/haproxy/src/acme.c:2313,1
    - Dst: acme_res_chkorder
      Src: /src/haproxy/src/acme.c:2317,1
    - Dst: acme_post_as_get
      Src: /src/haproxy/src/acme.c:2326,1
    - Dst: acme_res_certificate
      Src: /src/haproxy/src/acme.c:2330,1
    - Dst: MT_LIST_UNLOCK_FULL
      Src: /src/haproxy/src/acme.c:2344,1
    - Dst: tick_add
      Src: /src/haproxy/src/acme.c:2361,1
    - Dst: MT_LIST_UNLOCK_FULL
      Src: /src/haproxy/src/acme.c:2364,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2385,1
    - Dst: tick_add
      Src: /src/haproxy/src/acme.c:2386,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2389,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:2393,1
    - Dst: MT_LIST_UNLOCK_FULL
      Src: /src/haproxy/src/acme.c:2395,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2399,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:2400,1
    - Dst: acme_del_acme_ctx_map
      Src: /src/haproxy/src/acme.c:2403,1
    - Dst: mt_list_unlock_link
      Src: /src/haproxy/src/acme.c:2405,1
    - Dst: mt_list_unlock_self
      Src: /src/haproxy/src/acme.c:2406,1
    - Dst: acme_ctx_destroy
      Src: /src/haproxy/src/acme.c:2407,1
    - Dst: task_destroy
      Src: /src/haproxy/src/acme.c:2408,1
    - Dst: MT_LIST_UNLOCK_FULL
      Src: /src/haproxy/src/acme.c:2419,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 270
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2146
    functionDepth: 8
    functionLinenumber: 2146
    functionLinenumberEnd: 2421
    functionName: acme_process
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - acme_res_account
    - acme_res_challenge
    - task_destroy
    - acme_res_finalize
    - acme_ctx_destroy
    - MT_LIST_UNLOCK_FULL
    - acme_http_req
    - acme_req_account
    - acme_post_as_get
    - acme_directory
    - ha_free
    - acme_res_neworder
    - acme_req_finalize
    - TRACE_USER
    - acme_req_neworder
    - acme_res_certificate
    - mt_list_unlock_self
    - acme_res_chkorder
    - acme_nonce
    - acme_req_challenge
    - acme_del_acme_ctx_map
    - acme_res_auth
    - MT_LIST_LOCK_FULL
    - mt_list_unlock_link
    - ist
    - tick_add
    - send_log
    - 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:2440,1
    - Dst: x509_get_notbefore_time_t
      Src: /src/haproxy/src/acme.c:2441,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2427
    functionDepth: 1
    functionLinenumber: 2427
    functionLinenumberEnd: 2453
    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:2467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2459
    functionDepth: 2
    functionLinenumber: 2459
    functionLinenumberEnd: 2473
    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:2483,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/acme.c:2486,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/acme.c:2488,1
    - Dst: acme_will_expire
      Src: /src/haproxy/src/acme.c:2492,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/acme.c:2493,1
    - Dst: acme_start_task
      Src: /src/haproxy/src/acme.c:2494,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2495,1
    - Dst: ha_free
      Src: /src/haproxy/src/acme.c:2496,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/acme.c:2500,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:2503,1
    - Dst: tick_add
      Src: /src/haproxy/src/acme.c:2506,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2508
      start: 2477
    functionDepth: 3
    functionLinenumber: 2477
    functionLinenumberEnd: 2508
    functionName: acme_scheduler
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - tick_add
    - ebmb_first
    - ha_free
    - send_log
    - TRACE_USER
    - ebmb_next
    - acme_will_expire
    - HA_SPIN_UNLOCK
    - ebmb_entry
    - acme_start_task
    linkageType: ''
    returnType: struct task
    signature: struct task *acme_scheduler(struct task *task, void *context, unsigned
      int state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: STACK_OF
      Src: /src/haproxy/src/acme.c:2518,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/acme.c:2523,1
    - Dst: X509_REQ_new
      Src: /src/haproxy/src/acme.c:2526,1
    - Dst: X509_REQ_set_pubkey
      Src: /src/haproxy/src/acme.c:2529,1
    - Dst: X509_NAME_new
      Src: /src/haproxy/src/acme.c:2532,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/haproxy/src/acme.c:2536,1
    - Dst: X509_REQ_set_subject_name
      Src: /src/haproxy/src/acme.c:2540,1
    - Dst: sk_X509_EXTENSION_new_null
      Src: /src/haproxy/src/acme.c:2544,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2548,1
    - Dst: my_strndup
      Src: /src/haproxy/src/acme.c:2550,1
    - Dst: X509V3_EXT_conf_nid
      Src: /src/haproxy/src/acme.c:2552,1
    - Dst: sk_X509_EXTENSION_push
      Src: /src/haproxy/src/acme.c:2555,1
    - Dst: X509_REQ_add_extensions
      Src: /src/haproxy/src/acme.c:2557,1
    - Dst: sk_X509_EXTENSION_pop_free
      Src: /src/haproxy/src/acme.c:2560,1
    - Dst: X509_REQ_sign
      Src: /src/haproxy/src/acme.c:2562,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/acme.c:2562,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2565,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/acme.c:2570,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 46
    argCount: 2
    argNames:
    - pkey
    - san
    argTypes:
    - EVP_PKEY*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2573
      start: 2513
    functionDepth: 1
    functionLinenumber: 2513
    functionLinenumberEnd: 2573
    functionName: acme_x509_req
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - X509_REQ_new
    - X509_REQ_sign
    - sk_X509_EXTENSION_pop_free
    - X509_REQ_add_extensions
    - sk_X509_EXTENSION_push
    - X509_REQ_set_pubkey
    - sk_X509_EXTENSION_new_null
    - chunk_appendf
    - free_trash_chunk
    - X509V3_EXT_conf_nid
    - X509_NAME_add_entry_by_txt
    - X509_NAME_new
    - STACK_OF
    - X509_REQ_set_subject_name
    - EVP_sha256
    - alloc_trash_chunk
    linkageType: ''
    returnType: X509_REQ
    signature: X509_REQ *acme_x509_req(EVP_PKEY *pkey, char **san)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/haproxy/src/acme.c:2582,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2583,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/haproxy/src/acme.c:2587,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2588,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/haproxy/src/acme.c:2593,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2594,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/haproxy/src/acme.c:2598,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2599,1
    - Dst: EVP_PKEY_keygen
      Src: /src/haproxy/src/acme.c:2604,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2605,1
    - Dst: EVP_PKEY_CTX_free
      Src: /src/haproxy/src/acme.c:2610,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - keytype
    - curves
    - bits
    - errmsg
    argTypes:
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2576
    functionDepth: 5
    functionLinenumber: 2576
    functionLinenumberEnd: 2612
    functionName: acme_EVP_PKEY_gen
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_CTX_free
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - memprintf
    - EVP_PKEY_keygen
    - EVP_PKEY_CTX_new_id
    - EVP_PKEY_keygen_init
    linkageType: ''
    returnType: EVP_PKEY
    signature: EVP_PKEY *acme_EVP_PKEY_gen(int keytype, int curves, int bits, char
      **errmsg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2624,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2629,1
    - Dst: get_acme_cfg
      Src: /src/haproxy/src/acme.c:2633,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2635,1
    - Dst: ckchs_dup
      Src: /src/haproxy/src/acme.c:2639,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2641,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/acme.c:2645,1
    - Dst: calloc
      Src: /src/haproxy/src/acme.c:2657,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2659,1
    - Dst: acme_EVP_PKEY_gen
      Src: /src/haproxy/src/acme.c:2667,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/acme.c:2670,1
    - Dst: acme_x509_req
      Src: /src/haproxy/src/acme.c:2675,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2677,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/acme.c:2686,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/acme.c:2687,1
    - Dst: send_log
      Src: /src/haproxy/src/acme.c:2689,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/acme.c:2691,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/acme.c:2692,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/acme.c:2697,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/acme.c:2698,1
    - Dst: acme_ctx_destroy
      Src: /src/haproxy/src/acme.c:2699,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2700,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 2
    argNames:
    - store
    - errmsg
    argTypes:
    - struct ckch_store*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2615
    functionDepth: 6
    functionLinenumber: 2615
    functionLinenumberEnd: 2702
    functionName: acme_start_task
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 1
    functionsReached:
    - acme_x509_req
    - acme_EVP_PKEY_gen
    - EVP_PKEY_free
    - MT_LIST_APPEND
    - task_wakeup
    - ckch_store_free
    - send_log
    - TRACE_USER
    - task_new_anywhere
    - get_acme_cfg
    - memprintf
    - MT_LIST_INIT
    - ckchs_dup
    - calloc
    - acme_ctx_destroy
    linkageType: ''
    returnType: int
    signature: int acme_start_task(struct ckch_store *store, char **errmsg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2710,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/acme.c:2714,1
    - Dst: cli_err
      Src: /src/haproxy/src/acme.c:2715,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/acme.c:2717,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2718,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2723,1
    - Dst: acme_start_task
      Src: /src/haproxy/src/acme.c:2727,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:2730,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:2733,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/acme.c:2734,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: 2735
      start: 2704
    functionDepth: 7
    functionLinenumber: 2704
    functionLinenumberEnd: 2735
    functionName: cli_acme_renew_parse
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - cli_err
    - ckchs_lookup
    - cli_dynerr
    - memprintf
    - HA_SPIN_UNLOCK
    - acme_start_task
    linkageType: ''
    returnType: int
    signature: int cli_acme_renew_parse(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2748,1
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/acme.c:2756,1
    - Dst: strcmp
      Src: /src/haproxy/src/acme.c:2758,1
    - Dst: strncmp
      Src: /src/haproxy/src/acme.c:2763,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/acme.c:2766,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2769,1
    - Dst: memprintf
      Src: /src/haproxy/src/acme.c:2777,1
    - Dst: cli_msg
      Src: /src/haproxy/src/acme.c:2781,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/acme.c:2783,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: 2784
      start: 2737
    functionDepth: 5
    functionLinenumber: 2737
    functionLinenumberEnd: 2784
    functionName: cli_acme_chall_ready_parse
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    - task_wakeup
    - cli_dynerr
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - memprintf
    - cli_msg
    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:2791,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/acme.c:2794,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2796,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/acme.c:2797,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/acme.c:2801,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/acme.c:2805,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/acme.c:2807,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2825,1
    - Dst: x509_get_notafter_time_t
      Src: /src/haproxy/src/acme.c:2827,1
    - Dst: strftime
      Src: /src/haproxy/src/acme.c:2831,1
    - Dst: gmtime
      Src: /src/haproxy/src/acme.c:2831,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2832,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2833,1
    - Dst: acme_schedule_date
      Src: /src/haproxy/src/acme.c:2838,1
    - Dst: strftime
      Src: /src/haproxy/src/acme.c:2841,1
    - Dst: gmtime
      Src: /src/haproxy/src/acme.c:2841,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2842,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2844,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/acme.c:2846,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/acme.c:2848,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/acme.c:2851,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/acme.c:2854,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2856
      start: 2786
    functionDepth: 2
    functionLinenumber: 2786
    functionLinenumberEnd: 2856
    functionName: cli_acme_status_io_handler
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - gmtime
    - ebmb_first
    - chunk_appendf
    - strftime
    - applet_putchk
    - x509_get_notafter_time_t
    - acme_schedule_date
    - ebmb_next
    - ebmb_entry
    - HA_SPIN_UNLOCK
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int cli_acme_status_io_handler(struct appctx *appctx)
  - 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: 2861
      start: 2858
    functionDepth: 0
    functionLinenumber: 2858
    functionLinenumberEnd: 2861
    functionName: cli_acme_ps
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_acme_ps(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hap_register_feature
      Src: /src/haproxy/src/acme.c:2876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2877
      start: 2874
    functionDepth: 1
    functionLinenumber: 2874
    functionLinenumberEnd: 2877
    functionName: __acme_init
    functionSourceFile: /src/haproxy/src/acme.c
    functionUses: 0
    functionsReached:
    - hap_register_feature
    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:
    - c_adv
    - ci_data
    - MIN
    - unlikely
    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: 15
    argCount: 3
    argNames:
    - chn
    - msg
    - len
    argTypes:
    - struct channel*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 103
    functionName: co_inject
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 2
    functionsReached:
    - b_contig_space
    - c_realign_if_empty
    - c_size
    - c_adv
    - co_tail
    - memcpy
    - b_add
    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:113,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/channel.c:113,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/channel.c:116,1
    - Dst: ci_tail
      Src: /src/haproxy/src/channel.c:119,1
    - Dst: b_add
      Src: /src/haproxy/src/channel.c:121,1
    - Dst: c_adv
      Src: /src/haproxy/src/channel.c:127,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - chn
    - c
    argTypes:
    - struct channel*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 132
    functionName: ci_putchr
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - channel_may_recv
    - c_adv
    - channel_input_closed
    - ci_tail
    - b_add
    linkageType: ''
    returnType: int
    signature: int ci_putchr(struct channel *chn, char c)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:146,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/channel.c:146,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/channel.c:152,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:153,1
    - Dst: c_data
      Src: /src/haproxy/src/channel.c:153,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:165,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/channel.c:169,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:170,1
    - Dst: ci_tail
      Src: /src/haproxy/src/channel.c:170,1
    - Dst: MIN
      Src: /src/haproxy/src/channel.c:170,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:172,1
    - Dst: c_orig
      Src: /src/haproxy/src/channel.c:172,1
    - Dst: b_add
      Src: /src/haproxy/src/channel.c:174,1
    - Dst: channel_add_input
      Src: /src/haproxy/src/channel.c:175,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - chn
    - blk
    - len
    argTypes:
    - struct channel*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 177
    functionName: ci_putblk
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - MIN
    - c_orig
    - memcpy
    - channel_recv_limit
    - channel_input_closed
    - channel_add_input
    - c_data
    - ci_tail
    - b_contig_space
    - b_add
    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:209,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:209,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:209,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:210,1
    - Dst: co_head
      Src: /src/haproxy/src/channel.c:215,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:217,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:218,1
    - Dst: memset
      Src: /src/haproxy/src/channel.c:223,1
    - Dst: b_next
      Src: /src/haproxy/src/channel.c:249,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:253,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/channel.c:253,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:255,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: 261
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 261
    functionName: co_getdelim
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - chn_cons
    - co_data
    - co_head
    - memset
    - unlikely
    - channel_may_recv
    - b_next
    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:282,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:282,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:282,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:283,1
    - Dst: co_head
      Src: /src/haproxy/src/channel.c:288,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:290,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:291,1
    - Dst: b_next
      Src: /src/haproxy/src/channel.c:301,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:304,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/channel.c:304,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:306,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: 312
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 312
    functionName: co_getword
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - chn_cons
    - co_data
    - co_head
    - unlikely
    - channel_may_recv
    - b_next
    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:333,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:333,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:333,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:334,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:339,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:340,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/channel.c:347,1
    - Dst: MIN
      Src: /src/haproxy/src/channel.c:348,1
    - Dst: b_peek
      Src: /src/haproxy/src/channel.c:349,1
    - Dst: memchr
      Src: /src/haproxy/src/channel.c:350,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:355,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:365,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/channel.c:365,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:367,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 3
    argNames:
    - chn
    - str
    - len
    argTypes:
    - struct channel*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 373
    functionName: co_getline
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - chn_cons
    - co_data
    - MIN
    - unlikely
    - b_contig_data
    - channel_may_recv
    - memchr
    - b_peek
    - memcpy
    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:385,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:388,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:388,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:389,1
    - Dst: co_head
      Src: /src/haproxy/src/channel.c:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - chn
    - c
    argTypes:
    - struct channel*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 396
    functionName: co_getchar
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - chn_cons
    - co_data
    - co_head
    - unlikely
    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:408,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:411,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:411,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:412,1
    - Dst: b_getblk
      Src: /src/haproxy/src/channel.c:417,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: 418
      start: 406
    functionDepth: 2
    functionLinenumber: 406
    functionLinenumberEnd: 418
    functionName: co_getblk
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - chn_cons
    - co_data
    - 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:430,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:430,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:431,1
    - Dst: b_getblk_nc
      Src: /src/haproxy/src/channel.c:436,1
    - Dst: co_data
      Src: /src/haproxy/src/channel.c:436,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: 437
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 437
    functionName: co_getblk_nc
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - b_getblk_nc
    - chn_cons
    - co_data
    - unlikely
    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:455,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:456,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:473,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: 483
      start: 448
    functionDepth: 2
    functionLinenumber: 448
    functionLinenumberEnd: 483
    functionName: co_getline_nc
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - chn_cons
    - unlikely
    - co_getblk_nc
    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:496,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:496,1
    - Dst: chn_prod
      Src: /src/haproxy/src/channel.c:497,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:502,1
    - Dst: ci_head
      Src: /src/haproxy/src/channel.c:502,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:502,1
    - Dst: c_wrap
      Src: /src/haproxy/src/channel.c:502,1
    - Dst: ci_head
      Src: /src/haproxy/src/channel.c:503,1
    - Dst: c_wrap
      Src: /src/haproxy/src/channel.c:504,1
    - Dst: ci_head
      Src: /src/haproxy/src/channel.c:504,1
    - Dst: c_orig
      Src: /src/haproxy/src/channel.c:505,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:506,1
    - Dst: ci_head
      Src: /src/haproxy/src/channel.c:510,1
    - Dst: ci_data
      Src: /src/haproxy/src/channel.c:511,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: 513
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 513
    functionName: ci_getblk_nc
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - unlikely
    - c_orig
    - chn_prod
    - ci_data
    - ci_head
    - c_wrap
    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:531,1
    - Dst: unlikely
      Src: /src/haproxy/src/channel.c:532,1
    - Dst: chn_cons
      Src: /src/haproxy/src/channel.c:549,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: 559
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 559
    functionName: ci_getline_nc
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - ci_getblk_nc
    - chn_cons
    - unlikely
    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:570,1
    - Dst: __b_tail
      Src: /src/haproxy/src/channel.c:572,1
    - Dst: b_wrap
      Src: /src/haproxy/src/channel.c:572,1
    - Dst: b_data
      Src: /src/haproxy/src/channel.c:575,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:576,1
    - Dst: b_head
      Src: /src/haproxy/src/channel.c:576,1
    - Dst: b_head
      Src: /src/haproxy/src/channel.c:577,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:577,1
    - Dst: memmove
      Src: /src/haproxy/src/channel.c:581,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:581,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:584,1
    - Dst: b_add
      Src: /src/haproxy/src/channel.c:586,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: 588
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 588
    functionName: ci_insert
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 2
    functionsReached:
    - __b_tail
    - b_data
    - memmove
    - b_tail
    - c_ptr
    - b_wrap
    - b_head
    - memcpy
    - b_add
    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:601,1
    - Dst: __b_tail
      Src: /src/haproxy/src/channel.c:606,1
    - Dst: b_wrap
      Src: /src/haproxy/src/channel.c:606,1
    - Dst: b_data
      Src: /src/haproxy/src/channel.c:609,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:610,1
    - Dst: b_head
      Src: /src/haproxy/src/channel.c:610,1
    - Dst: b_head
      Src: /src/haproxy/src/channel.c:611,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:611,1
    - Dst: memmove
      Src: /src/haproxy/src/channel.c:615,1
    - Dst: b_tail
      Src: /src/haproxy/src/channel.c:615,1
    - Dst: memcpy
      Src: /src/haproxy/src/channel.c:618,1
    - Dst: b_add
      Src: /src/haproxy/src/channel.c:622,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: 624
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 624
    functionName: ci_insert_line2
    functionSourceFile: /src/haproxy/src/channel.c
    functionUses: 0
    functionsReached:
    - __b_tail
    - b_data
    - memmove
    - b_tail
    - c_ptr
    - b_wrap
    - b_head
    - memcpy
    - b_add
    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_LEAVE
    - TRACE_PROTO
    - QUIC_MIN
    - TRACE_ENTER
    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:
    - tick_is_lt
    - BUG_ON
    - TRACE_ENTER
    - tick_isset
    - TRACE_PROTO
    - LIST_NEXT
    - LIST_ISEMPTY
    - TRACE_LEAVE
    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:
    - tick_add
    - tick_is_lt
    - BUG_ON
    - TRACE_STATE
    - QUIC_MAX
    - TRACE_ENTER
    - tick_isset
    - TRACE_PROTO
    - LIST_NEXT
    - LIST_ISEMPTY
    - TRACE_LEAVE
    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:
    - tick_add
    - eb64_next
    - eb64_delete
    - eb64_first
    - eb64_entry
    - QUIC_MAX
    - TRACE_ENTER
    - LIST_APPEND
    - tick_isset
    - TRACE_PROTO
    - struct quic_cc*::algo::on_pkt_lost
    - tick_is_le
    - tick_first
    - eb_is_empty
    - MS_TO_TICKS
    - QUIC_TUNE_FB_GET
    - TRACE_LEAVE
    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
    - quic_loss_persistent_congestion
    - qc_handle_frms_of_lost_pkt
    - struct quic_conn*::path::cc::algo::slow_start
    - TRACE_ENTER
    - quic_tx_packet_refdec
    - quic_cc_event
    - LIST_HEAD_INIT
    - LIST_ISEMPTY
    - LIST_ELEM
    - TRACE_LEAVE
    - struct quic_cc*::algo::congestion_event
    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: 43
    functionsReached:
    - LIST_HEAD_INIT
    - qc_handle_frms_of_lost_pkt
    - LIST_DELETE
    - quic_tx_packet_refdec
    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:
    - eb32_lookup
    - container_of_safe
    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: 7
    EdgeCount: 7
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 355
    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:360,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - str
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 362
    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:369,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 372
    functionName: logformat_str_dup
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - strdup
    - logformat_str_isdefault
    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: 427
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 427
    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:442,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:464,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 39
    argCount: 3
    argNames:
    - args
    - node
    - err
    argTypes:
    - char*
    - struct logformat_node*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 434
    functionDepth: 5
    functionLinenumber: 434
    functionLinenumberEnd: 487
    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:505,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:506,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:507,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:509,1
    - Dst: my_strndup
      Src: /src/haproxy/src/log.c:516,1
    - Dst: my_strndup
      Src: /src/haproxy/src/log.c:519,1
    - Dst: parse_logformat_node_args
      Src: /src/haproxy/src/log.c:520,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:540,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:542,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:550,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:554,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: 556
      start: 496
    functionDepth: 6
    functionLinenumber: 496
    functionLinenumberEnd: 556
    functionName: parse_logformat_alias
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - free_logformat_node
    - strncmp
    - LIST_APPEND
    - strlen
    - memprintf
    - parse_logformat_node_args
    - calloc
    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:575,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:576,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:577,1
    - Dst: free
      Src: /src/haproxy/src/log.c:578,1
    - Dst: free
      Src: /src/haproxy/src/log.c:579,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:580,1
    - Dst: strncpy
      Src: /src/haproxy/src/log.c:583,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:587,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:589,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:591,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:595,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: 598
      start: 569
    functionDepth: 5
    functionLinenumber: 569
    functionLinenumberEnd: 598
    functionName: add_to_logformat_list
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - LIST_APPEND
    - free
    - memprintf
    - strncpy
    - calloc
    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:622,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:625,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:629,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/log.c:631,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:632,1
    - Dst: my_strndup
      Src: /src/haproxy/src/log.c:636,1
    - Dst: my_strndup
      Src: /src/haproxy/src/log.c:643,1
    - Dst: parse_logformat_node_args
      Src: /src/haproxy/src/log.c:644,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:654,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/log.c:655,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:660,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:664,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:668,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: 670
      start: 608
    functionDepth: 6
    functionLinenumber: 608
    functionLinenumberEnd: 670
    functionName: add_sample_to_logformat_list
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - free_logformat_node
    - ha_warning
    - sample_parse_expr
    - LIST_APPEND
    - sample_src_names
    - memprintf
    - release_sample_expr
    - parse_logformat_node_args
    - calloc
    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:706,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:711,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:713,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/log.c:722,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:766,1
    - Dst: type_to_smp
      Src: /src/haproxy/src/log.c:771,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:774,1
    - Dst: isalnum
      Src: /src/haproxy/src/log.c:780,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:781,1
    - Dst: isalpha
      Src: /src/haproxy/src/log.c:798,1
    - Dst: isdigit
      Src: /src/haproxy/src/log.c:804,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:809,1
    - Dst: isalnum
      Src: /src/haproxy/src/log.c:832,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:837,1
    - Dst: add_sample_to_logformat_list
      Src: /src/haproxy/src/log.c:846,1
    - Dst: isprint
      Src: /src/haproxy/src/log.c:857,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:858,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:860,1
    - Dst: isalnum
      Src: /src/haproxy/src/log.c:867,1
    - Dst: parse_logformat_alias
      Src: /src/haproxy/src/log.c:892,1
    - Dst: add_to_logformat_list
      Src: /src/haproxy/src/log.c:897,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:906,1
    - Dst: logformat_str_free
      Src: /src/haproxy/src/log.c:909,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:910,1
    - Dst: logformat_str_free
      Src: /src/haproxy/src/log.c:914,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:915,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: 917
      start: 690
    functionDepth: 7
    functionLinenumber: 690
    functionLinenumberEnd: 917
    functionName: lf_expr_compile
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - strdup
    - isalnum
    - add_to_logformat_list
    - add_sample_to_logformat_list
    - strcmp
    - ha_free
    - isprint
    - BUG_ON
    - isalpha
    - isdigit
    - parse_logformat_alias
    - LIST_INIT
    - logformat_str_free
    - memprintf
    - type_to_smp
    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:939,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:941,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:943,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:951,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/log.c:955,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:965,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/log.c:972,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:978,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: 980
      start: 931
    functionDepth: 8
    functionLinenumber: 931
    functionLinenumberEnd: 980
    functionName: parse_logformat_string
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 10
    functionsReached:
    - strdup
    - lf_expr_postcheck
    - lf_expr_compile
    - LIST_APPEND
    - memprintf
    - lf_expr_deinit
    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: 1005
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 1005
    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:1032,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: 1035
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1035
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: _lf_expr_postcheck_node_opt
      Src: /src/haproxy/src/log.c:1062,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:1064,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/log.c:1070,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1073,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/log.c:1077,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1080,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/log.c:1099,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1102,1
    - Dst: struct logformat_node*::alias::config_callback
      Src: /src/haproxy/src/log.c:1105,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1106,1
    - Dst: lf_expr_postcheck_node_opt
      Src: /src/haproxy/src/log.c:1115,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 3
    argNames:
    - lf_expr
    - px
    - err
    argTypes:
    - struct lf_expr*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1052
    functionDepth: 5
    functionLinenumber: 1052
    functionLinenumberEnd: 1122
    functionName: lf_expr_postcheck
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - ha_diag_warning
    - list_for_each_entry
    - proxy_type_str
    - lf_expr_postcheck_node_opt
    - struct logformat_node*::alias::config_callback
    - memprintf
    - _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:1131,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:1132,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/log.c:1133,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:1136,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1142,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1142,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1144,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:1145,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1146,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1125
    functionDepth: 6
    functionLinenumber: 1125
    functionLinenumberEnd: 1150
    functionName: postcheck_logformat_proxy
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_expr_postcheck
    - list_for_each_entry_safe
    - ha_free
    - BUG_ON
    - LIST_DEL_INIT
    - memprintf
    - ha_alert
    - proxy_type_str
    linkageType: ''
    returnType: int
    signature: int postcheck_logformat_proxy(struct proxy *px)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/log.c:1164,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:1166,1
    - Dst: read_uint
      Src: /src/haproxy/src/log.c:1168,1
    - Dst: read_uint
      Src: /src/haproxy/src/log.c:1176,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1187,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: 1189
      start: 1157
    functionDepth: 5
    functionLinenumber: 1157
    functionLinenumberEnd: 1189
    functionName: get_logger_smp_range
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - strlen
    - memprintf
    - read_uint
    - strchr
    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:1204,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: 1210
      start: 1196
    functionDepth: 5
    functionLinenumber: 1196
    functionLinenumberEnd: 1210
    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: 1223
      start: 1212
    functionDepth: 0
    functionLinenumber: 1212
    functionLinenumberEnd: 1223
    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: 1232
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1232
    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:1236,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - target
    argTypes:
    - struct log_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1239
    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:1244,1
    - Dst: init_log_target
      Src: /src/haproxy/src/log.c:1245,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1247,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1253,1
    - Dst: deinit_log_target
      Src: /src/haproxy/src/log.c:1260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - def
    - cpy
    argTypes:
    - struct log_target*
    - struct log_target*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1242
    functionDepth: 2
    functionLinenumber: 1242
    functionLinenumberEnd: 1262
    functionName: dup_log_target
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - strdup
    - BUG_ON
    - malloc
    - init_log_target
    - deinit_log_target
    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:1270,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1271,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1272,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1273,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1274,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/log.c:1277,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/log.c:1278,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/log.c:1279,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1281,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1282,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1283,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/log.c:1286,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1289,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1290,1
    - Dst: stktable_deinit
      Src: /src/haproxy/src/log.c:1293,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1294,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1296,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1297,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1298,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1299,1
    - Dst: free_stick_rules
      Src: /src/haproxy/src/log.c:1302,1
    - Dst: free_stick_rules
      Src: /src/haproxy/src/log.c:1303,1
    - Dst: isttest
      Src: /src/haproxy/src/log.c:1305,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1306,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1307,1
    - Dst: istfree
      Src: /src/haproxy/src/log.c:1310,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1313,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1314,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1317,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:1319,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:1320,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1321,1
    - Dst: free_server_rules
      Src: /src/haproxy/src/log.c:1324,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: ha_alert
      Src: /src/haproxy/src/log.c:1340,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:1340,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1265
    functionDepth: 3
    functionLinenumber: 1265
    functionLinenumberEnd: 1344
    functionName: _postcheck_log_backend_compat
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - free_server_rules
    - ha_warning
    - free_stick_rules
    - istfree
    - ha_free
    - free_act_rules
    - stktable_deinit
    - ha_alert
    - proxy_type_str
    - isttest
    - LIST_ISEMPTY
    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:1357,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1370,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1384,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1386,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/log.c:1390,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1395,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1396,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1398,1
    - Dst: smp_expr_output_type
      Src: /src/haproxy/src/log.c:1409,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1410,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/log.c:1412,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1413,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1416,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:1423,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:1424,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1427,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1429,1
    - Dst: init_log_target
      Src: /src/haproxy/src/log.c:1433,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:1437,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1439,1
    - Dst: ipcpy
      Src: /src/haproxy/src/log.c:1446,1
    - Dst: set_host_port
      Src: /src/haproxy/src/log.c:1447,1
    - Dst: sink_new_from_srv
      Src: /src/haproxy/src/log.c:1454,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1456,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1466,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:1475,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1476,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 91
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1346
    functionDepth: 6
    functionLinenumber: 1346
    functionLinenumberEnd: 1480
    functionName: postcheck_log_backend
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - set_host_port
    - smp_expr_output_type
    - sample_parse_expr
    - ha_free
    - BUG_ON
    - _postcheck_log_backend_compat
    - ipcpy
    - sink_new_from_srv
    - malloc
    - memprintf
    - init_log_target
    - ha_alert
    - release_sample_expr
    - calloc
    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:1503,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/log.c:1508,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1510,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1514,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1517,1
    - Dst: log_profile_find_by_name
      Src: /src/haproxy/src/log.c:1530,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1532,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1533,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1537,1
    - Dst: log_profile_postcheck
      Src: /src/haproxy/src/log.c:1540,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1541,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 3
    argNames:
    - px
    - logger
    - msg
    argTypes:
    - struct proxy*
    - struct logger*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1496
    functionDepth: 8
    functionLinenumber: 1496
    functionLinenumberEnd: 1549
    functionName: resolve_logger
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - log_profile_find_by_name
    - sink_resolve_logger_buffer
    - ha_free
    - proxy_find_by_name
    - memprintf
    - log_profile_postcheck
    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:1561,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1562,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:1563,1
    - Dst: memcpy
      Src: /src/haproxy/src/log.c:1566,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/log.c:1571,1
    - Dst: dup_log_target
      Src: /src/haproxy/src/log.c:1574,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1577,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1582,1
    - Dst: memcpy
      Src: /src/haproxy/src/log.c:1585,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1589,1
    - Dst: free_logger
      Src: /src/haproxy/src/log.c:1600,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 1
    argNames:
    - def
    argTypes:
    - struct logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1557
    functionDepth: 3
    functionLinenumber: 1557
    functionLinenumberEnd: 1602
    functionName: dup_logger
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - strdup
    - unlikely
    - dup_log_target
    - BUG_ON
    - malloc
    - LIST_INIT
    - free_logger
    - memcpy
    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:1613,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/log.c:1613,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1614,1
    - Dst: deinit_log_target
      Src: /src/haproxy/src/log.c:1615,1
    - Dst: free
      Src: /src/haproxy/src/log.c:1616,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1618,1
    - Dst: free
      Src: /src/haproxy/src/log.c:1619,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - logger
    argTypes:
    - struct logger*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1608
    functionDepth: 3
    functionLinenumber: 1608
    functionLinenumberEnd: 1620
    functionName: free_logger
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - ha_free
    - BUG_ON
    - 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:1631,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:1634,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1636,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:1639,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1641,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:1646,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1648,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/log.c:1655,1
    - Dst: set_host_port
      Src: /src/haproxy/src/log.c:1666,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1677,1
    - Dst: deinit_log_target
      Src: /src/haproxy/src/log.c:1683,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 3
    argNames:
    - raw
    - target
    - err
    argTypes:
    - char*
    - struct log_target*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1685
      start: 1625
    functionDepth: 5
    functionLinenumber: 1625
    functionLinenumberEnd: 1685
    functionName: parse_log_target
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - strdup
    - set_host_port
    - strncmp
    - malloc
    - memprintf
    - init_log_target
    - deinit_log_target
    - str2sa_range
    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:1714,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:1719,1
    - Dst: free_logger
      Src: /src/haproxy/src/log.c:1720,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1729,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1731,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:1734,1
    - Dst: dup_logger
      Src: /src/haproxy/src/log.c:1743,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1745,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:1750,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1751,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:1755,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1767,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1773,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1775,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:1778,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1780,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/log.c:1783,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1784,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1792,1
    - Dst: atoi
      Src: /src/haproxy/src/log.c:1793,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1795,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1806,1
    - Dst: get_log_format
      Src: /src/haproxy/src/log.c:1807,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1809,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1815,1
    - Dst: strchr
      Src: /src/haproxy/src/log.c:1821,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1823,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:1829,1
    - Dst: get_logger_smp_range
      Src: /src/haproxy/src/log.c:1832,1
    - Dst: smp_log_ranges_overlap
      Src: /src/haproxy/src/log.c:1835,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/log.c:1838,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1840,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1853,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:1858,1
    - Dst: read_uint
      Src: /src/haproxy/src/log.c:1859,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1861,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1867,1
    - Dst: qsort
      Src: /src/haproxy/src/log.c:1875,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:1884,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1889,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:1892,1
    - Dst: get_log_facility
      Src: /src/haproxy/src/log.c:1897,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1899,1
    - Dst: get_log_level
      Src: /src/haproxy/src/log.c:1907,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1909,1
    - Dst: get_log_level
      Src: /src/haproxy/src/log.c:1918,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1920,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:1928,1
    - Dst: parse_log_target
      Src: /src/haproxy/src/log.c:1933,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:1937,1
    - Dst: free
      Src: /src/haproxy/src/log.c:1941,1
    - Dst: free_logger
      Src: /src/haproxy/src/log.c:1942,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: 1944
      start: 1700
    functionDepth: 6
    functionLinenumber: 1700
    functionLinenumberEnd: 1944
    functionName: parse_logger
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 3
    functionsReached:
    - smp_log_ranges_overlap
    - atoi
    - my_realloc2
    - get_log_facility
    - strcmp
    - ha_free
    - strlen
    - LIST_INIT
    - calloc
    - strdup
    - qsort
    - LIST_DEL_INIT
    - read_uint
    - LIST_APPEND
    - parse_log_target
    - get_log_level
    - memprintf
    - free_logger
    - get_logger_smp_range
    - list_for_each_entry
    - free
    - strchr
    - dup_logger
    - get_log_format
    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:1719,1
    - Dst: free_logger
      Src: /src/haproxy/src/log.c:1720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1718
    functionDepth: 4
    functionLinenumber: 1718
    functionLinenumberEnd: 1721
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 44
    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: 1740
      start: 1737
    functionDepth: 0
    functionLinenumber: 1737
    functionLinenumberEnd: 1740
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 145
    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:1956,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1950
    functionDepth: 0
    functionLinenumber: 1950
    functionLinenumberEnd: 1961
    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:1971,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - lev
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1975
      start: 1966
    functionDepth: 0
    functionLinenumber: 1966
    functionLinenumberEnd: 1975
    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:1985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fac
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1980
    functionDepth: 0
    functionLinenumber: 1980
    functionLinenumberEnd: 1989
    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: 2015
      start: 2007
    functionDepth: 0
    functionLinenumber: 2007
    functionLinenumberEnd: 2015
    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:2030,1
    - Dst: _encode_byte_hex
      Src: /src/haproxy/src/log.c:2040,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: 2041
      start: 2025
    functionDepth: 1
    functionLinenumber: 2025
    functionLinenumberEnd: 2041
    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: 2065
      start: 2046
    functionDepth: 0
    functionLinenumber: 2046
    functionLinenumberEnd: 2065
    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: 2080
      start: 2070
    functionDepth: 0
    functionLinenumber: 2070
    functionLinenumberEnd: 2080
    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:2096,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: 2101
      start: 2085
    functionDepth: 2
    functionLinenumber: 2085
    functionLinenumberEnd: 2101
    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:2117,1
    - Dst: _lf_escape_byte
      Src: /src/haproxy/src/log.c:2120,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: 2123
      start: 2111
    functionDepth: 1
    functionLinenumber: 2111
    functionLinenumberEnd: 2123
    functionName: _lf_map_escape_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _lf_escape_byte
    - ha_bit_test
    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:2146,1
    - Dst: cbor_encode_bytes_prefix
      Src: /src/haproxy/src/log.c:2152,1
    - Dst: _lf_cbor_escape_byte
      Src: /src/haproxy/src/log.c:2161,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: 2167
      start: 2134
    functionDepth: 3
    functionLinenumber: 2134
    functionLinenumberEnd: 2167
    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:2184,1
    - Dst: ha_bit_test
      Src: /src/haproxy/src/log.c:2185,1
    - Dst: _lf_escape_byte
      Src: /src/haproxy/src/log.c:2195,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: 2198
      start: 2178
    functionDepth: 1
    functionLinenumber: 2178
    functionLinenumberEnd: 2198
    functionName: _lf_rfc5424_escape_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _lf_escape_byte
    - ha_bit_test
    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:2215,1
    - Dst: ha_bit_test
      Src: /src/haproxy/src/log.c:2216,1
    - Dst: _lf_escape_byte
      Src: /src/haproxy/src/log.c:2226,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: 2229
      start: 2209
    functionDepth: 1
    functionLinenumber: 2209
    functionLinenumberEnd: 2229
    functionName: _lf_json_escape_byte
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _lf_escape_byte
    - ha_bit_test
    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:2288,1
    - Dst: encode_byte
      Src: /src/haproxy/src/log.c:2300,1
    - Dst: encode_byte
      Src: /src/haproxy/src/log.c:2310,1
    - Dst: cbor_encode_bytes_prefix
      Src: /src/haproxy/src/log.c:2323,1
    - Dst: _lf_cbor_encode_byte
      Src: /src/haproxy/src/log.c:2331,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: 2342
      start: 2249
    functionDepth: 2
    functionLinenumber: 2249
    functionLinenumberEnd: 2342
    functionName: _lf_encode_bytes
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _lf_cbor_encode_byte
    - cbor_encode_bytes_prefix
    - 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:2352,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: 2354
      start: 2347
    functionDepth: 3
    functionLinenumber: 2347
    functionLinenumberEnd: 2354
    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:2364,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: 2367
      start: 2359
    functionDepth: 3
    functionLinenumber: 2359
    functionLinenumberEnd: 2367
    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:2398,1
    - Dst: cbor_encode_text
      Src: /src/haproxy/src/log.c:2400,1
    - Dst: escape_string
      Src: /src/haproxy/src/log.c:2412,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:2420,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: 2431
      start: 2380
    functionDepth: 3
    functionLinenumber: 2380
    functionLinenumberEnd: 2431
    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:2448,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: 2461
      start: 2436
    functionDepth: 4
    functionLinenumber: 2436
    functionLinenumberEnd: 2461
    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:2474,1
    - Dst: _lf_text_len
      Src: /src/haproxy/src/log.c:2476,1
    - Dst: _lf_text_len
      Src: /src/haproxy/src/log.c:2487,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: 2488
      start: 2469
    functionDepth: 5
    functionLinenumber: 2469
    functionLinenumberEnd: 2488
    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:2498,1
    - Dst: _lf_text_len
      Src: /src/haproxy/src/log.c:2499,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: 2500
      start: 2494
    functionDepth: 5
    functionLinenumber: 2494
    functionLinenumberEnd: 2500
    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:2505,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: 2506
      start: 2503
    functionDepth: 6
    functionLinenumber: 2503
    functionLinenumberEnd: 2506
    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:2511,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: 2512
      start: 2509
    functionDepth: 6
    functionLinenumber: 2509
    functionLinenumberEnd: 2512
    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:2530,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:2534,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2541,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:2549,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/log.c:2557,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:2558,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: 2561
      start: 2518
    functionDepth: 7
    functionLinenumber: 2518
    functionLinenumberEnd: 2561
    functionName: lf_ip
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - snprintf
    - lf_text
    - lf_rawtext
    - addr_to_str
    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:2576,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2578,1
    - Dst: _lf_cbor_encode_byte
      Src: /src/haproxy/src/log.c:2587,1
    - Dst: _lf_cbor_encode_byte
      Src: /src/haproxy/src/log.c:2588,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: 2592
      start: 2566
    functionDepth: 2
    functionLinenumber: 2566
    functionLinenumberEnd: 2592
    functionName: lf_bool_encode
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - snprintf
    - _lf_cbor_encode_byte
    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:2602,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2614,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:2618,1
    - Dst: cbor_encode_int64
      Src: /src/haproxy/src/log.c:2631,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: 2635
      start: 2597
    functionDepth: 3
    functionLinenumber: 2597
    functionLinenumberEnd: 2635
    functionName: lf_int_encode
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_bool_encode
    - cbor_encode_int64
    - 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:2653,1
    - Dst: ltoa_o
      Src: /src/haproxy/src/log.c:2657,1
    - Dst: lltoa
      Src: /src/haproxy/src/log.c:2659,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/log.c:2661,1
    - Dst: utoa_pad
      Src: /src/haproxy/src/log.c:2666,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: 2670
      start: 2648
    functionDepth: 4
    functionLinenumber: 2648
    functionLinenumberEnd: 2670
    functionName: lf_int
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lltoa
    - lf_int_encode
    - ltoa_o
    - ultoa_o
    - utoa_pad
    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:2684,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:2687,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:2689,1
    - Dst: get_host_port
      Src: /src/haproxy/src/log.c:2689,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: 2693
      start: 2676
    functionDepth: 7
    functionLinenumber: 2676
    functionLinenumberEnd: 2693
    functionName: lf_port
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - snprintf
    - lf_rawtext
    - get_host_port
    - lf_int
    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:2738,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:2743,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/log.c:2749,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:2750,1
    - Dst: socket
      Src: /src/haproxy/src/log.c:2751,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:2756,1
    - Dst: strerror
      Src: /src/haproxy/src/log.c:2757,1
    - Dst: setsockopt
      Src: /src/haproxy/src/log.c:2762,1
    - Dst: setsockopt
      Src: /src/haproxy/src/log.c:2765,1
    - Dst: shutdown
      Src: /src/haproxy/src/log.c:2767,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/log.c:2768,1
    - Dst: build_log_header
      Src: /src/haproxy/src/log.c:2772,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:2778,1
    - Dst: sink_write
      Src: /src/haproxy/src/log.c:2785,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:2790,1
    - Dst: fd_write_frag_line
      Src: /src/haproxy/src/log.c:2792,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:2822,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/log.c:2824,1
    - Dst: sendmsg
      Src: /src/haproxy/src/log.c:2826,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:2833,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:2836,1
    - Dst: strerror
      Src: /src/haproxy/src/log.c:2837,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: 2840
      start: 2705
    functionDepth: 3
    functionLinenumber: 2705
    functionLinenumberEnd: 2840
    functionName: __do_send_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - sink_write
    - build_log_header
    - unlikely
    - _HA_ATOMIC_INC
    - shutdown
    - BUG_ON
    - socket
    - ist2
    - real_family
    - protocol_lookup
    - strerror
    - setsockopt
    - ha_alert
    - sendmsg
    - fd_write_frag_line
    - fd_set_cloexec
    - get_addr_len
    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:2855,1
    - Dst: ss_get_server
      Src: /src/haproxy/src/log.c:2862,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/log.c:2867,1
    - Dst: chash_get_server_hash
      Src: /src/haproxy/src/log.c:2868,1
    - Dst: memset
      Src: /src/haproxy/src/log.c:2874,1
    - Dst: sample_process_cnv
      Src: /src/haproxy/src/log.c:2879,1
    - Dst: gen_hash
      Src: /src/haproxy/src/log.c:2885,1
    - Dst: map_get_server_hash
      Src: /src/haproxy/src/log.c:2886,1
    - Dst: __do_send_log
      Src: /src/haproxy/src/log.c:2896,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:2900,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: 2901
      start: 2846
    functionDepth: 4
    functionLinenumber: 2846
    functionLinenumberEnd: 2901
    functionName: __do_send_log_backend
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - memset
    - chash_get_server_hash
    - map_get_server_hash
    - statistical_prng
    - __do_send_log
    - gen_hash
    - ss_get_server
    - sample_process_cnv
    - _HA_ATOMIC_INC
    - fwrr_get_next_server
    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:2905,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: 2910
      start: 2903
    functionDepth: 1
    functionLinenumber: 2903
    functionLinenumberEnd: 2910
    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:2926,1
    - Dst: __do_send_log
      Src: /src/haproxy/src/log.c:2930,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: 2932
      start: 2919
    functionDepth: 5
    functionLinenumber: 2919
    functionLinenumberEnd: 2932
    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: 24
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:2945,1
    - Dst: b_is_null
      Src: /src/haproxy/src/log.c:2947,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:2948,1
    - Dst: container_of_safe
      Src: /src/haproxy/src/log.c:2993,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/log.c:2993,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:3011,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:3012,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:3020,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:3023,1
    - Dst: __send_log_set_metadata_sd
      Src: /src/haproxy/src/log.c:3027,1
    - Dst: _process_send_log_final
      Src: /src/haproxy/src/log.c:3031,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 64
    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: 3037
      start: 2934
    functionDepth: 6
    functionLinenumber: 2934
    functionLinenumberEnd: 3037
    functionName: _process_send_log_override
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - __send_log_set_metadata_sd
    - eb32_lookup
    - b_is_null
    - lf_expr_isempty
    - BUG_ON
    - ist2
    - _process_send_log_final
    - sess_build_logline_orig
    - container_of_safe
    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:3067,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/log.c:3085,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/log.c:3086,1
    - Dst: MAX
      Src: /src/haproxy/src/log.c:3091,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:3099,1
    - Dst: _process_send_log_override
      Src: /src/haproxy/src/log.c:3100,1
    - Dst: _process_send_log_final
      Src: /src/haproxy/src/log.c:3102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    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: 3105
      start: 3046
    functionDepth: 7
    functionLinenumber: 3046
    functionLinenumberEnd: 3105
    functionName: process_send_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - _process_send_log_override
    - unlikely
    - __ha_cpu_relax
    - _process_send_log_final
    - MAX
    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:3067,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/log.c:3085,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/log.c:3086,1
    - Dst: MAX
      Src: /src/haproxy/src/log.c:3091,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:3099,1
    - Dst: _process_send_log_override
      Src: /src/haproxy/src/log.c:3100,1
    - Dst: _process_send_log_final
      Src: /src/haproxy/src/log.c:3102,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3104
      start: 3055
    functionDepth: 7
    functionLinenumber: 3055
    functionLinenumberEnd: 3104
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 145
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - _process_send_log_override
    - unlikely
    - __ha_cpu_relax
    - _process_send_log_final
    - MAX
    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:3122,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:3126,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:3131,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3138,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:3140,1
    - Dst: getpid
      Src: /src/haproxy/src/log.c:3140,1
    - Dst: getpid
      Src: /src/haproxy/src/log.c:3144,1
    - Dst: ltoa_o
      Src: /src/haproxy/src/log.c:3145,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3146,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:3146,1
    - Dst: __send_log_set_metadata_sd
      Src: /src/haproxy/src/log.c:3149,1
    - Dst: process_send_log
      Src: /src/haproxy/src/log.c:3151,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: 3152
      start: 3113
    functionDepth: 8
    functionLinenumber: 3113
    functionLinenumberEnd: 3152
    functionName: __send_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - getpid
    - __send_log_set_metadata_sd
    - unlikely
    - ltoa_o
    - ist2
    - strlen
    - process_send_log
    - LIST_ISEMPTY
    - ist
    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:3166,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/log.c:3167,1
    - Dst: va_end
      Src: /src/haproxy/src/log.c:3170,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:3172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - p
    - level
    - format
    argTypes:
    - struct proxy*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3175
      start: 3158
    functionDepth: 9
    functionLinenumber: 3158
    functionLinenumberEnd: 3175
    functionName: send_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 41
    functionsReached:
    - vsnprintf
    - __send_log
    - va_end
    - va_start
    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:3272,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3283,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:3299,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3308,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3310,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3311,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:3319,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:3321,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:3323,1
    - Dst: likely
      Src: /src/haproxy/src/log.c:3332,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3333,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3335,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3339,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3343,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3356,1
    - Dst: memcmp
      Src: /src/haproxy/src/log.c:3365,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:3371,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:3378,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3389,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3391,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3394,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3401,1
    - Dst: timeofday_as_iso_us
      Src: /src/haproxy/src/log.c:3401,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/log.c:3409,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3417,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3420,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3428,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3430,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3432,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3437,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3440,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3444,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3447,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:3458,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3461,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3465,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:3468,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/log.c:3478,1
    CyclomaticComplexity: 65
    EdgeCount: 65
    ICount: 180
    argCount: 2
    argNames:
    - hdr
    - nbelem
    argTypes:
    - struct log_header
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3482
      start: 3189
    functionDepth: 2
    functionLinenumber: 3189
    functionLinenumberEnd: 3482
    functionName: build_log_header
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 2
    functionsReached:
    - timeofday_as_iso_us
    - unlikely
    - snprintf
    - memcmp
    - ist2
    - likely
    - get_localtime
    - ABORT_NOW
    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: 3196
      start: 3191
    functionDepth: 0
    functionLinenumber: 3191
    functionLinenumberEnd: 3196
    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: 3500
      start: 3491
    functionDepth: 0
    functionLinenumber: 3491
    functionLinenumberEnd: 3500
    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: 3511
      start: 3504
    functionDepth: 0
    functionLinenumber: 3504
    functionLinenumberEnd: 3511
    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: 3536
      start: 3533
    functionDepth: 0
    functionLinenumber: 3533
    functionLinenumberEnd: 3536
    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: 3559
      start: 3554
    functionDepth: 0
    functionLinenumber: 3554
    functionLinenumberEnd: 3559
    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: 3588
      start: 3584
    functionDepth: 0
    functionLinenumber: 3584
    functionLinenumberEnd: 3588
    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: 3604
      start: 3594
    functionDepth: 0
    functionLinenumber: 3594
    functionLinenumberEnd: 3604
    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: 3610
      start: 3606
    functionDepth: 0
    functionLinenumber: 3606
    functionLinenumberEnd: 3610
    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:3706,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/log.c:3707,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:3710,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/log.c:3711,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/log.c:3712,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3717
      start: 3704
    functionDepth: 1
    functionLinenumber: 3704
    functionLinenumberEnd: 3717
    functionName: init_log_buffers
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - my_realloc2
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int init_log_buffers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/src/log.c:3722,1
    - Dst: free
      Src: /src/haproxy/src/log.c:3723,1
    - Dst: free
      Src: /src/haproxy/src/log.c:3724,1
    - Dst: free
      Src: /src/haproxy/src/log.c:3725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3730
      start: 3720
    functionDepth: 3
    functionLinenumber: 3720
    functionLinenumberEnd: 3730
    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: free_proxy
      Src: /src/haproxy/src/log.c:3742,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3744
      start: 3733
    functionDepth: 1
    functionLinenumber: 3733
    functionLinenumberEnd: 3744
    functionName: deinit_log_forward
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - free_proxy
    linkageType: ''
    returnType: void
    signature: void deinit_log_forward()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: release_sample_expr
      Src: /src/haproxy/src/log.c:3752,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:3754,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:3755,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:3756,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct logformat_node*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3757
      start: 3747
    functionDepth: 1
    functionLinenumber: 3747
    functionLinenumberEnd: 3757
    functionName: free_logformat_node
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 2
    functionsReached:
    - release_sample_expr
    - ha_free
    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:3764,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/log.c:3768,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:3769,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3771
      start: 3760
    functionDepth: 2
    functionLinenumber: 3760
    functionLinenumberEnd: 3771
    functionName: free_logformat_list
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - free_logformat_node
    - LIST_ISEMPTY
    - LIST_DELETE
    linkageType: ''
    returnType: void
    signature: void free_logformat_list(struct list *fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/log.c:3768,1
    - Dst: free_logformat_node
      Src: /src/haproxy/src/log.c:3769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3770
      start: 3767
    functionDepth: 2
    functionLinenumber: 3767
    functionLinenumberEnd: 3770
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 44
    functionsReached:
    - free_logformat_node
    - LIST_DELETE
    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:3776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3781
      start: 3774
    functionDepth: 1
    functionLinenumber: 3774
    functionLinenumberEnd: 3781
    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:3787,1
    - Dst: logformat_str_free
      Src: /src/haproxy/src/log.c:3789,1
    - Dst: free
      Src: /src/haproxy/src/log.c:3790,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:3792,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/log.c:3794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3795
      start: 3784
    functionDepth: 3
    functionLinenumber: 3784
    functionLinenumberEnd: 3795
    functionName: lf_expr_deinit
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 11
    functionsReached:
    - lf_expr_init
    - LIST_DEL_INIT
    - free
    - logformat_str_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:3805,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:3807,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/log.c:3814,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/log.c:3816,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/log.c:3817,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:3818,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/log.c:3824,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:3825,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/log.c:3828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct lf_expr*
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3829
      start: 3800
    functionDepth: 4
    functionLinenumber: 3800
    functionLinenumberEnd: 3829
    functionName: lf_expr_xfer
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - LIST_DELETE
    - LIST_INSERT
    - lf_expr_init
    - list_for_each_entry_safe
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_APPEND
    - LIST_INIT
    - lf_expr_deinit
    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:3837,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:3838,1
    - Dst: logformat_str_dup
      Src: /src/haproxy/src/log.c:3840,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:3845,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:3854,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - orig
    - dest
    argTypes:
    - struct lf_expr*
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3856
      start: 3835
    functionDepth: 4
    functionLinenumber: 3835
    functionLinenumberEnd: 3856
    functionName: lf_expr_dup
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - strdup
    - lf_expr_deinit
    - logformat_str_dup
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int lf_expr_dup(const struct lf_expr *orig, struct lf_expr *dest)
  - BBCount: 250
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/log.c:3902,1
    - Dst: sc_conn
      Src: /src/haproxy/src/log.c:3905,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:3918,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:3918,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:3920,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:3921,1
    - Dst: sc_conn
      Src: /src/haproxy/src/log.c:3921,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:3921,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/log.c:3924,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/log.c:3935,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/log.c:3944,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/log.c:3951,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/log.c:3976,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:3984,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:3987,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:3991,1
    - Dst: LOG_CBOR_BYTE
      Src: /src/haproxy/src/log.c:3994,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4015,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:4027,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:4041,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4048,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4049,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4054,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:4055,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4059,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4060,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4061,1
    - Dst: cbor_encode_text
      Src: /src/haproxy/src/log.c:4064,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4066,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:4079,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4087,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4090,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4093,1
    - Dst: sample_convert
      Src: /src/haproxy/src/log.c:4139,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4142,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4146,1
    - Dst: lf_int_encode
      Src: /src/haproxy/src/log.c:4151,1
    - Dst: lf_bool_encode
      Src: /src/haproxy/src/log.c:4154,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4157,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:4170,1
    - Dst: sc_src
      Src: /src/haproxy/src/log.c:4175,1
    - Dst: sess_src
      Src: /src/haproxy/src/log.c:4175,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4177,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4179,1
    - Dst: sc_src
      Src: /src/haproxy/src/log.c:4187,1
    - Dst: sess_src
      Src: /src/haproxy/src/log.c:4187,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:4190,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4191,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4194,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4197,1
    - Dst: sc_dst
      Src: /src/haproxy/src/log.c:4205,1
    - Dst: sess_dst
      Src: /src/haproxy/src/log.c:4205,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4207,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4209,1
    - Dst: sc_dst
      Src: /src/haproxy/src/log.c:4217,1
    - Dst: sess_dst
      Src: /src/haproxy/src/log.c:4217,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:4220,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4221,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4224,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4227,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:4235,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4236,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4238,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:4246,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4247,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4249,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/log.c:4257,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4258,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4260,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/log.c:4268,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4269,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4271,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4282,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4284,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4286,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4289,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4301,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4302,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4304,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4306,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4309,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/log.c:4320,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4322,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4324,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4327,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4338,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/log.c:4339,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4341,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4343,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4346,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4357,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4359,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4362,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4365,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4377,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4378,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4380,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4382,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4385,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:4397,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4400,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4402,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:4415,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4418,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4420,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4431,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4439,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4440,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4447,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:4452,1
    - Dst: ssl_sock_get_cipher_name
      Src: /src/haproxy/src/log.c:4454,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4456,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:4464,1
    - Dst: ssl_sock_get_proto_version
      Src: /src/haproxy/src/log.c:4466,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4468,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4476,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:4483,1
    - Dst: __objt_server
      Src: /src/haproxy/src/log.c:4485,1
    - Dst: __objt_applet
      Src: /src/haproxy/src/log.c:4488,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4491,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4492,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4499,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4506,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4513,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4523,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4531,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4541,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4552,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4563,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4579,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4592,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4593,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4602,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4603,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4614,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4615,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4623,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4631,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4632,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4639,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4647,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4655,1
    - Dst: lf_rawtext_len
      Src: /src/haproxy/src/log.c:4665,1
    - Dst: lf_rawtext_len
      Src: /src/haproxy/src/log.c:4678,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4686,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4693,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4700,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:4710,1
    - Dst: __objt_server
      Src: /src/haproxy/src/log.c:4712,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4715,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4716,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4724,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4737,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4738,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4746,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4754,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4764,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4765,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4768,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4770,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4777,1
    - Dst: LOG_STRARRAY_START
      Src: /src/haproxy/src/log.c:4784,1
    - Dst: LOG_STRARRAY_NEXT
      Src: /src/haproxy/src/log.c:4787,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4788,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4790,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4796,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:4800,1
    - Dst: LOG_STRARRAY_END
      Src: /src/haproxy/src/log.c:4802,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4810,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4811,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4814,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4816,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4823,1
    - Dst: LOG_STRARRAY_START
      Src: /src/haproxy/src/log.c:4830,1
    - Dst: LOG_STRARRAY_NEXT
      Src: /src/haproxy/src/log.c:4833,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4834,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4836,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4842,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:4846,1
    - Dst: LOG_STRARRAY_END
      Src: /src/haproxy/src/log.c:4848,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4854,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4856,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4866,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4868,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4870,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4874,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4880,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4885,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4891,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4902,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4904,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4907,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4911,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4917,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:4920,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/log.c:4923,1
    - Dst: iststop
      Src: /src/haproxy/src/log.c:4924,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/log.c:4924,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4927,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4933,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4942,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4946,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4949,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4956,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4963,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4974,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4976,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4978,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4982,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4988,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4993,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4999,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5009,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5011,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5014,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5019,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5025,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5035,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5037,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5039,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5043,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5048,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5052,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5057,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5060,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5066,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5076,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5079,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5081,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5090,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5093,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5095,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:5105,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5113,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5116,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5118,1
    - Dst: isttest
      Src: /src/haproxy/src/log.c:5129,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5129,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/log.c:5130,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:5132,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:5135,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:5142,1
    - Dst: log_orig_to_str
      Src: /src/haproxy/src/log.c:5142,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5157,1
    - Dst: LOG_CBOR_BYTE
      Src: /src/haproxy/src/log.c:5166,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:5174,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:5187,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:5190,1
    - Dst: LOG_CBOR_BYTE
      Src: /src/haproxy/src/log.c:5193,1
    CyclomaticComplexity: 432
    EdgeCount: 432
    ICount: 1016
    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: 5201
      start: 3864
    functionDepth: 8
    functionLinenumber: 3864
    functionLinenumberEnd: 5201
    functionName: sess_build_logline_orig
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - sc_conn
    - sess_src
    - obj_type
    - lf_text_len
    - conn_xprt_read0_pending
    - LOG_VARTEXT_END
    - LOG_STRARRAY_START
    - __objt_check
    - lf_int_encode
    - sample_convert
    - lf_ip
    - sc_src
    - log_orig_to_str
    - conn_get_src
    - stream_generate_unique_id
    - LOG_CBOR_BYTE
    - LOG_VARTEXT_START
    - HTTP_IS_SPHT
    - localdate2str_log
    - lf_encode_chunk
    - lf_port
    - objt_conn
    - tv_ms_add
    - lf_buildctx_prepare
    - snprintf
    - ns_to_ms
    - LOGMETACHAR
    - lf_rawtext
    - gmt2str_log
    - conn_get_dst
    - strlen
    - ist2
    - isttest
    - iststop
    - LOG_STRARRAY_NEXT
    - likely
    - sample_process
    - lf_encode_string
    - get_gmtime
    - lf_text
    - ssl_sock_get_proto_version
    - __objt_server
    - http_parse_path
    - lf_expr_isempty
    - struct connection*::mux::ctl
    - BUG_ON
    - sc_dst
    - http_uri_parser_init
    - strlcpy2
    - real_family
    - lf_int
    - lf_bool_encode
    - _HA_ATOMIC_FETCH_ADD
    - date2str_log
    - ssl_sock_get_cipher_name
    - cbor_encode_text
    - LOGCHAR
    - LOG_STRARRAY_END
    - lf_rawtext_len
    - get_localtime
    - sess_dst
    - __objt_applet
    linkageType: ''
    returnType: int
    signature: "int sess_build_logline_orig(struct session *sess, struct stream *s,\n
      \                           char *dst, size_t maxsize, struct lf_expr *lf_expr,\n
      \                           struct log_orig log_orig)"
  - BBCount: 235
    BranchProfiles: []
    Callsites:
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4015,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:4027,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:4041,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4048,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4049,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4054,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/log.c:4055,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4059,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4060,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4061,1
    - Dst: cbor_encode_text
      Src: /src/haproxy/src/log.c:4064,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4066,1
    - Dst: lf_buildctx_prepare
      Src: /src/haproxy/src/log.c:4079,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4087,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4090,1
    - Dst: sample_process
      Src: /src/haproxy/src/log.c:4093,1
    - Dst: sample_convert
      Src: /src/haproxy/src/log.c:4139,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4142,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4146,1
    - Dst: lf_int_encode
      Src: /src/haproxy/src/log.c:4151,1
    - Dst: lf_bool_encode
      Src: /src/haproxy/src/log.c:4154,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4157,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:4170,1
    - Dst: sc_src
      Src: /src/haproxy/src/log.c:4175,1
    - Dst: sess_src
      Src: /src/haproxy/src/log.c:4175,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4177,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4179,1
    - Dst: sc_src
      Src: /src/haproxy/src/log.c:4187,1
    - Dst: sess_src
      Src: /src/haproxy/src/log.c:4187,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:4190,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4191,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4194,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4197,1
    - Dst: sc_dst
      Src: /src/haproxy/src/log.c:4205,1
    - Dst: sess_dst
      Src: /src/haproxy/src/log.c:4205,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4207,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4209,1
    - Dst: sc_dst
      Src: /src/haproxy/src/log.c:4217,1
    - Dst: sess_dst
      Src: /src/haproxy/src/log.c:4217,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:4220,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4221,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4224,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4227,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:4235,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4236,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4238,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:4246,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4247,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4249,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/log.c:4257,1
    - Dst: lf_ip
      Src: /src/haproxy/src/log.c:4258,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4260,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/log.c:4268,1
    - Dst: lf_port
      Src: /src/haproxy/src/log.c:4269,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:4271,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4282,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4284,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4286,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4289,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4301,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4302,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4304,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4306,1
    - Dst: date2str_log
      Src: /src/haproxy/src/log.c:4309,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/log.c:4320,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4322,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4324,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4327,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4338,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/log.c:4339,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4341,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4343,1
    - Dst: gmt2str_log
      Src: /src/haproxy/src/log.c:4346,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4357,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4359,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4362,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4365,1
    - Dst: tv_ms_add
      Src: /src/haproxy/src/log.c:4377,1
    - Dst: get_localtime
      Src: /src/haproxy/src/log.c:4378,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4380,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4382,1
    - Dst: localdate2str_log
      Src: /src/haproxy/src/log.c:4385,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:4397,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4400,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4402,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:4415,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4418,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4420,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4431,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4439,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:4440,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4447,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:4452,1
    - Dst: ssl_sock_get_cipher_name
      Src: /src/haproxy/src/log.c:4454,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4456,1
    - Dst: objt_conn
      Src: /src/haproxy/src/log.c:4464,1
    - Dst: ssl_sock_get_proto_version
      Src: /src/haproxy/src/log.c:4466,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4468,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4476,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:4483,1
    - Dst: __objt_server
      Src: /src/haproxy/src/log.c:4485,1
    - Dst: __objt_applet
      Src: /src/haproxy/src/log.c:4488,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4491,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4492,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4499,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4506,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4513,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4523,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4531,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4541,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4552,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4563,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4579,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4592,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4593,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4602,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4603,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4614,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4615,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4623,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4631,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4632,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4639,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4647,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:4655,1
    - Dst: lf_rawtext_len
      Src: /src/haproxy/src/log.c:4665,1
    - Dst: lf_rawtext_len
      Src: /src/haproxy/src/log.c:4678,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4686,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4693,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4700,1
    - Dst: obj_type
      Src: /src/haproxy/src/log.c:4710,1
    - Dst: __objt_server
      Src: /src/haproxy/src/log.c:4712,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4715,1
    - Dst: __objt_check
      Src: /src/haproxy/src/log.c:4716,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4724,1
    - Dst: LOGMETACHAR
      Src: /src/haproxy/src/log.c:4737,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4738,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4746,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:4754,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4764,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4765,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4768,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4770,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4777,1
    - Dst: LOG_STRARRAY_START
      Src: /src/haproxy/src/log.c:4784,1
    - Dst: LOG_STRARRAY_NEXT
      Src: /src/haproxy/src/log.c:4787,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4788,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4790,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4796,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:4800,1
    - Dst: LOG_STRARRAY_END
      Src: /src/haproxy/src/log.c:4802,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4810,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4811,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4814,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4816,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4823,1
    - Dst: LOG_STRARRAY_START
      Src: /src/haproxy/src/log.c:4830,1
    - Dst: LOG_STRARRAY_NEXT
      Src: /src/haproxy/src/log.c:4833,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4834,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4836,1
    - Dst: LOGCHAR
      Src: /src/haproxy/src/log.c:4842,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:4846,1
    - Dst: LOG_STRARRAY_END
      Src: /src/haproxy/src/log.c:4848,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4854,1
    - Dst: lf_encode_string
      Src: /src/haproxy/src/log.c:4856,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4866,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4868,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4870,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4874,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4880,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4885,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4891,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4902,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4904,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4907,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4911,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4917,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:4920,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/log.c:4923,1
    - Dst: iststop
      Src: /src/haproxy/src/log.c:4924,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/log.c:4924,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4927,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4933,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4942,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4946,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4949,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4956,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4963,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:4974,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4976,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4978,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4982,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:4988,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:4993,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:4999,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5009,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5011,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5014,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5019,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5025,1
    - Dst: LOG_VARTEXT_START
      Src: /src/haproxy/src/log.c:5035,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5037,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5039,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5043,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5048,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/log.c:5052,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5057,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:5060,1
    - Dst: lf_encode_chunk
      Src: /src/haproxy/src/log.c:5066,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5076,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5079,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5081,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5090,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5093,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5095,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:5105,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5113,1
    - Dst: lf_rawtext
      Src: /src/haproxy/src/log.c:5116,1
    - Dst: lf_int
      Src: /src/haproxy/src/log.c:5118,1
    - Dst: isttest
      Src: /src/haproxy/src/log.c:5129,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5129,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/log.c:5130,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:5132,1
    - Dst: lf_text_len
      Src: /src/haproxy/src/log.c:5135,1
    - Dst: lf_text
      Src: /src/haproxy/src/log.c:5142,1
    - Dst: log_orig_to_str
      Src: /src/haproxy/src/log.c:5142,1
    - Dst: snprintf
      Src: /src/haproxy/src/log.c:5157,1
    - Dst: LOG_CBOR_BYTE
      Src: /src/haproxy/src/log.c:5166,1
    - Dst: LOG_VARTEXT_END
      Src: /src/haproxy/src/log.c:5174,1
    CyclomaticComplexity: 411
    EdgeCount: 411
    ICount: 935
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5182
      start: 3997
    functionDepth: 8
    functionLinenumber: 3997
    functionLinenumberEnd: 5182
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 145
    functionsReached:
    - sess_src
    - HTTP_IS_SPHT
    - lf_text_len
    - obj_type
    - LOG_VARTEXT_END
    - LOG_STRARRAY_START
    - __objt_check
    - lf_int_encode
    - sample_convert
    - lf_ip
    - sc_src
    - log_orig_to_str
    - conn_get_src
    - stream_generate_unique_id
    - LOG_CBOR_BYTE
    - LOG_VARTEXT_START
    - localdate2str_log
    - lf_encode_chunk
    - lf_port
    - tv_ms_add
    - objt_conn
    - lf_buildctx_prepare
    - snprintf
    - LOGMETACHAR
    - lf_rawtext
    - gmt2str_log
    - conn_get_dst
    - strlen
    - ist2
    - isttest
    - iststop
    - LOG_STRARRAY_NEXT
    - sample_process
    - lf_encode_string
    - get_gmtime
    - lf_text
    - ssl_sock_get_proto_version
    - __objt_server
    - http_parse_path
    - lf_expr_isempty
    - sc_dst
    - BUG_ON
    - http_uri_parser_init
    - strlcpy2
    - real_family
    - lf_int
    - lf_bool_encode
    - date2str_log
    - ssl_sock_get_cipher_name
    - cbor_encode_text
    - LOGCHAR
    - LOG_STRARRAY_END
    - lf_rawtext_len
    - get_localtime
    - sess_dst
    - __objt_applet
    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:5218,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5238,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5239,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5243,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:5248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - sess
    - s
    - origin
    argTypes:
    - struct session*
    - struct stream*
    - struct log_orig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5250
      start: 5211
    functionDepth: 9
    functionLinenumber: 5211
    functionLinenumberEnd: 5250
    functionName: do_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - sess_build_logline_orig
    - LIST_ISEMPTY
    - lf_expr_isempty
    - __send_log
    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:5273,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5289,1
    - Dst: build_logline_orig
      Src: /src/haproxy/src/log.c:5290,1
    - Dst: build_logline_orig
      Src: /src/haproxy/src/log.c:5294,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:5296,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:5300,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 2
    argNames:
    - s
    - origin
    argTypes:
    - struct stream*
    - struct log_orig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5303
      start: 5256
    functionDepth: 9
    functionLinenumber: 5256
    functionLinenumberEnd: 5303
    functionName: strm_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - build_logline_orig
    - __send_log
    - lf_expr_isempty
    - _HA_ATOMIC_INC
    - LIST_ISEMPTY
    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:5329,1
    - Dst: log_orig
      Src: /src/haproxy/src/log.c:5331,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/log.c:5333,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5340,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5341,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:5347,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5348,1
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/src/log.c:5352,1
    - Dst: b_make
      Src: /src/haproxy/src/log.c:5358,1
    - Dst: session_embryonic_build_legacy_err
      Src: /src/haproxy/src/log.c:5359,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:5363,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:5367,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - sess
    - embryonic
    argTypes:
    - struct session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5370
      start: 5318
    functionDepth: 9
    functionLinenumber: 5318
    functionLinenumberEnd: 5370
    functionName: _sess_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - session_embryonic_build_legacy_err
    - log_orig
    - lf_expr_isempty
    - __send_log
    - sess_build_logline_orig
    - _HA_ATOMIC_INC
    - LIST_ISEMPTY
    - 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:5380,1
    - Dst: vsnprintf
      Src: /src/haproxy/src/log.c:5381,1
    - Dst: va_end
      Src: /src/haproxy/src/log.c:5384,1
    - Dst: __send_log
      Src: /src/haproxy/src/log.c:5386,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: 5387
      start: 5372
    functionDepth: 9
    functionLinenumber: 5372
    functionLinenumberEnd: 5387
    functionName: app_log
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - vsnprintf
    - __send_log
    - va_end
    - va_start
    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:5403,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: 5404
      start: 5395
    functionDepth: 0
    functionLinenumber: 5395
    functionLinenumberEnd: 5404
    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:5440,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:5459,1
    - Dst: memcmp
      Src: /src/haproxy/src/log.c:5631,1
    - Dst: ist2
      Src: /src/haproxy/src/log.c:5637,1
    - Dst: isttest
      Src: /src/haproxy/src/log.c:5687,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: 5722
      start: 5415
    functionDepth: 1
    functionLinenumber: 5415
    functionLinenumberEnd: 5722
    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:5742,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/log.c:5743,1
    - Dst: prepare_log_message
      Src: /src/haproxy/src/log.c:5745,1
    - Dst: parse_log_message
      Src: /src/haproxy/src/log.c:5750,1
    - Dst: real_family
      Src: /src/haproxy/src/log.c:5752,1
    - Dst: sa2str
      Src: /src/haproxy/src/log.c:5758,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:5762,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:5767,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:5772,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:5776,1
    - Dst: ist
      Src: /src/haproxy/src/log.c:5779,1
    - Dst: process_send_log
      Src: /src/haproxy/src/log.c:5785,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:5786,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: 5787
      start: 5730
    functionDepth: 8
    functionLinenumber: 5730
    functionLinenumberEnd: 5787
    functionName: syslog_process_message
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - ha_free
    - prepare_log_message
    - sa2str
    - real_family
    - proxy_inc_fe_req_ctr
    - memprintf
    - _HA_ATOMIC_INC
    - process_send_log
    - parse_log_message
    - ist
    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:5795,1
    - Dst: objt_listener
      Src: /src/haproxy/src/log.c:5796,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:5800,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/log.c:5805,1
    - Dst: recvfrom
      Src: /src/haproxy/src/log.c:5817,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/log.c:5822,1
    - Dst: syslog_process_message
      Src: /src/haproxy/src/log.c:5827,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5833
      start: 5792
    functionDepth: 9
    functionLinenumber: 5792
    functionLinenumberEnd: 5833
    functionName: syslog_fd_handler
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - fd_cant_recv
    - get_trash_chunk
    - BUG_ON
    - objt_listener
    - recvfrom
    - fd_recv_ready
    - syslog_process_message
    linkageType: ''
    returnType: void
    signature: void syslog_fd_handler(int fd)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: appctx_sc
      Src: /src/haproxy/src/log.c:5840,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/log.c:5841,1
    - Dst: strm_fe
      Src: /src/haproxy/src/log.c:5842,1
    - Dst: strm_li
      Src: /src/haproxy/src/log.c:5843,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/log.c:5844,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:5849,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/log.c:5849,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/log.c:5850,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/log.c:5854,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/log.c:5855,1
    - Dst: applet_getchar
      Src: /src/haproxy/src/log.c:5868,1
    - Dst: applet_getline
      Src: /src/haproxy/src/log.c:5878,1
    - Dst: applet_getword
      Src: /src/haproxy/src/log.c:5902,1
    - Dst: strtol
      Src: /src/haproxy/src/log.c:5911,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/log.c:5919,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/log.c:5932,1
    - Dst: sc_conn
      Src: /src/haproxy/src/log.c:5934,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/log.c:5935,1
    - Dst: conn_src
      Src: /src/haproxy/src/log.c:5936,1
    - Dst: syslog_process_message
      Src: /src/haproxy/src/log.c:5938,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/log.c:5943,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/log.c:5948,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:5953,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:5955,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:5961,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/log.c:5963,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/log.c:5966,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/log.c:5967,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 104
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5971
      start: 5838
    functionDepth: 9
    functionLinenumber: 5838
    functionLinenumberEnd: 5971
    functionName: syslog_io_handler
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - applet_getline
    - appctx_wakeup
    - get_trash_chunk
    - unlikely
    - conn_src
    - strm_fe
    - conn_get_src
    - applet_input_data
    - applet_getchar
    - _HA_ATOMIC_INC
    - applet_get_inbuf
    - applet_getword
    - appctx_sc
    - applet_need_more_data
    - __sc_strm
    - applet_getblk
    - strm_li
    - applet_skip_input
    - applet_reset_input
    - applet_set_eos
    - applet_set_error
    - applet_fl_test
    - syslog_process_message
    - strtol
    linkageType: ''
    returnType: void
    signature: void syslog_io_handler(struct appctx *appctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/log.c:5997,1
    - Dst: ulltoa
      Src: /src/haproxy/src/log.c:5998,1
    - Dst: b_size
      Src: /src/haproxy/src/log.c:5998,1
    - Dst: unlikely
      Src: /src/haproxy/src/log.c:6005,1
    - Dst: b_size
      Src: /src/haproxy/src/log.c:6005,1
    - Dst: vp_peek_ofs
      Src: /src/haproxy/src/log.c:6009,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/log.c:6010,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: 6015
      start: 5991
    functionDepth: 1
    functionLinenumber: 5991
    functionLinenumberEnd: 6015
    functionName: syslog_applet_append_event
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - unlikely
    - vp_peek_ofs
    - applet_putchk
    - b_size
    - ulltoa
    - chunk_reset
    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:6030,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6032,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/log.c:6037,1
    - Dst: invalid_char
      Src: /src/haproxy/src/log.c:6040,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6042,1
    - Dst: log_forward_by_name
      Src: /src/haproxy/src/log.c:6048,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6050,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/log.c:6056,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6058,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:6059,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/log.c:6065,1
    - Dst: ha_warning
      Src: /src/haproxy/src/log.c:6068,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:6070,1
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/log.c:6075,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6077,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/log.c:6084,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6093,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/log.c:6094,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6098,1
    - Dst: atol
      Src: /src/haproxy/src/log.c:6102,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/log.c:6103,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6106,1
    - Dst: warnifnotcap
      Src: /src/haproxy/src/log.c:6107,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6111,1
    - Dst: atol
      Src: /src/haproxy/src/log.c:6115,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/log.c:6116,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6119,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/log.c:6127,1
    - Dst: xprt_get
      Src: /src/haproxy/src/log.c:6128,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6130,1
    - Dst: str2listener
      Src: /src/haproxy/src/log.c:6138,1
    - Dst: indent_msg
      Src: /src/haproxy/src/log.c:6140,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6141,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6144,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6150,1
    - Dst: bind_parse_args_list
      Src: /src/haproxy/src/log.c:6155,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6162,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/log.c:6170,1
    - Dst: xprt_get
      Src: /src/haproxy/src/log.c:6171,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6173,1
    - Dst: str2receiver
      Src: /src/haproxy/src/log.c:6180,1
    - Dst: indent_msg
      Src: /src/haproxy/src/log.c:6182,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6183,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6186,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6192,1
    - Dst: bind_find_kw
      Src: /src/haproxy/src/log.c:6199,1
    - Dst: struct bind_kw*::parse
      Src: /src/haproxy/src/log.c:6202,1
    - Dst: indent_msg
      Src: /src/haproxy/src/log.c:6206,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6207,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6210,1
    - Dst: bind_find_best_kw
      Src: /src/haproxy/src/log.c:6218,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6220,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6223,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6229,1
    - Dst: parse_logger
      Src: /src/haproxy/src/log.c:6230,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6231,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6236,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6240,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6241,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6247,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/log.c:6251,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6253,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6256,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6259,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6263,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/log.c:6267,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6269,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6271,1
    - Dst: cfg_parse_listen_match_option
      Src: /src/haproxy/src/log.c:6280,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6289,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6292,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6294,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6296,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6298,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6302,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6323,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6327,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6332,1
    CyclomaticComplexity: 85
    EdgeCount: 85
    ICount: 261
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6334
      start: 6023
    functionDepth: 7
    functionLinenumber: 6023
    functionLinenumberEnd: 6334
    functionName: cfg_parse_log_forward
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - parse_logger
    - proxy_find_by_name
    - proxy_type_str
    - bind_conf_alloc
    - log_forward_by_name
    - ha_warning
    - strcmp
    - warnifnotcap
    - struct bind_kw*::parse
    - str2receiver
    - ha_free
    - atol
    - str2listener
    - bind_find_kw
    - copy_file_name
    - bind_parse_args_list
    - memprintf
    - ha_alert
    - MS_TO_TICKS
    - cfg_parse_listen_match_option
    - bind_find_best_kw
    - list_for_each_entry
    - invalid_char
    - parse_time_err
    - xprt_get
    - indent_msg
    - alertif_too_many_args
    - alloc_new_proxy
    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:6338,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/log.c:6339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - lprof_step
    argTypes:
    - struct log_profile_step*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6341
      start: 6336
    functionDepth: 2
    functionLinenumber: 6336
    functionLinenumberEnd: 6341
    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:6348,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:6349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - lprof_step
    argTypes:
    - struct log_profile_step*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6350
      start: 6343
    functionDepth: 4
    functionLinenumber: 6343
    functionLinenumberEnd: 6350
    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:6354,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - lprof_step
    argTypes:
    - struct log_profile_step*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6356
      start: 6352
    functionDepth: 5
    functionLinenumber: 6352
    functionLinenumberEnd: 6356
    functionName: log_profile_step_free
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - free
    - log_profile_step_deinit
    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:6370,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/log.c:6371,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6372,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/log.c:6379,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/log.c:6380,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6381,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: 6390
      start: 6363
    functionDepth: 6
    functionLinenumber: 6363
    functionLinenumberEnd: 6390
    functionName: log_profile_step_postcheck
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - lf_expr_postcheck
    - lf_expr_isempty
    - memprintf
    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:6409,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6410,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6411,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6412,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6413,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6414,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6415,1
    - Dst: eb32_first
      Src: /src/haproxy/src/log.c:6419,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/log.c:6421,1
    - Dst: eb32_next
      Src: /src/haproxy/src/log.c:6422,1
    - Dst: log_profile_step_postcheck
      Src: /src/haproxy/src/log.c:6423,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: 6428
      start: 6397
    functionDepth: 7
    functionLinenumber: 6397
    functionLinenumberEnd: 6428
    functionName: log_profile_postcheck
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - log_profile_step_postcheck
    - eb32_next
    - eb32_first
    - eb32_entry
    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:6435,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6436,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/log.c:6437,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6439,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6440,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6441,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6442,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6443,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6444,1
    - Dst: log_profile_step_free
      Src: /src/haproxy/src/log.c:6445,1
    - Dst: eb32_first
      Src: /src/haproxy/src/log.c:6448,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/log.c:6450,1
    - Dst: eb32_next
      Src: /src/haproxy/src/log.c:6451,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/log.c:6452,1
    - Dst: log_profile_step_deinit
      Src: /src/haproxy/src/log.c:6453,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6454,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - prof
    argTypes:
    - struct log_profile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6458
      start: 6430
    functionDepth: 6
    functionLinenumber: 6430
    functionLinenumberEnd: 6458
    functionName: log_profile_free
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - log_profile_step_free
    - ha_free
    - eb32_first
    - eb32_next
    - eb32_entry
    - chunk_destroy
    - free
    - eb32_delete
    - 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:6465,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:6466,1
    - Dst: log_profile_free
      Src: /src/haproxy/src/log.c:6467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6469
      start: 6461
    functionDepth: 7
    functionLinenumber: 6461
    functionLinenumberEnd: 6469
    functionName: deinit_log_profiles
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - log_profile_free
    - LIST_DEL_INIT
    linkageType: ''
    returnType: void
    signature: void deinit_log_profiles()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6475,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6480
      start: 6471
    functionDepth: 0
    functionLinenumber: 6471
    functionLinenumberEnd: 6480
    functionName: log_profile_find_by_name
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - strcmp
    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:6496,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6498,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/log.c:6503,1
    - Dst: invalid_char
      Src: /src/haproxy/src/log.c:6506,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6508,1
    - Dst: log_profile_find_by_name
      Src: /src/haproxy/src/log.c:6514,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6516,1
    - Dst: calloc
      Src: /src/haproxy/src/log.c:6521,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6522,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6523,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6528,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:6533,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6535,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6537,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/log.c:6541,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/log.c:6542,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6542,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:6542,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:6542,1
    - Dst: b_orig
      Src: /src/haproxy/src/log.c:6543,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/log.c:6544,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6545,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6550,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6559,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6561,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6563,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6565,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6567,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6569,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6571,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6578,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6579,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:6581,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6583,1
    - Dst: log_profile_step_init
      Src: /src/haproxy/src/log.c:6587,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/log.c:6590,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6602,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6604,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6606,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6609,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6614,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6615,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6617,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:6624,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6626,1
    - Dst: log_profile_step_init
      Src: /src/haproxy/src/log.c:6630,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6637,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6645,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6647,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/log.c:6655,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6658,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6664,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6665,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/log.c:6668,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6671,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6680,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6687,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6692,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 162
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6694
      start: 6489
    functionDepth: 8
    functionLinenumber: 6489
    functionLinenumberEnd: 6694
    functionName: cfg_parse_log_profile
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - malloc
    - log_profile_step_init
    - lf_expr_deinit
    - strcmp
    - ha_free
    - chunk_destroy
    - strlen
    - calloc
    - strdup
    - log_profile_find_by_name
    - LIST_APPEND
    - eb32_insert
    - memprintf
    - ha_alert
    - b_orig
    - list_for_each_entry
    - lf_expr_compile
    - invalid_char
    - chunk_initlen
    - free
    - alertif_too_many_args
    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:6713,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6714,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6721,1
    - Dst: malloc
      Src: /src/haproxy/src/log.c:6725,1
    - Dst: strdup
      Src: /src/haproxy/src/log.c:6729,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6731,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/log.c:6735,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/log.c:6736,1
    - Dst: ha_alert
      Src: /src/haproxy/src/log.c:6740,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6743
      start: 6708
    functionDepth: 3
    functionLinenumber: 6708
    functionLinenumberEnd: 6743
    functionName: log_orig_register
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached:
    - strdup
    - list_for_each_entry
    - strcmp
    - LIST_APPEND
    - free
    - malloc
    - eb32_insert
    - ha_alert
    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:6750,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/log.c:6751,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6752,1
    - Dst: free
      Src: /src/haproxy/src/log.c:6753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6755
      start: 6746
    functionDepth: 3
    functionLinenumber: 6746
    functionLinenumberEnd: 6755
    functionName: deinit_log_origins
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - free
    - LIST_DEL_INIT
    linkageType: ''
    returnType: void
    signature: void deinit_log_origins()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resolve_logger
      Src: /src/haproxy/src/log.c:6772,1
    - Dst: e_func
      Src: /src/haproxy/src/log.c:6783,1
    - Dst: e_func
      Src: /src/haproxy/src/log.c:6786,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6788,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: 6793
      start: 6762
    functionDepth: 9
    functionLinenumber: 6762
    functionLinenumberEnd: 6793
    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:6772,1
    - Dst: e_func
      Src: /src/haproxy/src/log.c:6783,1
    - Dst: e_func
      Src: /src/haproxy/src/log.c:6786,1
    - Dst: ha_free
      Src: /src/haproxy/src/log.c:6788,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6791
      start: 6768
    functionDepth: 9
    functionLinenumber: 6768
    functionLinenumberEnd: 6791
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 149
    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:6804,1
    - Dst: postresolve_logger_list
      Src: /src/haproxy/src/log.c:6807,1
    - Dst: postresolve_logger_list
      Src: /src/haproxy/src/log.c:6810,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6813
      start: 6798
    functionDepth: 10
    functionLinenumber: 6798
    functionLinenumberEnd: 6813
    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:6829,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/log.c:6830,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6836,1
    - Dst: strcmp
      Src: /src/haproxy/src/log.c:6842,1
    - Dst: strcspn
      Src: /src/haproxy/src/log.c:6855,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6858,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6860,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6862,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6864,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6866,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6871,1
    - Dst: strlen
      Src: /src/haproxy/src/log.c:6872,1
    - Dst: strncmp
      Src: /src/haproxy/src/log.c:6872,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6879,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/log.c:6883,1
    - Dst: memprintf
      Src: /src/haproxy/src/log.c:6884,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/log.c:6890,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: 6904
      start: 6820
    functionDepth: 5
    functionLinenumber: 6820
    functionLinenumberEnd: 6904
    functionName: px_parse_log_steps
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strcmp
    - strncmp
    - BUG_ON
    - strlen
    - memprintf
    - proxy_type_str
    - strcspn
    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:6911,1
    - Dst: do_log
      Src: /src/haproxy/src/log.c:6913,1
    - Dst: log_orig
      Src: /src/haproxy/src/log.c:6913,1
    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: 6915
      start: 6907
    functionDepth: 10
    functionLinenumber: 6907
    functionLinenumberEnd: 6915
    functionName: do_log_action
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 0
    functionsReached:
    - log_orig
    - do_log
    - 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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    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: 6929
      start: 6920
    functionDepth: 0
    functionLinenumber: 6920
    functionLinenumberEnd: 6929
    functionName: do_log_parse_act
    functionSourceFile: /src/haproxy/src/log.c
    functionUses: 1
    functionsReached: []
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:153,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse.c:161,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse.c:165,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:180,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:184,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:184,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:186,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:194,1
    - Dst: create_listeners
      Src: /src/haproxy/src/cfgparse.c:209,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:210,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:214,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:217,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: 219
      start: 147
    functionDepth: 5
    functionLinenumber: 147
    functionLinenumberEnd: 219
    functionName: str2listener
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 5
    functionsReached:
    - strdup
    - create_listeners
    - strlen
    - free
    - memprintf
    - strchr
    - str2sa_range
    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:239,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse.c:247,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse.c:251,1
    - Dst: create_listeners
      Src: /src/haproxy/src/cfgparse.c:259,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:260,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:264,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:267,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: 269
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 269
    functionName: str2receiver
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - strdup
    - create_listeners
    - free
    - memprintf
    - strchr
    - str2sa_range
    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:289,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:290,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: 294
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 294
    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:314,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:315,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: 319
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 319
    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:339,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:341,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:343,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: 349
      start: 330
    functionDepth: 5
    functionLinenumber: 330
    functionLinenumberEnd: 349
    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:356,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: 357
      start: 354
    functionDepth: 6
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: too_many_args
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 64
    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:373,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:375,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:378,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:379,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: 382
      start: 365
    functionDepth: 5
    functionLinenumber: 365
    functionLinenumberEnd: 382
    functionName: alertif_too_many_args_idx
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 13
    functionsReached:
    - free
    - memprintf
    - ha_alert
    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:389,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: 390
      start: 387
    functionDepth: 6
    functionLinenumber: 387
    functionLinenumberEnd: 390
    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:406,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:409,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse.c:410,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:412,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse.c:413,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse.c:413,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/cfgparse.c:416,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:420,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse.c:421,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:423,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/cfgparse.c:424,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 4
    argNames:
    - cond
    - where
    - file
    - line
    argTypes:
    - struct acl_cond*
    - unsigned int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 426
    functionName: warnif_cond_conflicts
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - ha_warning
    - sample_ckp_names
    - acl_cond_conflicts
    - acl_cond_kw_conflicts
    - LIST_ELEM
    linkageType: ''
    returnType: int
    signature: int warnif_cond_conflicts(const struct acl_cond *cond, unsigned int
      where, const char *file, int line)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - px
    - cond
    argTypes:
    - struct proxy*
    - struct acl_cond*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 443
    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:460,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/cfgparse.c:466,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/cfgparse.c:467,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/cfgparse.c:476,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/cfgparse.c:477,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:485,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:485,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: 488
      start: 451
    functionDepth: 2
    functionLinenumber: 451
    functionLinenumberEnd: 488
    functionName: cfg_find_best_match
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 2
    functionsReached:
    - word_fingerprint_distance
    - strlen
    - make_word_fingerprint
    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:466,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/cfgparse.c:467,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 461
    functionDepth: 2
    functionLinenumber: 461
    functionLinenumberEnd: 473
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 150
    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:502,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:508,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:510,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:512,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse.c:521,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:522,1
    - Dst: str2uic
      Src: /src/haproxy/src/cfgparse.c:527,1
    - Dst: str2uic
      Src: /src/haproxy/src/cfgparse.c:529,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:538,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: 550
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 550
    functionName: parse_process_number
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncmp
    - str2uic
    - isdigit
    - memprintf
    linkageType: ''
    returnType: int
    signature: int parse_process_number(const char *arg, unsigned long *proc, int
      max, int *autoinc, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/cfgparse.c:569,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:571,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:572,1
    - Dst: peers_setup_frontend
      Src: /src/haproxy/src/cfgparse.c:576,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:583,1
    - Dst: drop_file_name
      Src: /src/haproxy/src/cfgparse.c:584,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/cfgparse.c:585,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: 590
      start: 558
    functionDepth: 4
    functionLinenumber: 558
    functionLinenumberEnd: 590
    functionName: init_peers_frontend
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_free
    - copy_file_name
    - ha_alert
    - peers_setup_frontend
    - drop_file_name
    - alloc_new_proxy
    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.c:601,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse.c:602,1
    - Dst: typeof
      Src: /src/haproxy/src/cfgparse.c:602,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:608,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:609,1
    - Dst: bind_conf_alloc
      Src: /src/haproxy/src/cfgparse.c:613,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: 617
      start: 595
    functionDepth: 3
    functionLinenumber: 595
    functionLinenumberEnd: 617
    functionName: bind_conf_uniq_alloc
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - typeof
    - LIST_ISEMPTY
    - LIST_ELEM
    - bind_conf_alloc
    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.c:630,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:632,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:641,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/cfgparse.c:643,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/cfgparse.c:644,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:646,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: 653
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 653
    functionName: cfg_peers_add_peer
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - strdup
    - ns_to_sec
    - HA_SPIN_INIT
    - ha_alert
    - calloc
    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.c:677,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:677,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse.c:684,1
    - Dst: bind_conf_uniq_alloc
      Src: /src/haproxy/src/cfgparse.c:689,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:690,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:692,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:705,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:710,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:711,1
    - Dst: str2listener
      Src: /src/haproxy/src/cfgparse.c:715,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cfgparse.c:717,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:718,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:721,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:731,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse.c:738,1
    - Dst: typeof
      Src: /src/haproxy/src/cfgparse.c:738,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse.c:750,1
    - Dst: get_host_port
      Src: /src/haproxy/src/cfgparse.c:752,1
    - Dst: cfg_peers_add_peer
      Src: /src/haproxy/src/cfgparse.c:759,1
    - Dst: bind_parse_args_list
      Src: /src/haproxy/src/cfgparse.c:768,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:773,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse.c:774,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse.c:778,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:781,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse.c:782,1
    - Dst: parse_logger
      Src: /src/haproxy/src/cfgparse.c:786,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:787,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:792,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:797,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse.c:802,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:807,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:809,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:820,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:821,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:827,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:828,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:835,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/cfgparse.c:837,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:838,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:841,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:842,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:848,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:852,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:863,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:867,1
    - Dst: cfg_peers_add_peer
      Src: /src/haproxy/src/cfgparse.c:873,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse.c:881,1
    - Dst: parse_server
      Src: /src/haproxy/src/cfgparse.c:895,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:907,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse.c:912,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:918,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:919,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:928,1
    - Dst: get_host_port
      Src: /src/haproxy/src/cfgparse.c:939,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:943,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:951,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/cfgparse.c:955,1
    - Dst: bind_conf_uniq_alloc
      Src: /src/haproxy/src/cfgparse.c:965,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:965,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:967,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:976,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:977,1
    - Dst: str2listener
      Src: /src/haproxy/src/cfgparse.c:981,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cfgparse.c:983,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:984,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:987,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:995,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:999,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse.c:1004,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1006,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1013,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1021,1
    - Dst: init_peers_frontend
      Src: /src/haproxy/src/cfgparse.c:1027,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cfgparse.c:1035,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/cfgparse.c:1036,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1037,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cfgparse.c:1044,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/cfgparse.c:1044,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1045,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:1051,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1052,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1054,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1056,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1057,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/cfgparse.c:1062,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1064,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/cfgparse.c:1066,1
    - Dst: parse_stick_table
      Src: /src/haproxy/src/cfgparse.c:1074,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1076,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1077,1
    - Dst: stktable_store_name
      Src: /src/haproxy/src/cfgparse.c:1081,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1085,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1088,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:1096,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1098,1
    - Dst: parse
      Src: /src/haproxy/src/cfgparse.c:1099,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1101,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:1106,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1115,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1121,1
    CyclomaticComplexity: 112
    EdgeCount: 112
    ICount: 341
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 665
    functionDepth: 9
    functionLinenumber: 665
    functionLinenumberEnd: 1123
    functionName: cfg_parse_peers
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - parse_logger
    - ha_diag_warning
    - parse
    - get_host_port
    - ha_warning
    - strcmp
    - stktable_find_by_name
    - ha_free
    - cfg_peers_add_peer
    - chunk_strcat
    - LIST_ISEMPTY
    - str2listener
    - calloc
    - strdup
    - BUG_ON
    - bind_conf_uniq_alloc
    - bind_parse_args_list
    - proxy_cap_str
    - typeof
    - HA_SPIN_INIT
    - stktable_store_name
    - ha_alert
    - init_peers_frontend
    - chunk_memcat
    - LIST_ELEM
    - parse_stick_table
    - chunk_strcpy
    - list_for_each_entry
    - invalid_char
    - ns_to_sec
    - free
    - parse_server
    - xprt_get
    - indent_msg
    - alertif_too_many_args
    - strtol
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int cfg_parse_peers(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1143,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1145,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:1150,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1152,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1163,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1164,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:1170,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1171,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1178,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1180,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1185,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1191,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:1197,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1199,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:1205,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1206,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1216,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1219,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/cfgparse.c:1221,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1225,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1231,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:1239,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1242,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1244,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1249,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1253,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse.c:1258,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1260,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1266,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1272,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1279,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1286,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1292,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 130
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1135
    functionDepth: 4
    functionLinenumber: 1135
    functionLinenumberEnd: 1294
    functionName: cfg_parse_mailers
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcmp
    - invalid_char
    - parse_time_err
    - free
    - xprt_get
    - ha_alert
    - str2sa_range
    - calloc
    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:1304,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1307,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:1311,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1313,1
    - Dst: netns_store_lookup
      Src: /src/haproxy/src/cfgparse.c:1318,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:1318,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1319,1
    - Dst: netns_store_insert
      Src: /src/haproxy/src/cfgparse.c:1323,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1324,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1333,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1297
    functionDepth: 3
    functionLinenumber: 1297
    functionLinenumberEnd: 1337
    functionName: cfg_parse_netns
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - netns_store_insert
    - strcmp
    - invalid_char
    - strlen
    - netns_store_lookup
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int cfg_parse_netns(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1346,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1350,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse.c:1355,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:1358,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1360,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1367,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:1368,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:1374,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1376,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1381,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1383,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1385,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1392,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1398,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:1404,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1406,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1416,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:1417,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:1423,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1425,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1430,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1432,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1434,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1441,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1443,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1446,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1447,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1448,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1451,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1455,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1458,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1459,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1460,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1468,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1473,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1482,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:1483,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:1489,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1491,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1496,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1504,1
    - Dst: crypt
      Src: /src/haproxy/src/cfgparse.c:1506,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1507,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:1513,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1517,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1520,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1521,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1525,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1526,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1530,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1537,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 176
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1339
    functionDepth: 7
    functionLinenumber: 1339
    functionLinenumberEnd: 1543
    functionName: cfg_parse_users
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_warning
    - strcmp
    - invalid_char
    - crypt
    - free
    - ha_alert
    - alertif_too_many_args
    - calloc
    linkageType: ''
    returnType: int
    signature: int cfg_parse_users(const char *file, int linenum, char **args, int
      kwm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse.c:1553,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1557,1
    - Dst: my_strndup
      Src: /src/haproxy/src/cfgparse.c:1564,1
    - Dst: invalid_char
      Src: /src/haproxy/src/cfgparse.c:1565,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1567,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse.c:1575,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1578,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1585,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1590,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 3
    argNames:
    - file
    - linenum
    - line
    argTypes:
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1545
    functionDepth: 3
    functionLinenumber: 1545
    functionLinenumberEnd: 1592
    functionName: cfg_parse_scope
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - strchr
    - isspace
    - invalid_char
    - 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:1602,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1605,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1611,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1614,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: 1621
      start: 1594
    functionDepth: 5
    functionLinenumber: 1594
    functionLinenumberEnd: 1621
    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:1629,1
    - Dst: _ha_diag_warning
      Src: /src/haproxy/src/cfgparse.c:1631,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - section_name
    - file
    - linenum
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1636
    functionName: check_section_position
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - _ha_diag_warning
    - strcmp
    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:1652,1
    - Dst: getcwd
      Src: /src/haproxy/src/cfgparse.c:1657,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1659,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1659,1
    - Dst: chdir
      Src: /src/haproxy/src/cfgparse.c:1663,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1665,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1665,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse.c:1679,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1681,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1689,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse.c:1692,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1699,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse.c:1702,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse.c:1704,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse.c:1706,1
    - Dst: chdir
      Src: /src/haproxy/src/cfgparse.c:1710,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1712,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1712,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 54
    argCount: 3
    argNames:
    - file
    - origin
    - err
    argTypes:
    - char*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1644
    functionDepth: 5
    functionLinenumber: 1644
    functionLinenumberEnd: 1717
    functionName: cfg_apply_default_path
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - getcwd
    - snprintf
    - strrchr
    - chdir
    - strerror
    - memprintf
    - memcpy
    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:1728,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1730,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1732,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:1734,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1737,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1743,1
    - Dst: cfg_apply_default_path
      Src: /src/haproxy/src/cfgparse.c:1746,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1747,1
    - Dst: cfg_apply_default_path
      Src: /src/haproxy/src/cfgparse.c:1751,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1752,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: 1761
      start: 1720
    functionDepth: 6
    functionLinenumber: 1720
    functionLinenumberEnd: 1761
    functionName: cfg_parse_global_def_path
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - cfg_apply_default_path
    - memprintf
    - strcmp
    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:1773,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1775,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:1779,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:1781,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:1785,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1790,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1792,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - li
    - filename
    - err
    argTypes:
    - struct list*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1769
    functionDepth: 5
    functionLinenumber: 1769
    functionLinenumberEnd: 1794
    functionName: list_append_cfgfile
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - strdup
    - LIST_APPEND
    - free
    - memprintf
    - calloc
    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:1811,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1812,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1813,1
    - Dst: fopen
      Src: /src/haproxy/src/cfgparse.c:1821,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1822,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse.c:1823,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1831,1
    - Dst: realloc
      Src: /src/haproxy/src/cfgparse.c:1839,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1841,1
    - Dst: fread
      Src: /src/haproxy/src/cfgparse.c:1849,1
    - Dst: feof
      Src: /src/haproxy/src/cfgparse.c:1852,1
    - Dst: ferror
      Src: /src/haproxy/src/cfgparse.c:1852,1
    - Dst: fclose
      Src: /src/haproxy/src/cfgparse.c:1856,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:1861,1
    - Dst: fclose
      Src: /src/haproxy/src/cfgparse.c:1862,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - filename
    - cfg_content
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1800
    functionDepth: 1
    functionLinenumber: 1800
    functionLinenumberEnd: 1865
    functionName: load_cfg_in_mem
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - ferror
    - fclose
    - stat
    - ha_free
    - realloc
    - strerror
    - fread
    - ha_alert
    - feof
    - fopen
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t load_cfg_in_mem(char *filename, char **cfg_content)
  - BBCount: 128
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/haproxy/src/cfgparse.c:1901,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1902,1
    - Dst: cfg_apply_default_path
      Src: /src/haproxy/src/cfgparse.c:1908,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1909,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:1910,1
    - Dst: fgets_from_mem
      Src: /src/haproxy/src/cfgparse.c:1916,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1924,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1935,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:1939,1
    - Dst: realloc
      Src: /src/haproxy/src/cfgparse.c:1948,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:1950,1
    - Dst: isspace
      Src: /src/haproxy/src/cfgparse.c:1977,1
    - Dst: cfg_parse_scope
      Src: /src/haproxy/src/cfgparse.c:1981,1
    - Dst: parse_line
      Src: /src/haproxy/src/cfgparse.c:1992,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:1998,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2000,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:2008,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2010,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:2018,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2020,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:2028,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2030,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:2038,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2040,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/cfgparse.c:2049,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2051,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2064,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:2084,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:2090,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2091,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/cfgparse.c:2109,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2112,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2115,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2118,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2131,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2134,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2136,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2145,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:2145,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2148,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2154,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2158,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2161,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2162,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2165,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2166,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2169,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2170,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2170,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2171,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2174,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2174,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2175,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2178,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:2178,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2181,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2184,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2188,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2192,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2193,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2196,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2197,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2201,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2202,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:2202,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2205,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2208,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2212,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2213,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2214,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:2214,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2216,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2219,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2223,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2224,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:2224,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2227,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:2227,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2230,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2233,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2237,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2238,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2240,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2240,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2241,1
    - Dst: HA_ANON_PATH
      Src: /src/haproxy/src/cfgparse.c:2241,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2244,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2247,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2249,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2252,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2253,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:2253,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2256,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2258,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2261,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2262,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2264,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2265,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2268,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:2268,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2271,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2273,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2276,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2277,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:2277,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2278,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:2278,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2281,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2283,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2286,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2287,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:2287,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2290,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2292,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2295,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2296,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:2296,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2299,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2300,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:2300,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2303,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2305,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2308,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2309,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:2310,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/cfgparse.c:2310,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2312,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2314,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2317,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2318,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2320,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2321,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2324,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2325,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2327,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2328,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2331,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2332,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2334,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2335,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2338,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2339,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2341,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2342,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2345,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2346,1
    - Dst: HA_ANON_PATH
      Src: /src/haproxy/src/cfgparse.c:2346,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2349,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2350,1
    - Dst: HA_ANON_ID
      Src: /src/haproxy/src/cfgparse.c:2350,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2352,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2354,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2355,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2358,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2358,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2359,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/cfgparse.c:2359,1
    - Dst: MIN
      Src: /src/haproxy/src/cfgparse.c:2364,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2365,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2368,1
    - Dst: qfprintf
      Src: /src/haproxy/src/cfgparse.c:2370,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2383,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:2390,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2395,1
    - Dst: cfg_eval_condition
      Src: /src/haproxy/src/cfgparse.c:2410,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:2412,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2414,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2418,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2430,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:2437,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2441,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2448,1
    - Dst: cfg_eval_condition
      Src: /src/haproxy/src/cfgparse.c:2461,1
    - Dst: sanitize_for_printing
      Src: /src/haproxy/src/cfgparse.c:2463,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2465,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2469,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2481,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2483,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2490,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2497,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2513,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2515,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2522,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2543,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2545,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2551,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2555,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2557,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2563,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2567,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2569,1
    - Dst: ha_notice
      Src: /src/haproxy/src/cfgparse.c:2575,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2578,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2580,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse.c:2586,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2590,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2598,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2608,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2614,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2615,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2615,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2616,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2616,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2617,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2618,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2619,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2628,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2629,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2633,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:2634,1
    - Dst: check_section_position
      Src: /src/haproxy/src/cfgparse.c:2635,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2646,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2647,1
    - Dst: struct cfg_section*::post_section_parser
      Src: /src/haproxy/src/cfgparse.c:2654,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2671,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2678,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2679,1
    - Dst: struct cfg_section*::section_parser
      Src: /src/haproxy/src/cfgparse.c:2682,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2693,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2698,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2707,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:2708,1
    - Dst: struct cfg_section*::post_section_parser
      Src: /src/haproxy/src/cfgparse.c:2711,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2726,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2731,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2733,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:2734,1
    CyclomaticComplexity: 232
    EdgeCount: 232
    ICount: 599
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - struct cfgfile*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 1878
    functionDepth: 6
    functionLinenumber: 1878
    functionLinenumberEnd: 2739
    functionName: parse_cfg
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 2
    functionsReached:
    - ha_diag_warning
    - sanitize_for_printing
    - HA_ANON_STR
    - realloc
    - malloc
    - my_realloc2
    - parse_line
    - ha_warning
    - fgets_from_mem
    - strcmp
    - MIN
    - ha_free
    - strlen
    - hash_ipanon
    - struct cfg_section*::post_section_parser
    - strdup
    - cfg_eval_condition
    - isspace
    - HA_ATOMIC_LOAD
    - HA_ANON_ID
    - ha_alert
    - struct cfg_section*::section_parser
    - cfg_parse_scope
    - qfprintf
    - HA_ANON_PATH
    - list_for_each_entry
    - check_section_position
    - cfg_apply_default_path
    - ha_notice
    - free
    linkageType: ''
    returnType: int
    signature: int parse_cfg(const struct cfgfile *cfg)
  - BBCount: 254
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2787,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse.c:2794,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse.c:2795,1
    - Dst: thread_map_to_groups
      Src: /src/haproxy/src/cfgparse.c:2797,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse.c:2802,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse.c:2804,1
    - Dst: userlist_postinit
      Src: /src/haproxy/src/cfgparse.c:2807,1
    - Dst: MT_LIST_FOR_EACH_ENTRY_LOCKED
      Src: /src/haproxy/src/cfgparse.c:2828,1
    - Dst: srv_preinit
      Src: /src/haproxy/src/cfgparse.c:2829,1
    - Dst: proxy_init_per_thr
      Src: /src/haproxy/src/cfgparse.c:2845,1
    - Dst: proxy_get_next_id
      Src: /src/haproxy/src/cfgparse.c:2853,1
    - Dst: proxy_index_id
      Src: /src/haproxy/src/cfgparse.c:2855,1
    - Dst: ONLY_ONCE
      Src: /src/haproxy/src/cfgparse.c:2858,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2859,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2881,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2894,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2895,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2896,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2897,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2898,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2899,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:2900,1
    - Dst: smp_resolve_args
      Src: /src/haproxy/src/cfgparse.c:2903,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cfgparse.c:2906,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2907,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2908,1
    - Dst: acl_find_targets
      Src: /src/haproxy/src/cfgparse.c:2911,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:2919,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:2928,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:2932,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:2939,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:2940,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:2942,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2945,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse.c:2951,1
    - Dst: strstr
      Src: /src/haproxy/src/cfgparse.c:2958,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2959,1
    - Dst: strstr
      Src: /src/haproxy/src/cfgparse.c:2966,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:2967,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:2976,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:2982,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:2984,1
    - Dst: bind_complete_thread_setup
      Src: /src/haproxy/src/cfgparse.c:2991,1
    - Dst: bind_generate_guid
      Src: /src/haproxy/src/cfgparse.c:2998,1
    - Dst: proxy_cfg_ensure_no_http
      Src: /src/haproxy/src/cfgparse.c:3007,1
    - Dst: proxy_cfg_ensure_no_log
      Src: /src/haproxy/src/cfgparse.c:3008,1
    - Dst: proxy_cfg_ensure_no_log
      Src: /src/haproxy/src/cfgparse.c:3012,1
    - Dst: proxy_cfg_ensure_no_http
      Src: /src/haproxy/src/cfgparse.c:3017,1
    - Dst: proxy_cfg_ensure_no_log
      Src: /src/haproxy/src/cfgparse.c:3018,1
    - Dst: proxy_cfg_ensure_no_http
      Src: /src/haproxy/src/cfgparse.c:3023,1
    - Dst: proxy_cfg_ensure_no_http
      Src: /src/haproxy/src/cfgparse.c:3027,1
    - Dst: proxy_cfg_ensure_no_log
      Src: /src/haproxy/src/cfgparse.c:3028,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3034,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3035,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:3040,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3041,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3042,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3049,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3050,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3055,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3056,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3061,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3062,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3082,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3083,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3090,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3091,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3096,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3097,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3105,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3110,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3115,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3123,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3128,1
    - Dst: free_email_alert
      Src: /src/haproxy/src/cfgparse.c:3130,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:3133,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3139,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3140,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3145,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:3150,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3156,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3157,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:3159,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/cfgparse.c:3167,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3169,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3173,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3179,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/cfgparse.c:3180,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3180,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/cfgparse.c:3182,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3182,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3186,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3190,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3204,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/cfgparse.c:3215,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/cfgparse.c:3220,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3221,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3223,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cfgparse.c:3227,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/cfgparse.c:3229,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3232,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse.c:3243,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/cfgparse.c:3249,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3251,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3255,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3261,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/cfgparse.c:3262,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3262,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/cfgparse.c:3264,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3264,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:3268,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/cfgparse.c:3277,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3281,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/cfgparse.c:3291,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/cfgparse.c:3294,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3295,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3297,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cfgparse.c:3301,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/cfgparse.c:3303,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3306,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse.c:3312,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/cfgparse.c:3317,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/cfgparse.c:3318,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3321,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3322,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:3326,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3332,1
    - Dst: resolve_stick_rule
      Src: /src/haproxy/src/cfgparse.c:3337,1
    - Dst: warnif_tcp_http_cond
      Src: /src/haproxy/src/cfgparse.c:3340,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3344,1
    - Dst: resolve_stick_rule
      Src: /src/haproxy/src/cfgparse.c:3347,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:3352,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:3353,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:3354,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:3355,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:3356,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:3357,1
    - Dst: check_action_rules
      Src: /src/haproxy/src/cfgparse.c:3358,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:3361,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3363,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/cfgparse.c:3365,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3365,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:3372,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:3373,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3380,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:3382,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3391,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:3403,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3407,1
    - Dst: free_email_alert
      Src: /src/haproxy/src/cfgparse.c:3409,1
    - Dst: init_email_alert
      Src: /src/haproxy/src/cfgparse.c:3414,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3415,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3416,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:3423,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3425,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:3433,1
    - Dst: parse_http_req_cond
      Src: /src/haproxy/src/cfgparse.c:3452,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:3458,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:3461,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:3468,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse.c:3480,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/cfgparse.c:3481,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/cfgparse.c:3489,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/cfgparse.c:3492,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3493,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3495,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/cfgparse.c:3507,1
    - Dst: add_to_logformat_list
      Src: /src/haproxy/src/cfgparse.c:3510,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/cfgparse.c:3511,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3512,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3514,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/cfgparse.c:3532,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/cfgparse.c:3534,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3535,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3537,1
    - Dst: lf_expr_compile
      Src: /src/haproxy/src/cfgparse.c:3549,1
    - Dst: lf_expr_postcheck
      Src: /src/haproxy/src/cfgparse.c:3552,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3553,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3555,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/cfgparse.c:3576,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3581,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3582,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:3585,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3589,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3591,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/cfgparse.c:3593,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3597,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3598,1
    - Dst: smp_resolve_args
      Src: /src/haproxy/src/cfgparse.c:3610,1
    - Dst: indent_msg
      Src: /src/haproxy/src/cfgparse.c:3613,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3614,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:3615,1
    - Dst: acl_find_targets
      Src: /src/haproxy/src/cfgparse.c:3617,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3624,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3628,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3642,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3643,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3649,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3650,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse.c:3657,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse.c:3663,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3674,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/cfgparse.c:3707,1
    - Dst: cebis_item_prev_dup
      Src: /src/haproxy/src/cfgparse.c:3711,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3712,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3714,1
    - Dst: server_get_next_id
      Src: /src/haproxy/src/cfgparse.c:3729,1
    - Dst: server_index_id
      Src: /src/haproxy/src/cfgparse.c:3731,1
    - Dst: set_usermsgs_ctx
      Src: /src/haproxy/src/cfgparse.c:3748,1
    - Dst: srv_minmax_conn_apply
      Src: /src/haproxy/src/cfgparse.c:3750,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:3759,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:3759,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:3760,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:3761,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:3761,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:3762,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:3770,1
    - Dst: server_parse_exprs
      Src: /src/haproxy/src/cfgparse.c:3773,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3774,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:3776,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3787,1
    - Dst: srv_apply_track
      Src: /src/haproxy/src/cfgparse.c:3790,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/cfgparse.c:3797,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/cfgparse.c:3811,1
    - Dst: init_server_map
      Src: /src/haproxy/src/cfgparse.c:3825,1
    - Dst: chash_init_server_tree
      Src: /src/haproxy/src/cfgparse.c:3828,1
    - Dst: fwrr_init_server_groups
      Src: /src/haproxy/src/cfgparse.c:3833,1
    - Dst: fwlc_init_server_tree
      Src: /src/haproxy/src/cfgparse.c:3840,1
    - Dst: fas_init_server_tree
      Src: /src/haproxy/src/cfgparse.c:3843,1
    - Dst: chash_init_server_tree
      Src: /src/haproxy/src/cfgparse.c:3850,1
    - Dst: init_server_map
      Src: /src/haproxy/src/cfgparse.c:3855,1
    - Dst: init_server_ss
      Src: /src/haproxy/src/cfgparse.c:3861,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/cfgparse.c:3865,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:3871,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/cfgparse.c:3872,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/cfgparse.c:3872,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3873,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3874,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3882,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3883,1
    - Dst: stats_uri_auth_drop
      Src: /src/haproxy/src/cfgparse.c:3885,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3890,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3891,1
    - Dst: isttest
      Src: /src/haproxy/src/cfgparse.c:3895,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3896,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3897,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:3901,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3902,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3903,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:3907,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3908,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3909,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:3913,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3914,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3915,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:3919,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3920,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3921,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3929,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3930,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3940,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3941,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3950,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3951,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3963,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3964,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3969,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3970,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3975,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3976,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:3983,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3984,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:3995,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:3996,1
    - Dst: flt_check
      Src: /src/haproxy/src/cfgparse.c:4006,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4012,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4013,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4030,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4037,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4038,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4041,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4042,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4057,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4065,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/cfgparse.c:4066,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:4069,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/cfgparse.c:4075,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse.c:4075,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4078,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:4081,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/cfgparse.c:4093,1
    - Dst: isteq
      Src: /src/haproxy/src/cfgparse.c:4095,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4096,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:4097,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4104,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:4105,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4112,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:4113,1
    - Dst: conn_pr_mode_to_proto_mode
      Src: /src/haproxy/src/cfgparse.c:4125,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/cfgparse.c:4128,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/cfgparse.c:4131,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse.c:4131,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/cfgparse.c:4142,1
    - Dst: isteq
      Src: /src/haproxy/src/cfgparse.c:4144,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4145,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:4146,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/cfgparse.c:4153,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4154,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:4155,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/cfgparse.c:4161,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4162,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:4163,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/cfgparse.c:4185,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/cfgparse.c:4187,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4189,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:4190,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/cfgparse.c:4195,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/cfgparse.c:4224,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4226,1
    - Dst: task_new_on
      Src: /src/haproxy/src/cfgparse.c:4234,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4236,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/cfgparse.c:4243,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/cfgparse.c:4244,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4262,1
    - Dst: struct bind_conf*::xprt::prepare_bind_conf
      Src: /src/haproxy/src/cfgparse.c:4264,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4283,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/cfgparse.c:4289,1
    - Dst: typeof
      Src: /src/haproxy/src/cfgparse.c:4289,1
    - Dst: listener_get_next_id
      Src: /src/haproxy/src/cfgparse.c:4293,1
    - Dst: listener_index_id
      Src: /src/haproxy/src/cfgparse.c:4295,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:4301,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse.c:4303,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:4307,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4319,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cfgparse.c:4323,1
    - Dst: li_init_per_thr
      Src: /src/haproxy/src/cfgparse.c:4328,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4334,1
    - Dst: struct bind_conf*::xprt::destroy_bind_conf
      Src: /src/haproxy/src/cfgparse.c:4336,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/cfgparse.c:4340,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4346,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/cfgparse.c:4403,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:4407,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/cfgparse.c:4410,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:4425,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4426,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:4436,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:4436,1
    - Dst: xprt_get
      Src: /src/haproxy/src/cfgparse.c:4437,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4442,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cfgparse.c:4448,1
    - Dst: typeof
      Src: /src/haproxy/src/cfgparse.c:4448,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:4452,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:4456,1
    - Dst: bind_complete_thread_setup
      Src: /src/haproxy/src/cfgparse.c:4462,1
    - Dst: struct bind_conf*::xprt::prepare_bind_conf
      Src: /src/haproxy/src/cfgparse.c:4470,1
    - Dst: peers_init_sync
      Src: /src/haproxy/src/cfgparse.c:4473,1
    - Dst: peers_alloc_dcache
      Src: /src/haproxy/src/cfgparse.c:4473,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4474,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:4487,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:4493,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:4507,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:4508,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:4515,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:4522,1
    - Dst: stktable_init
      Src: /src/haproxy/src/cfgparse.c:4531,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4532,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:4533,1
    - Dst: stktable_init
      Src: /src/haproxy/src/cfgparse.c:4547,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4548,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse.c:4549,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:4569,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:4575,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:4576,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:4583,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:4585,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse.c:4595,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4598,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/cfgparse.c:4599,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:4600,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4607,1
    - Dst: struct cfg_postparser*::func
      Src: /src/haproxy/src/cfgparse.c:4609,1
    - Dst: get_tainted
      Src: /src/haproxy/src/cfgparse.c:4613,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse.c:4614,1
    CyclomaticComplexity: 436
    EdgeCount: 436
    ICount: 1155
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4624
      start: 2750
    functionDepth: 9
    functionLinenumber: 2750
    functionLinenumberEnd: 4624
    functionName: check_config_validity
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - LIST_PREV
    - add_to_logformat_list
    - proxy_type_str
    - free_tcpcheck_vars
    - lf_expr_deinit
    - strstr
    - stop_proxy
    - strcmp
    - ha_free
    - server_find_by_name
    - conn_get_best_mux_entry
    - calloc
    - strdup
    - listener_get_next_id
    - reset_usermsgs_ctx
    - check_action_rules
    - ha_alert
    - LIST_ELEM
    - srv_set_dyncookie
    - li_init_per_thr
    - lf_expr_postcheck
    - peers_alloc_dcache
    - bind_generate_guid
    - free
    - isttest
    - find_tcpcheck_ruleset
    - bind_complete_thread_setup
    - fwlc_init_server_tree
    - srv_preinit
    - ONLY_ONCE
    - server_index_id
    - ceb_intree
    - lf_expr_init
    - free_email_alert
    - strlen
    - LIST_NEXT
    - userlist_postinit
    - LIST_ISEMPTY
    - lf_expr_isempty
    - BUG_ON
    - parse_logformat_string
    - warnif_tcp_http_cond
    - HA_SPIN_INIT
    - get_tainted
    - server_parse_exprs
    - srv_minmax_conn_apply
    - xprt_get
    - indent_msg
    - isteq
    - acl_find_targets
    - init_server_ss
    - sample_src_names
    - get_mux_proto
    - conn_pr_mode_to_proto_mode
    - ha_warning
    - proxy_index_id
    - stktable_init
    - proxy_be_by_name
    - MT_LIST_FOR_EACH_ENTRY_LOCKED
    - init_email_alert
    - flt_check
    - create_pool
    - typeof
    - smp_resolve_args
    - proxy_cfg_ensure_no_log
    - resolve_stick_rule
    - HA_RWLOCK_INIT
    - thread_map_to_groups
    - proxy_mode_str
    - srv_is_quic
    - server_get_next_id
    - struct bind_conf*::xprt::prepare_bind_conf
    - parse_http_req_cond
    - chash_init_server_tree
    - struct cfg_postparser*::func
    - fas_init_server_tree
    - listener_index_id
    - sample_parse_expr
    - create_tcpcheck_ruleset
    - peers_init_sync
    - MT_LIST_INIT
    - cebis_item_prev_dup
    - struct bind_conf*::xprt::destroy_bind_conf
    - init_server_map
    - stats_uri_auth_drop
    - proxy_cfg_ensure_no_http
    - LIST_APPEND
    - task_new_anywhere
    - memprintf
    - ist
    - list_for_each_entry
    - proxy_get_next_id
    - srv_apply_track
    - lf_expr_compile
    - task_new_on
    - set_usermsgs_ctx
    - fwrr_init_server_groups
    - proxy_init_per_thr
    linkageType: ''
    returnType: int
    signature: int check_config_validity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:4632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct cfg_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4633
      start: 4630
    functionDepth: 1
    functionLinenumber: 4630
    functionLinenumberEnd: 4633
    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:4640,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cfgparse.c:4641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct cfg_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4642
      start: 4638
    functionDepth: 1
    functionLinenumber: 4638
    functionLinenumberEnd: 4642
    functionName: cfg_unregister_keywords
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - LIST_DELETE
    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:4657,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:4658,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4659,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse.c:4665,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4667,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:4675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - section_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4678
      start: 4649
    functionDepth: 1
    functionLinenumber: 4649
    functionLinenumberEnd: 4678
    functionName: cfg_register_section
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - strcmp
    - LIST_APPEND
    - ha_alert
    - calloc
    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:4688,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse.c:4690,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:4696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4699
      start: 4684
    functionDepth: 1
    functionLinenumber: 4684
    functionLinenumberEnd: 4699
    functionName: cfg_register_postparser
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - calloc
    - ha_alert
    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:4708,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse.c:4709,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse.c:4710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4712
      start: 4704
    functionDepth: 3
    functionLinenumber: 4704
    functionLinenumberEnd: 4712
    functionName: cfg_unregister_sections
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry_safe
    - free
    - LIST_DELETE
    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:4718,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse.c:4719,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:4720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - backup_sections
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4722
      start: 4714
    functionDepth: 1
    functionLinenumber: 4714
    functionLinenumberEnd: 4722
    functionName: cfg_backup_sections
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    - list_for_each_entry_safe
    - LIST_DELETE
    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:4729,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:4730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - backup_sections
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4732
      start: 4724
    functionDepth: 1
    functionLinenumber: 4724
    functionLinenumberEnd: 4732
    functionName: cfg_restore_sections
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    - LIST_DELETE
    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:4729,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cfgparse.c:4730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4731
      start: 4728
    functionDepth: 1
    functionLinenumber: 4728
    functionLinenumberEnd: 4731
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 49
    functionsReached:
    - LIST_APPEND
    - LIST_DELETE
    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:4746,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4749,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:4752,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4757,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4774,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:4775,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:4778,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4788,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4790,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4795,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:4796,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:4799,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse.c:4808,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4812,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4814,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4818,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:4820,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4829,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4831,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:4836,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:4842,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4849,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4851,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4853,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4855,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4856,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:4859,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:4860,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:4861,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:4862,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:4863,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:4864,1
    - Dst: dump_act_rules
      Src: /src/haproxy/src/cfgparse.c:4865,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse.c:4871,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:4873,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4881,1
    - Dst: strordered
      Src: /src/haproxy/src/cfgparse.c:4892,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4900,1
    - Dst: printf
      Src: /src/haproxy/src/cfgparse.c:4902,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4735
    functionDepth: 2
    functionLinenumber: 4735
    functionLinenumberEnd: 4908
    functionName: cfg_dump_registered_keywords
    functionSourceFile: /src/haproxy/src/cfgparse.c
    functionUses: 0
    functionsReached:
    - strordered
    - list_for_each_entry
    - strcmp
    - dump_act_rules
    - printf
    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:
    - MAX
    - BUG_ON
    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: 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: 10
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct sample_fetch_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 456
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pckl
    argTypes:
    - struct sample_conv_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 465
    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:477,1
    - Dst: strncmp
      Src: /src/haproxy/src/sample.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - kw
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 485
    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:498,1
    - Dst: putchar
      Src: /src/haproxy/src/sample.c:500,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:502,1
    - Dst: putchar
      Src: /src/haproxy/src/sample.c:505,1
    - Dst: putchar
      Src: /src/haproxy/src/sample.c:507,1
    - Dst: putchar
      Src: /src/haproxy/src/sample.c:509,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:510,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/sample.c:514,1
    - Dst: strordered
      Src: /src/haproxy/src/sample.c:516,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:526,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:528,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:530,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:533,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:539,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:542,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:543,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:547,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:549,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:551,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:552,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 554
    functionName: smp_dump_fetch_kw
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - printf
    - strordered
    - putchar
    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:566,1
    - Dst: strordered
      Src: /src/haproxy/src/sample.c:568,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:578,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:581,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:587,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:590,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:591,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:595,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:597,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:599,1
    - Dst: printf
      Src: /src/haproxy/src/sample.c:600,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 602
    functionName: smp_dump_conv_kw
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - printf
    - strordered
    - 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:619,1
    - Dst: container_of
      Src: /src/haproxy/src/sample.c:624,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/sample.c:640,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - current
    - idx
    argTypes:
    - struct sample_fetch*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 612
    functionDepth: 1
    functionLinenumber: 612
    functionLinenumberEnd: 645
    functionName: sample_fetch_getnext
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - container_of
    - LIST_NEXT
    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:662,1
    - Dst: container_of
      Src: /src/haproxy/src/sample.c:667,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/sample.c:682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - current
    - idx
    argTypes:
    - struct sample_conv*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 687
    functionName: sample_conv_getnext
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - container_of
    - LIST_NEXT
    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:699,1
    - Dst: strncmp
      Src: /src/haproxy/src/sample.c:701,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - kw
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 707
    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:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 718
    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:722,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/sample.c:724,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 720
    functionDepth: 2
    functionLinenumber: 720
    functionLinenumberEnd: 733
    functionName: c_ip2str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - strlen
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int c_ip2str(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: v4tov6
      Src: /src/haproxy/src/sample.c:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 735
    functionDepth: 2
    functionLinenumber: 735
    functionLinenumberEnd: 740
    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:744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 742
    functionDepth: 2
    functionLinenumber: 742
    functionLinenumberEnd: 748
    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:752,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/sample.c:754,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 762
    functionName: c_ipv62str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - strlen
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int c_ipv62str(struct sample *smp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/haproxy/src/sample.c:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 776
    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:780,1
    - Dst: v4tov6
      Src: /src/haproxy/src/sample.c:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 778
    functionDepth: 2
    functionLinenumber: 778
    functionLinenumberEnd: 784
    functionName: c_int2ipv6
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - htonl
    - v4tov6
    linkageType: ''
    returnType: int
    signature: int c_int2ipv6(struct sample *smp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: buf2ip
      Src: /src/haproxy/src/sample.c:788,1
    - Dst: buf2ip6
      Src: /src/haproxy/src/sample.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 798
    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:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 807
    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:811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 816
    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: 834
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 834
    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:838,1
    - Dst: lltoa_r
      Src: /src/haproxy/src/sample.c:841,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:847,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 836
    functionDepth: 2
    functionLinenumber: 836
    functionLinenumberEnd: 852
    functionName: c_int2str
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - strlen
    - get_trash_chunk
    - lltoa_r
    linkageType: ''
    returnType: int
    signature: int c_int2str(struct sample *smp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:879,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:885,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:893,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:898,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 860
    functionDepth: 2
    functionLinenumber: 860
    functionLinenumberEnd: 910
    functionName: smp_dup
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 4
    functionsReached:
    - memcpy
    - get_trash_chunk
    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: 915
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 915
    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:928,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 931
    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:944,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 948
    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:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 950
    functionDepth: 2
    functionLinenumber: 950
    functionLinenumberEnd: 966
    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: 993
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 993
    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:997,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:1001,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:1005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 995
    functionDepth: 2
    functionLinenumber: 995
    functionLinenumberEnd: 1013
    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:1017,1
    - Dst: my_htonll
      Src: /src/haproxy/src/sample.c:1019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1025
    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:1029,1
    - Dst: my_htonll
      Src: /src/haproxy/src/sample.c:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1027
    functionDepth: 2
    functionLinenumber: 1027
    functionLinenumberEnd: 1036
    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:1105,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1107,1
    - Dst: is_idchar
      Src: /src/haproxy/src/sample.c:1129,1
    - Dst: ha_free
      Src: /src/haproxy/src/sample.c:1132,1
    - Dst: my_strndup
      Src: /src/haproxy/src/sample.c:1133,1
    - Dst: find_sample_conv
      Src: /src/haproxy/src/sample.c:1135,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1142,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1147,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1153,1
    - Dst: calloc
      Src: /src/haproxy/src/sample.c:1166,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:1170,1
    - Dst: make_arg_list
      Src: /src/haproxy/src/sample.c:1177,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1179,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1184,1
    - Dst: struct sample_conv*::val_args
      Src: /src/haproxy/src/sample.c:1191,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1192,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1202,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: 1208
      start: 1083
    functionDepth: 5
    functionLinenumber: 1083
    functionLinenumberEnd: 1208
    functionName: sample_parse_expr_cnv
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - my_strndup
    - find_sample_conv
    - is_idchar
    - ha_free
    - LIST_APPEND
    - free
    - memprintf
    - struct sample_conv*::val_args
    - make_arg_list
    - calloc
    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:1234,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1238,1
    - Dst: my_strndup
      Src: /src/haproxy/src/sample.c:1243,1
    - Dst: find_sample_fetch
      Src: /src/haproxy/src/sample.c:1245,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1247,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1257,1
    - Dst: calloc
      Src: /src/haproxy/src/sample.c:1261,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/sample.c:1265,1
    - Dst: make_arg_list
      Src: /src/haproxy/src/sample.c:1277,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1278,1
    - Dst: struct sample_fetch*::val_args
      Src: /src/haproxy/src/sample.c:1290,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1291,1
    - Dst: sample_parse_expr_cnv
      Src: /src/haproxy/src/sample.c:1295,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1299,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/sample.c:1303,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: 1306
      start: 1223
    functionDepth: 6
    functionLinenumber: 1223
    functionLinenumberEnd: 1306
    functionName: sample_parse_expr
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 15
    functionsReached:
    - my_strndup
    - is_idchar
    - free
    - LIST_INIT
    - struct sample_fetch*::val_args
    - memprintf
    - find_sample_fetch
    - release_sample_expr
    - make_arg_list
    - sample_parse_expr_cnv
    - calloc
    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:1319,1
    - Dst: struct sample_conv_expr*::conv::process
      Src: /src/haproxy/src/sample.c:1337,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - expr
    - p
    argTypes:
    - struct sample_expr*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1315
    functionDepth: 0
    functionLinenumber: 1315
    functionLinenumberEnd: 1341
    functionName: sample_process_cnv
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - 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:1373,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:1376,1
    - Dst: struct sample_expr*::fetch::process
      Src: /src/haproxy/src/sample.c:1377,1
    - Dst: sample_process_cnv
      Src: /src/haproxy/src/sample.c:1380,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: 1383
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1383
    functionName: sample_process
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 5
    functionsReached:
    - sample_process_cnv
    - struct sample_expr*::fetch::process
    - smp_set_owner
    - memset
    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: 55
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/sample.c:1401,1
    - Dst: struct arg*::resolve_ptr
      Src: /src/haproxy/src/sample.c:1455,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1456,1
    - Dst: ha_free
      Src: /src/haproxy/src/sample.c:1460,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1468,1
    - Dst: strrchr
      Src: /src/haproxy/src/sample.c:1476,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/sample.c:1482,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1484,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1493,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/sample.c:1502,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1504,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1513,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/sample.c:1521,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1525,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1533,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1540,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/sample.c:1548,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1552,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1560,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1567,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1577,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/sample.c:1586,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1588,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1596,1
    - Dst: in_proxies_list
      Src: /src/haproxy/src/sample.c:1603,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1608,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1615,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:1623,1
    - Dst: auth_find_userlist
      Src: /src/haproxy/src/sample.c:1626,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1629,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1637,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1644,1
    - Dst: regex_comp
      Src: /src/haproxy/src/sample.c:1655,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1656,1
    - Dst: ha_free
      Src: /src/haproxy/src/sample.c:1660,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1665,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/sample.c:1673,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1674,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 241
    argCount: 2
    argNames:
    - p
    - err
    argTypes:
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1390
    functionDepth: 5
    functionLinenumber: 1390
    functionLinenumberEnd: 1678
    functionName: smp_resolve_args
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 3
    functionsReached:
    - LIST_DELETE
    - in_proxies_list
    - strcmp
    - auth_find_userlist
    - list_for_each_entry_safe
    - proxy_fe_by_name
    - ha_free
    - strrchr
    - server_find_by_name
    - stktable_find_by_name
    - regex_comp
    - chunk_destroy
    - proxy_be_by_name
    - free
    - memprintf
    - struct arg*::resolve_ptr
    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:1707,1
    - Dst: sample_process
      Src: /src/haproxy/src/sample.c:1709,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: 1726
      start: 1701
    functionDepth: 2
    functionLinenumber: 1701
    functionLinenumberEnd: 1726
    functionName: sample_fetch_as_type
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 9
    functionsReached:
    - memset
    - sample_process
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1737,1
    - Dst: regex_free
      Src: /src/haproxy/src/sample.c:1741,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1748,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct arg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1749
      start: 1728
    functionDepth: 3
    functionLinenumber: 1728
    functionLinenumberEnd: 1749
    functionName: release_sample_arg
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - free
    - 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:1758,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/sample.c:1759,1
    - Dst: release_sample_arg
      Src: /src/haproxy/src/sample.c:1760,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1761,1
    - Dst: release_sample_arg
      Src: /src/haproxy/src/sample.c:1764,1
    - Dst: free
      Src: /src/haproxy/src/sample.c:1765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct sample_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1751
    functionDepth: 4
    functionLinenumber: 1751
    functionLinenumberEnd: 1766
    functionName: release_sample_expr
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 22
    functionsReached:
    - list_for_each_entry_safe
    - free
    - release_sample_arg
    - LIST_DELETE
    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:1782,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sample.c:1787,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sample.c:1790,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:1792,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:1799,1
    - Dst: b_putchr
      Src: /src/haproxy/src/sample.c:1806,1
    - Dst: isprint
      Src: /src/haproxy/src/sample.c:1808,1
    - Dst: b_putchr
      Src: /src/haproxy/src/sample.c:1809,1
    - Dst: b_putchr
      Src: /src/haproxy/src/sample.c:1811,1
    - Dst: b_putchr
      Src: /src/haproxy/src/sample.c:1813,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:1816,1
    - Dst: sink_write
      Src: /src/haproxy/src/sample.c:1817,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:1819,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/sample.c:1822,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: 1824
      start: 1773
    functionDepth: 1
    functionLinenumber: 1773
    functionLinenumberEnd: 1824
    functionName: sample_conv_debug
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sink_write
    - chunk_printf
    - free_trash_chunk
    - chunk_appendf
    - isprint
    - BUG_ON
    - ist2
    - b_putchr
    - alloc_trash_chunk
    - memcpy
    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:1842,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1844,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:1848,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: 1852
      start: 1827
    functionDepth: 5
    functionLinenumber: 1827
    functionLinenumberEnd: 1852
    functionName: smp_check_debug
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - memprintf
    - sink_find_early
    linkageType: ''
    returnType: int
    signature: "int smp_check_debug(struct arg *args, struct sample_conv *conv,\n
      \                          const char *file, int line, char **err)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:1856,1
    - Dst: base64dec
      Src: /src/haproxy/src/sample.c:1860,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1870
      start: 1854
    functionDepth: 2
    functionLinenumber: 1854
    functionLinenumberEnd: 1870
    functionName: sample_conv_base642bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - base64dec
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_base642bin(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:1874,1
    - Dst: base64urldec
      Src: /src/haproxy/src/sample.c:1878,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1872
    functionDepth: 2
    functionLinenumber: 1872
    functionLinenumberEnd: 1888
    functionName: sample_conv_base64url2bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - base64urldec
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_base64url2bin(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:1892,1
    - Dst: a2base64
      Src: /src/haproxy/src/sample.c:1896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1890
    functionDepth: 2
    functionLinenumber: 1890
    functionLinenumberEnd: 1906
    functionName: sample_conv_bin2base64
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - a2base64
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_bin2base64(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:1910,1
    - Dst: a2base64url
      Src: /src/haproxy/src/sample.c:1914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1924
      start: 1908
    functionDepth: 2
    functionLinenumber: 1908
    functionLinenumberEnd: 1924
    functionName: sample_conv_bin2base64url
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - a2base64url
    - get_trash_chunk
    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:1935,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: 1942
      start: 1933
    functionDepth: 4
    functionLinenumber: 1933
    functionLinenumberEnd: 1942
    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:1947,1
    - Dst: memset
      Src: /src/haproxy/src/sample.c:1949,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/sample.c:1951,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/sample.c:1952,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/sample.c:1953,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: 1960
      start: 1944
    functionDepth: 2
    functionLinenumber: 1944
    functionLinenumberEnd: 1960
    functionName: sample_conv_sha1
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - blk_SHA1_Final
    - blk_SHA1_Init
    - memset
    - get_trash_chunk
    - blk_SHA1_Update
    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:1981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - arg
    - smp
    argTypes:
    - struct arg*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1972
    functionDepth: 5
    functionLinenumber: 1972
    functionLinenumberEnd: 1985
    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:1991,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:1996,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: 2001
      start: 1987
    functionDepth: 5
    functionLinenumber: 1987
    functionLinenumberEnd: 2001
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2011,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:2026,1
    - Dst: ulltoa
      Src: /src/haproxy/src/sample.c:2040,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - args
    - smp
    - private
    - be
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2009
    functionDepth: 2
    functionLinenumber: 2009
    functionLinenumberEnd: 2053
    functionName: sample_conv_2dec
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memcpy
    - ulltoa
    - get_trash_chunk
    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:2063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2061
    functionDepth: 3
    functionLinenumber: 2061
    functionLinenumberEnd: 2064
    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:2074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2072
    functionDepth: 3
    functionLinenumber: 2072
    functionLinenumberEnd: 2075
    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:2081,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2086,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: 2091
      start: 2077
    functionDepth: 5
    functionLinenumber: 2077
    functionLinenumberEnd: 2091
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2101,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:2117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2135
      start: 2099
    functionDepth: 2
    functionLinenumber: 2099
    functionLinenumberEnd: 2135
    functionName: sample_conv_be2hex
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - memcpy
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_be2hex(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2139,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: 2153
      start: 2137
    functionDepth: 2
    functionLinenumber: 2137
    functionLinenumberEnd: 2153
    functionName: sample_conv_bin2hex
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_bin2hex(const struct arg *arg_p, struct sample *smp,
      void *private)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2157,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2172
      start: 2155
    functionDepth: 2
    functionLinenumber: 2155
    functionLinenumberEnd: 2172
    functionName: sample_conv_bin2base2
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    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:2180,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: 2189
      start: 2174
    functionDepth: 1
    functionLinenumber: 2174
    functionLinenumberEnd: 2189
    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:2194,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2197,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: 2200
      start: 2192
    functionDepth: 2
    functionLinenumber: 2192
    functionLinenumberEnd: 2200
    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: 2208
      start: 2202
    functionDepth: 0
    functionLinenumber: 2202
    functionLinenumberEnd: 2208
    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:2215,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: 2223
      start: 2211
    functionDepth: 1
    functionLinenumber: 2211
    functionLinenumberEnd: 2223
    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:2229,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: 2237
      start: 2225
    functionDepth: 1
    functionLinenumber: 2225
    functionLinenumberEnd: 2237
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_ipv62ip
      Src: /src/haproxy/src/sample.c:2243,1
    - Dst: write_u64
      Src: /src/haproxy/src/sample.c:2254,1
    - Dst: read_u64
      Src: /src/haproxy/src/sample.c:2255,1
    - Dst: read_u64
      Src: /src/haproxy/src/sample.c:2255,1
    - Dst: write_u64
      Src: /src/haproxy/src/sample.c:2256,1
    - Dst: read_u64
      Src: /src/haproxy/src/sample.c:2257,1
    - Dst: read_u64
      Src: /src/haproxy/src/sample.c:2257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2262
      start: 2240
    functionDepth: 3
    functionLinenumber: 2240
    functionLinenumberEnd: 2262
    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:2291,1
    - Dst: isdigit
      Src: /src/haproxy/src/sample.c:2305,1
    - Dst: isdigit
      Src: /src/haproxy/src/sample.c:2308,1
    - Dst: atoi
      Src: /src/haproxy/src/sample.c:2335,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 3
    argNames:
    - format
    - skip
    - width
    argTypes:
    - char*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2276
    functionDepth: 0
    functionLinenumber: 2276
    functionLinenumberEnd: 2339
    functionName: lookup_convspec_N
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - isdigit
    - atoi
    - 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:2365,1
    - Dst: get_gmtime
      Src: /src/haproxy/src/sample.c:2367,1
    - Dst: lookup_convspec_N
      Src: /src/haproxy/src/sample.c:2380,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:2388,1
    - Dst: snprintf
      Src: /src/haproxy/src/sample.c:2393,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/sample.c:2395,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:2395,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/sample.c:2397,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:2397,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/sample.c:2405,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2407,1
    - Dst: strftime
      Src: /src/haproxy/src/sample.c:2408,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2410,1
    - Dst: strftime
      Src: /src/haproxy/src/sample.c:2411,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:2415,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: 2417
      start: 2355
    functionDepth: 2
    functionLinenumber: 2355
    functionLinenumberEnd: 2417
    functionName: conv_time_common
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - lookup_convspec_N
    - get_trash_chunk
    - snprintf
    - free_trash_chunk
    - strftime
    - ist2
    - chunk_strcat
    - chunk_istcat
    - get_localtime
    - alloc_trash_chunk
    - get_gmtime
    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:2434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2438
      start: 2424
    functionDepth: 3
    functionLinenumber: 2424
    functionLinenumberEnd: 2438
    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:2453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2443
    functionDepth: 3
    functionLinenumber: 2443
    functionLinenumberEnd: 2457
    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:2475,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2477,1
    - Dst: strftime
      Src: /src/haproxy/src/sample.c:2478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2464
    functionDepth: 2
    functionLinenumber: 2464
    functionLinenumberEnd: 2482
    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:2487,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2490,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: 2493
      start: 2485
    functionDepth: 2
    functionLinenumber: 2485
    functionLinenumberEnd: 2493
    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:2508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2498
    functionDepth: 3
    functionLinenumber: 2498
    functionLinenumberEnd: 2512
    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:2527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2531
      start: 2517
    functionDepth: 3
    functionLinenumber: 2517
    functionLinenumberEnd: 2531
    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:2548,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2550,1
    - Dst: strftime
      Src: /src/haproxy/src/sample.c:2551,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2555
      start: 2537
    functionDepth: 2
    functionLinenumber: 2537
    functionLinenumberEnd: 2555
    functionName: sample_conv_utime
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_gmtime
    - get_trash_chunk
    - strftime
    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:2560,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2563,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: 2566
      start: 2558
    functionDepth: 2
    functionLinenumber: 2558
    functionLinenumberEnd: 2566
    functionName: sample_conv_wt6
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - full_hash
    - hash_wt6
    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:2579,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: 2583
      start: 2571
    functionDepth: 0
    functionLinenumber: 2571
    functionLinenumberEnd: 2583
    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:2599,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: 2603
      start: 2591
    functionDepth: 0
    functionLinenumber: 2591
    functionLinenumberEnd: 2603
    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:2613,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: 2617
      start: 2605
    functionDepth: 1
    functionLinenumber: 2605
    functionLinenumberEnd: 2617
    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:2622,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2625,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: 2628
      start: 2620
    functionDepth: 2
    functionLinenumber: 2620
    functionLinenumberEnd: 2628
    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:2633,1
    - Dst: full_hash
      Src: /src/haproxy/src/sample.c:2636,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: 2639
      start: 2631
    functionDepth: 2
    functionLinenumber: 2631
    functionLinenumberEnd: 2639
    functionName: sample_conv_crc32c
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - full_hash
    - hash_crc32c
    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:2664,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2666,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2668,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2670,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2672,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:2674,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2677,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:2682,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: 2686
      start: 2659
    functionDepth: 5
    functionLinenumber: 2659
    functionLinenumberEnd: 2686
    functionName: sample_conv_json_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - memprintf
    - strcmp
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:2701,1
    - Dst: utf8_next
      Src: /src/haproxy/src/sample.c:2714,1
    - Dst: utf8_return_length
      Src: /src/haproxy/src/sample.c:2717,1
    - Dst: utf8_return_code
      Src: /src/haproxy/src/sample.c:2719,1
    - Dst: utf8_return_code
      Src: /src/haproxy/src/sample.c:2721,1
    - Dst: utf8_return_code
      Src: /src/haproxy/src/sample.c:2723,1
    - Dst: utf8_return_code
      Src: /src/haproxy/src/sample.c:2725,1
    - Dst: isprint
      Src: /src/haproxy/src/sample.c:2769,1
    - Dst: snprintf
      Src: /src/haproxy/src/sample.c:2776,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:2790,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 78
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2799
      start: 2688
    functionDepth: 2
    functionLinenumber: 2688
    functionLinenumberEnd: 2799
    functionName: sample_conv_json
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - utf8_next
    - get_trash_chunk
    - snprintf
    - isprint
    - utf8_return_length
    - utf8_return_code
    - memcpy
    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:2810,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:2811,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:2830,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:2831,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: 2860
      start: 2804
    functionDepth: 1
    functionLinenumber: 2804
    functionLinenumberEnd: 2860
    functionName: sample_conv_bytes
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp_sint
    - smp_set_owner
    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:2868,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2873,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2880,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:2885,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: 2890
      start: 2862
    functionDepth: 5
    functionLinenumber: 2862
    functionLinenumberEnd: 2890
    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: 2968
      start: 2896
    functionDepth: 0
    functionLinenumber: 2896
    functionLinenumberEnd: 2968
    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: 3069
      start: 2974
    functionDepth: 0
    functionLinenumber: 2974
    functionLinenumberEnd: 3069
    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:3075,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: 3080
      start: 3071
    functionDepth: 5
    functionLinenumber: 3071
    functionLinenumberEnd: 3080
    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:3101,1
    - Dst: memcmp
      Src: /src/haproxy/src/sample.c:3110,1
    - Dst: memchr
      Src: /src/haproxy/src/sample.c:3112,1
    - Dst: memchr
      Src: /src/haproxy/src/sample.c:3123,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: 3132
      start: 3082
    functionDepth: 0
    functionLinenumber: 3082
    functionLinenumberEnd: 3132
    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:3157,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: 3164
      start: 3134
    functionDepth: 5
    functionLinenumber: 3134
    functionLinenumberEnd: 3164
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:3176,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/sample.c:3192,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3203,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:3210,1
    - Dst: exp_replace
      Src: /src/haproxy/src/sample.c:3214,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3221,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:3226,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3248
      start: 3171
    functionDepth: 2
    functionLinenumber: 3171
    functionLinenumberEnd: 3248
    functionName: sample_conv_regsub
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - free_trash_chunk
    - regex_exec_match2
    - alloc_trash_chunk
    - memcpy
    - exp_replace
    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:3264,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:3269,1
    - Dst: read_int64
      Src: /src/haproxy/src/sample.c:3270,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3272,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:3276,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: 3280
      start: 3253
    functionDepth: 5
    functionLinenumber: 3253
    functionLinenumberEnd: 3280
    functionName: check_operator
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - strlen
    - memprintf
    - read_int64
    - vars_check_arg
    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:3297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - arg
    - smp
    argTypes:
    - struct arg*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3301
      start: 3289
    functionDepth: 5
    functionLinenumber: 3289
    functionLinenumberEnd: 3301
    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: 3310
      start: 3306
    functionDepth: 0
    functionLinenumber: 3306
    functionLinenumberEnd: 3310
    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:3319,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3320,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: 3324
      start: 3315
    functionDepth: 6
    functionLinenumber: 3315
    functionLinenumberEnd: 3324
    functionName: sample_conv_binary_and
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp_sint
    - smp_set_owner
    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:3333,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3334,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: 3338
      start: 3329
    functionDepth: 6
    functionLinenumber: 3329
    functionLinenumberEnd: 3338
    functionName: sample_conv_binary_or
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp_sint
    - smp_set_owner
    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:3347,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3348,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: 3352
      start: 3343
    functionDepth: 6
    functionLinenumber: 3343
    functionLinenumberEnd: 3352
    functionName: sample_conv_binary_xor
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp_sint
    - smp_set_owner
    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: 3378
      start: 3354
    functionDepth: 0
    functionLinenumber: 3354
    functionLinenumberEnd: 3378
    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:3387,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3388,1
    - Dst: arith_add
      Src: /src/haproxy/src/sample.c:3390,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: 3392
      start: 3383
    functionDepth: 6
    functionLinenumber: 3383
    functionLinenumberEnd: 3392
    functionName: sample_conv_arith_add
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp_sint
    - smp_set_owner
    - 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:3402,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3403,1
    - Dst: arith_add
      Src: /src/haproxy/src/sample.c:3411,1
    - Dst: arith_add
      Src: /src/haproxy/src/sample.c:3420,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: 3422
      start: 3397
    functionDepth: 6
    functionLinenumber: 3397
    functionLinenumberEnd: 3422
    functionName: sample_conv_arith_sub
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp_sint
    - smp_set_owner
    - 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:3435,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3436,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: 3467
      start: 3429
    functionDepth: 6
    functionLinenumber: 3429
    functionLinenumberEnd: 3467
    functionName: sample_conv_arith_mul
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp_sint
    - smp_set_owner
    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:3479,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3480,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: 3496
      start: 3474
    functionDepth: 6
    functionLinenumber: 3474
    functionLinenumberEnd: 3496
    functionName: sample_conv_arith_div
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp_sint
    - smp_set_owner
    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:3507,1
    - Dst: sample_conv_var2smp_sint
      Src: /src/haproxy/src/sample.c:3508,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: 3524
      start: 3502
    functionDepth: 6
    functionLinenumber: 3502
    functionLinenumberEnd: 3524
    functionName: sample_conv_arith_mod
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sample_conv_var2smp_sint
    - smp_set_owner
    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: 3537
      start: 3529
    functionDepth: 0
    functionLinenumber: 3529
    functionLinenumberEnd: 3537
    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: 3548
      start: 3542
    functionDepth: 0
    functionLinenumber: 3542
    functionLinenumberEnd: 3548
    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: 3559
      start: 3553
    functionDepth: 0
    functionLinenumber: 3553
    functionLinenumberEnd: 3559
    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: 3570
      start: 3564
    functionDepth: 0
    functionLinenumber: 3564
    functionLinenumberEnd: 3570
    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: 3581
      start: 3575
    functionDepth: 0
    functionLinenumber: 3575
    functionLinenumberEnd: 3581
    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: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:3592,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3600,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3609,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3617,1
    - Dst: vars_get_by_desc
      Src: /src/haproxy/src/sample.c:3618,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3627,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3640,1
    - Dst: smp_dup
      Src: /src/haproxy/src/sample.c:3647,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:3648,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3650
      start: 3586
    functionDepth: 4
    functionLinenumber: 3586
    functionLinenumberEnd: 3650
    functionName: sample_conv_concat
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - smp_dup
    - smp_set_owner
    - alloc_trash_chunk
    - vars_get_by_desc
    - memcpy
    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:3659,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3660,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: 3665
      start: 3655
    functionDepth: 5
    functionLinenumber: 3655
    functionLinenumberEnd: 3665
    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: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:3677,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3685,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:3690,1
    - Dst: vars_get_by_desc
      Src: /src/haproxy/src/sample.c:3691,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3706,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3719,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:3731,1
    - Dst: smp_dup
      Src: /src/haproxy/src/sample.c:3738,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:3739,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: 3741
      start: 3670
    functionDepth: 4
    functionLinenumber: 3670
    functionLinenumberEnd: 3741
    functionName: sample_conv_add_item
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - smp_dup
    - smp_set_owner
    - alloc_trash_chunk
    - vars_get_by_desc
    - memcpy
    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:3750,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3751,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3757,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: 3762
      start: 3746
    functionDepth: 5
    functionLinenumber: 3746
    functionLinenumberEnd: 3762
    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:3772,1
    - Dst: sample_conv_var2smp
      Src: /src/haproxy/src/sample.c:3776,1
    - Dst: MIN
      Src: /src/haproxy/src/sample.c:3779,1
    - Dst: strncmp
      Src: /src/haproxy/src/sample.c:3780,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: 3795
      start: 3767
    functionDepth: 5
    functionLinenumber: 3767
    functionLinenumberEnd: 3795
    functionName: sample_conv_strcmp
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - strncmp
    - smp_set_owner
    - sample_conv_var2smp
    - MIN
    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:3819,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: 3820
      start: 3801
    functionDepth: 2
    functionLinenumber: 3801
    functionLinenumberEnd: 3820
    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:3841,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: 3846
      start: 3827
    functionDepth: 2
    functionLinenumber: 3827
    functionLinenumberEnd: 3846
    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: 3867
      start: 3852
    functionDepth: 0
    functionLinenumber: 3852
    functionLinenumberEnd: 3867
    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:3925,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/sample.c:3929,1
    - Dst: sc_conn
      Src: /src/haproxy/src/sample.c:3933,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/sample.c:3933,1
    - Dst: acl_exec_cond
      Src: /src/haproxy/src/sample.c:3938,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3950
      start: 3897
    functionDepth: 2
    functionLinenumber: 3897
    functionLinenumberEnd: 3950
    functionName: sample_conv_when
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - acl_exec_cond
    - sc_appctx
    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:3972,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3977,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3979,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3980,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3986,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3991,1
    - Dst: calloc
      Src: /src/haproxy/src/sample.c:3995,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:3997,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/sample.c:4001,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/sample.c:4002,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:4003,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/sample.c:4004,1
    - Dst: find_acl_by_name
      Src: /src/haproxy/src/sample.c:4008,1
    - Dst: find_acl_default
      Src: /src/haproxy/src/sample.c:4009,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4010,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4023,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4025,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4028,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 57
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4038
      start: 3957
    functionDepth: 5
    functionLinenumber: 3957
    functionLinenumberEnd: 4038
    functionName: check_when_cond
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - find_acl_by_name
    - strcmp
    - find_acl_default
    - LIST_APPEND
    - chunk_destroy
    - LIST_INIT
    - memprintf
    - calloc
    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:4061,1
    - Dst: read_u32
      Src: /src/haproxy/src/sample.c:4061,1
    - Dst: protobuf_field_lookup
      Src: /src/haproxy/src/sample.c:4069,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: 4076
      start: 4050
    functionDepth: 1
    functionLinenumber: 4050
    functionLinenumberEnd: 4076
    functionName: sample_conv_ungrpc
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ntohl
    - protobuf_field_lookup
    - 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:4086,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: 4087
      start: 4078
    functionDepth: 1
    functionLinenumber: 4078
    functionLinenumberEnd: 4087
    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:4099,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4101,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4105,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: 4111
      start: 4089
    functionDepth: 5
    functionLinenumber: 4089
    functionLinenumberEnd: 4111
    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:4123,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4123,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:4125,1
    - Dst: isttest
      Src: /src/haproxy/src/sample.c:4126,1
    - Dst: ist2buf
      Src: /src/haproxy/src/sample.c:4133,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: 4137
      start: 4118
    functionDepth: 1
    functionLinenumber: 4118
    functionLinenumberEnd: 4137
    functionName: sample_conv_fix_tag_value
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - istlen
    - ist2buf
    - fix_tag_value
    - ist2
    - 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:4150,1
    - Dst: fix_tagid
      Src: /src/haproxy/src/sample.c:4151,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4153,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4157,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: 4162
      start: 4144
    functionDepth: 5
    functionLinenumber: 4144
    functionLinenumberEnd: 4162
    functionName: sample_conv_fix_value_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - fix_tagid
    - memprintf
    - chunk_destroy
    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:4174,1
    - Dst: fix_validate_message
      Src: /src/haproxy/src/sample.c:4177,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: 4191
      start: 4170
    functionDepth: 1
    functionLinenumber: 4170
    functionLinenumberEnd: 4191
    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:4206,1
    - Dst: mqtt_field_value
      Src: /src/haproxy/src/sample.c:4211,1
    - Dst: istlen
      Src: /src/haproxy/src/sample.c:4212,1
    - Dst: isttest
      Src: /src/haproxy/src/sample.c:4213,1
    - Dst: ist2buf
      Src: /src/haproxy/src/sample.c:4220,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: 4223
      start: 4201
    functionDepth: 1
    functionLinenumber: 4201
    functionLinenumberEnd: 4223
    functionName: sample_conv_mqtt_field_value
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2buf
    - istlen
    - ist2
    - mqtt_field_value
    - 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:4238,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4238,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4240,1
    - Dst: mqtt_check_type_fieldname
      Src: /src/haproxy/src/sample.c:4245,1
    - Dst: ist2
      Src: /src/haproxy/src/sample.c:4245,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4247,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4253,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4254,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: 4261
      start: 4232
    functionDepth: 5
    functionLinenumber: 4232
    functionLinenumberEnd: 4261
    functionName: sample_conv_mqtt_field_value_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - ist2
    - mqtt_typeid
    - mqtt_check_type_fieldname
    - chunk_destroy
    - memprintf
    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:4273,1
    - Dst: mqtt_validate_message
      Src: /src/haproxy/src/sample.c:4276,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: 4290
      start: 4269
    functionDepth: 1
    functionLinenumber: 4269
    functionLinenumberEnd: 4290
    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:4299,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:4304,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4307,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: 4310
      start: 4295
    functionDepth: 5
    functionLinenumber: 4295
    functionLinenumberEnd: 4310
    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:4318,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:4319,1
    - Dst: memcpy
      Src: /src/haproxy/src/sample.c:4321,1
    - Dst: b_head
      Src: /src/haproxy/src/sample.c:4321,1
    - Dst: b_add
      Src: /src/haproxy/src/sample.c:4322,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: 4327
      start: 4313
    functionDepth: 2
    functionLinenumber: 4313
    functionLinenumberEnd: 4327
    functionName: sample_conv_htonl
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - htonl
    - b_head
    - memcpy
    - b_add
    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: 4342
      start: 4330
    functionDepth: 0
    functionLinenumber: 4330
    functionLinenumberEnd: 4342
    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:4355,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: 4363
      start: 4345
    functionDepth: 0
    functionLinenumber: 4345
    functionLinenumberEnd: 4363
    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:4376,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: 4383
      start: 4366
    functionDepth: 0
    functionLinenumber: 4366
    functionLinenumberEnd: 4383
    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:4390,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:4395,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4396,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: 4404
      start: 4386
    functionDepth: 5
    functionLinenumber: 4386
    functionLinenumberEnd: 4404
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:4417,1
    - Dst: mjson_find
      Src: /src/haproxy/src/sample.c:4423,1
    - Dst: strtoll
      Src: /src/haproxy/src/sample.c:4428,1
    - Dst: mjson_get_number
      Src: /src/haproxy/src/sample.c:4439,1
    - Dst: snprintf
      Src: /src/haproxy/src/sample.c:4442,1
    - Dst: mjson_get_string
      Src: /src/haproxy/src/sample.c:4461,1
    - Dst: b_putblk
      Src: /src/haproxy/src/sample.c:4477,1
    - Dst: my_unreachable
      Src: /src/haproxy/src/sample.c:4497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4499
      start: 4415
    functionDepth: 6
    functionLinenumber: 4415
    functionLinenumberEnd: 4499
    functionName: sample_conv_json_query
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - mjson_get_number
    - b_putblk
    - get_trash_chunk
    - mjson_find
    - snprintf
    - strtoll
    - mjson_get_string
    - my_unreachable
    linkageType: ''
    returnType: int
    signature: int sample_conv_json_query(const struct arg *args, struct sample *smp,
      void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:4508,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:4509,1
    - Dst: jwt_parse_alg
      Src: /src/haproxy/src/sample.c:4512,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4515,1
    - Dst: jwt_tree_load_cert
      Src: /src/haproxy/src/sample.c:4529,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4546
      start: 4502
    functionDepth: 5
    functionLinenumber: 4502
    functionLinenumberEnd: 4546
    functionName: sample_conv_jwt_verify_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - jwt_parse_alg
    - jwt_tree_load_cert
    - memprintf
    - 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:4554,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/sample.c:4555,1
    - Dst: jwt_parse_alg
      Src: /src/haproxy/src/sample.c:4558,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4561,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4573,1
    - Dst: jwt_tree_load_cert
      Src: /src/haproxy/src/sample.c:4576,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: 4589
      start: 4548
    functionDepth: 5
    functionLinenumber: 4548
    functionLinenumberEnd: 4589
    functionName: sample_conv_jwt_verify_cert_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - jwt_parse_alg
    - jwt_tree_load_cert
    - memprintf
    - 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
      Src: /src/haproxy/src/sample.c:4606,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:4609,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:4612,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/sample.c:4616,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:4619,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/sample.c:4620,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:4622,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:4622,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:4622,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:4625,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/sample.c:4626,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:4628,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:4628,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:4628,1
    - Dst: jwt_verify
      Src: /src/haproxy/src/sample.c:4631,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4639,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4640,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4641,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4643
      start: 4592
    functionDepth: 6
    functionLinenumber: 4592
    functionLinenumberEnd: 4643
    functionName: sample_conv_jwt_verify
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - b_orig
    - chunk_printf
    - b_data
    - jwt_verify
    - free_trash_chunk
    - smp_set_owner
    - chunk_cpy
    - sample_conv_var2smp_str
    - alloc_trash_chunk
    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
      Src: /src/haproxy/src/sample.c:4659,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:4662,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/sample.c:4665,1
    - Dst: chunk_cpy
      Src: /src/haproxy/src/sample.c:4669,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:4672,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/sample.c:4673,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:4675,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:4675,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:4675,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/sample.c:4678,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/sample.c:4679,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/sample.c:4681,1
    - Dst: b_data
      Src: /src/haproxy/src/sample.c:4681,1
    - Dst: b_orig
      Src: /src/haproxy/src/sample.c:4681,1
    - Dst: jwt_verify
      Src: /src/haproxy/src/sample.c:4684,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4692,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4693,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/sample.c:4694,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4696
      start: 4645
    functionDepth: 6
    functionLinenumber: 4645
    functionLinenumberEnd: 4696
    functionName: sample_conv_jwt_verify_cert
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - b_orig
    - chunk_printf
    - b_data
    - jwt_verify
    - free_trash_chunk
    - smp_set_owner
    - chunk_cpy
    - sample_conv_var2smp_str
    - alloc_trash_chunk
    linkageType: ''
    returnType: int
    signature: int sample_conv_jwt_verify_cert(const struct arg *args, struct sample
      *smp, void *private)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/sample.c:4709,1
    - Dst: jwt_tokenize
      Src: /src/haproxy/src/sample.c:4713,1
    - Dst: base64urldec
      Src: /src/haproxy/src/sample.c:4718,1
    - Dst: sample_conv_json_query
      Src: /src/haproxy/src/sample.c:4733,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 4
    argNames:
    - args
    - smp
    - private
    - member
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    - enum jwt_elt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4737
      start: 4704
    functionDepth: 7
    functionLinenumber: 4704
    functionLinenumberEnd: 4737
    functionName: sample_conv_jwt_member_query
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - jwt_tokenize
    - base64urldec
    - sample_conv_json_query
    - get_trash_chunk
    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:4747,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4748,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: 4756
      start: 4743
    functionDepth: 5
    functionLinenumber: 4743
    functionLinenumberEnd: 4756
    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:4766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4767
      start: 4764
    functionDepth: 8
    functionLinenumber: 4764
    functionLinenumberEnd: 4767
    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:4776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4777
      start: 4774
    functionDepth: 8
    functionLinenumber: 4774
    functionLinenumberEnd: 4777
    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: 4793
      start: 4787
    functionDepth: 0
    functionLinenumber: 4787
    functionLinenumberEnd: 4793
    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:4800,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: 4806
      start: 4797
    functionDepth: 1
    functionLinenumber: 4797
    functionLinenumberEnd: 4806
    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: 4815
      start: 4809
    functionDepth: 0
    functionLinenumber: 4809
    functionLinenumberEnd: 4815
    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:4826,1
    - Dst: strlen
      Src: /src/haproxy/src/sample.c:4833,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: 4835
      start: 4818
    functionDepth: 0
    functionLinenumber: 4818
    functionLinenumberEnd: 4835
    functionName: smp_fetch_env
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - strlen
    - getenv
    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:4847,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:4850,1
    - Dst: strcmp
      Src: /src/haproxy/src/sample.c:4853,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4857,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:4862,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:4867,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4872
      start: 4842
    functionDepth: 5
    functionLinenumber: 4842
    functionLinenumberEnd: 4872
    functionName: smp_check_date_unit
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 1
    functionsReached:
    - chunk_destroy
    - memprintf
    - strcmp
    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: 4901
      start: 4878
    functionDepth: 0
    functionLinenumber: 4878
    functionLinenumberEnd: 4901
    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: 4911
      start: 4904
    functionDepth: 0
    functionLinenumber: 4904
    functionLinenumberEnd: 4911
    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:4921,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: 4923
      start: 4915
    functionDepth: 0
    functionLinenumber: 4915
    functionLinenumberEnd: 4923
    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: 4932
      start: 4926
    functionDepth: 0
    functionLinenumber: 4926
    functionLinenumberEnd: 4932
    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: 4941
      start: 4935
    functionDepth: 0
    functionLinenumber: 4935
    functionLinenumberEnd: 4941
    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: 4951
      start: 4945
    functionDepth: 0
    functionLinenumber: 4945
    functionLinenumberEnd: 4951
    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: 4960
      start: 4954
    functionDepth: 0
    functionLinenumber: 4954
    functionLinenumberEnd: 4960
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng
      Src: /src/haproxy/src/sample.c:4968,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: 4977
      start: 4965
    functionDepth: 0
    functionLinenumber: 4965
    functionLinenumberEnd: 4977
    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: 4986
      start: 4980
    functionDepth: 0
    functionLinenumber: 4980
    functionLinenumberEnd: 4986
    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: 4998
      start: 4989
    functionDepth: 0
    functionLinenumber: 4989
    functionLinenumberEnd: 4998
    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: 5010
      start: 5001
    functionDepth: 0
    functionLinenumber: 5001
    functionLinenumberEnd: 5010
    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: 5022
      start: 5013
    functionDepth: 0
    functionLinenumber: 5013
    functionLinenumberEnd: 5022
    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: 5034
      start: 5025
    functionDepth: 0
    functionLinenumber: 5025
    functionLinenumberEnd: 5034
    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: 5046
      start: 5037
    functionDepth: 0
    functionLinenumber: 5037
    functionLinenumberEnd: 5046
    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: 5055
      start: 5048
    functionDepth: 0
    functionLinenumber: 5048
    functionLinenumberEnd: 5055
    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:5059,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/sample.c:5060,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:5061,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/sample.c:5066,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/sample.c:5067,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:5068,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5075
      start: 5057
    functionDepth: 5
    functionLinenumber: 5057
    functionLinenumberEnd: 5075
    functionName: smp_check_const_bool
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - strcasecmp
    - memprintf
    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: 5082
      start: 5077
    functionDepth: 0
    functionLinenumber: 5077
    functionLinenumberEnd: 5082
    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: 5089
      start: 5084
    functionDepth: 0
    functionLinenumber: 5084
    functionLinenumberEnd: 5089
    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: 5096
      start: 5091
    functionDepth: 0
    functionLinenumber: 5091
    functionLinenumberEnd: 5096
    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: 5103
      start: 5098
    functionDepth: 0
    functionLinenumber: 5098
    functionLinenumberEnd: 5103
    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:5110,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:5112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5117
      start: 5105
    functionDepth: 2
    functionLinenumber: 5105
    functionLinenumberEnd: 5117
    functionName: smp_check_const_bin
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - parse_binary
    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: 5126
      start: 5119
    functionDepth: 0
    functionLinenumber: 5119
    functionLinenumberEnd: 5126
    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:5133,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/sample.c:5135,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/sample.c:5145,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5146,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5152
      start: 5128
    functionDepth: 5
    functionLinenumber: 5128
    functionLinenumberEnd: 5152
    functionName: smp_check_const_meth
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - find_http_meth
    - memprintf
    - HTTP_IS_TOKEN
    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: 5169
      start: 5154
    functionDepth: 0
    functionLinenumber: 5154
    functionLinenumberEnd: 5169
    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:5184,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - args
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5190
      start: 5173
    functionDepth: 5
    functionLinenumber: 5173
    functionLinenumberEnd: 5190
    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:5205,1
    - Dst: ha_generate_uuid_v7
      Src: /src/haproxy/src/sample.c:5208,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: 5218
      start: 5193
    functionDepth: 3
    functionLinenumber: 5193
    functionLinenumberEnd: 5218
    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:5225,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: 5227
      start: 5221
    functionDepth: 1
    functionLinenumber: 5221
    functionLinenumberEnd: 5227
    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: 5241
      start: 5231
    functionDepth: 0
    functionLinenumber: 5231
    functionLinenumberEnd: 5241
    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:5259,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: 5314
      start: 5244
    functionDepth: 1
    functionLinenumber: 5244
    functionLinenumberEnd: 5314
    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: 5353
      start: 5318
    functionDepth: 0
    functionLinenumber: 5318
    functionLinenumberEnd: 5353
    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: 5377
      start: 5356
    functionDepth: 0
    functionLinenumber: 5356
    functionLinenumberEnd: 5377
    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: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5430
      start: 5380
    functionDepth: 0
    functionLinenumber: 5380
    functionLinenumberEnd: 5430
    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: 4
    BranchProfiles: []
    Callsites: []
    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: 5454
      start: 5433
    functionDepth: 0
    functionLinenumber: 5433
    functionLinenumberEnd: 5454
    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:5460,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5465,1
    - Dst: check_operator
      Src: /src/haproxy/src/sample.c:5471,1
    - Dst: memprintf
      Src: /src/haproxy/src/sample.c:5476,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: 5483
      start: 5456
    functionDepth: 6
    functionLinenumber: 5456
    functionLinenumberEnd: 5483
    functionName: sample_conv_bytes_check
    functionSourceFile: /src/haproxy/src/sample.c
    functionUses: 0
    functionsReached:
    - check_operator
    - memprintf
    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: 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: 73
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: RESUME_FILTER_LOOP
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RESUME_FILTER_LOOP(strm, chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - strm
    - ','
    - chn
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: BREAK_EXECUTION
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BREAK_EXECUTION(strm, chn, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kwl
    argTypes:
    - struct flt_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    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:124,1
    - Dst: strlen
      Src: /src/haproxy/src/filters.c:126,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:128,1
    - Dst: strncmp
      Src: /src/haproxy/src/filters.c:130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 140
    functionName: flt_find_kw
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 1
    functionsReached:
    - strlen
    - strncmp
    - list_for_each_entry
    - strchr
    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:159,1
    - Dst: flt_find_kw
      Src: /src/haproxy/src/filters.c:162,1
    - Dst: strordered
      Src: /src/haproxy/src/filters.c:163,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:176,1
    - Dst: printf
      Src: /src/haproxy/src/filters.c:181,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - out
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 147
    functionDepth: 5
    functionLinenumber: 147
    functionLinenumberEnd: 184
    functionName: flt_dump_kws
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - strordered
    - list_for_each_entry
    - printf
    - memprintf
    - flt_find_kw
    linkageType: ''
    returnType: void
    signature: void flt_dump_kws(char **out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/filters.c:194,1
    - Dst: flt_dump_kws
      Src: /src/haproxy/src/filters.c:195,1
    - Dst: strtok_r
      Src: /src/haproxy/src/filters.c:196,1
    - Dst: fprintf
      Src: /src/haproxy/src/filters.c:197,1
    - Dst: free
      Src: /src/haproxy/src/filters.c:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 189
    functionDepth: 6
    functionLinenumber: 189
    functionLinenumberEnd: 199
    functionName: list_filters
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - strtok_r
    - free
    - flt_dump_kws
    - fprintf
    linkageType: ''
    returnType: void
    signature: void list_filters(FILE *out)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:213,1
    - Dst: strcmp
      Src: /src/haproxy/src/filters.c:217,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:222,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/filters.c:224,1
    - Dst: calloc
      Src: /src/haproxy/src/filters.c:227,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:229,1
    - Dst: flt_find_kw
      Src: /src/haproxy/src/filters.c:234,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:237,1
    - Dst: struct flt_kw*::parse
      Src: /src/haproxy/src/filters.c:242,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:244,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:247,1
    - Dst: flt_dump_kws
      Src: /src/haproxy/src/filters.c:253,1
    - Dst: indent_msg
      Src: /src/haproxy/src/filters.c:254,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:255,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:261,1
    - Dst: memprintf
      Src: /src/haproxy/src/filters.c:266,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:271,1
    - Dst: free
      Src: /src/haproxy/src/filters.c:276,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 56
    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: 280
      start: 205
    functionDepth: 6
    functionLinenumber: 205
    functionLinenumberEnd: 280
    functionName: parse_filter
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - struct flt_kw*::parse
    - strcmp
    - indent_msg
    - LIST_APPEND
    - free
    - flt_find_kw
    - memprintf
    - proxy_type_str
    - flt_dump_kws
    - calloc
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:292,1
    - Dst: struct flt_conf*::ops::init
      Src: /src/haproxy/src/filters.c:293,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 297
    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:309,1
    - Dst: struct flt_conf*::ops::init_per_thread
      Src: /src/haproxy/src/filters.c:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: flt_init_per_thread
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - struct flt_conf*::ops::init_per_thread
    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:327,1
    - Dst: ha_alert
      Src: /src/haproxy/src/filters.c:329,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 335
    functionName: flt_init_all
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - flt_init
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int flt_init_all()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: flt_init_per_thread
      Src: /src/haproxy/src/filters.c:349,1
    - Dst: ha_alert
      Src: /src/haproxy/src/filters.c:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 357
    functionName: flt_init_all_per_thread
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - flt_init_per_thread
    - ha_alert
    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:370,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:371,1
    - Dst: struct flt_conf*::ops::check
      Src: /src/haproxy/src/filters.c:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 364
    functionDepth: 2
    functionLinenumber: 364
    functionLinenumberEnd: 376
    functionName: flt_check
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 1
    functionsReached:
    - check_implicit_http_comp_flt
    - list_for_each_entry
    - struct flt_conf*::ops::check
    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:387,1
    - Dst: struct flt_conf*::ops::deinit
      Src: /src/haproxy/src/filters.c:389,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/filters.c:390,1
    - Dst: free
      Src: /src/haproxy/src/filters.c:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 382
    functionDepth: 3
    functionLinenumber: 382
    functionLinenumberEnd: 393
    functionName: flt_deinit
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - struct flt_conf*::ops::deinit
    - list_for_each_entry_safe
    - free
    - LIST_DELETE
    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:404,1
    - Dst: struct flt_conf*::ops::deinit_per_thread
      Src: /src/haproxy/src/filters.c:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 408
    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:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 419
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/filters.c:427,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/filters.c:430,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:436,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:437,1
    - Dst: pool_free
      Src: /src/haproxy/src/filters.c:439,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/filters.c:444,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:444,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:445,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - s
    - fconf
    - flags
    argTypes:
    - struct stream*
    - struct flt_conf*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 447
    functionName: flt_stream_add_filter
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - IS_HTX_STRM
    - pool_free
    - pool_zalloc
    - LIST_APPEND
    - strm_flt
    linkageType: ''
    returnType: int
    signature: int flt_stream_add_filter(struct stream *s, struct flt_conf *fconf,
      unsigned int flags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/filters.c:458,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:458,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:458,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/filters.c:459,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:459,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:460,1
    - Dst: strm_fe
      Src: /src/haproxy/src/filters.c:460,1
    - Dst: flt_stream_add_filter
      Src: /src/haproxy/src/filters.c:461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 453
    functionDepth: 2
    functionLinenumber: 453
    functionLinenumberEnd: 465
    functionName: flt_stream_init
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - flt_stream_add_filter
    - memset
    - list_for_each_entry
    - strm_fe
    - LIST_INIT
    - strm_flt
    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:478,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:478,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:481,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:482,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/filters.c:483,1
    - Dst: pool_free
      Src: /src/haproxy/src/filters.c:484,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/filters.c:487,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:487,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - s
    - only_backend
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 489
    functionName: flt_stream_release
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - LIST_DELETE
    - pool_free
    - list_for_each_entry_safe
    - strm_flt
    - LIST_ISEMPTY
    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:501,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:501,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:502,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:504,1
    - Dst: strm_li
      Src: /src/haproxy/src/filters.c:508,1
    - Dst: strm_li
      Src: /src/haproxy/src/filters.c:508,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 513
    functionName: flt_stream_start
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - strm_li
    - list_for_each_entry
    - 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:524,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:524,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:525,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 530
    functionName: flt_stream_stop
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - list_for_each_entry
    - 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:541,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:541,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:542,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 547
    functionName: flt_stream_check_timeouts
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - list_for_each_entry
    - 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:560,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:563,1
    - Dst: flt_stream_add_filter
      Src: /src/haproxy/src/filters.c:564,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:569,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:569,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:570,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:572,1
    - Dst: strm_fe
      Src: /src/haproxy/src/filters.c:583,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - s
    - be
    argTypes:
    - struct stream*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 554
    functionDepth: 2
    functionLinenumber: 554
    functionLinenumberEnd: 589
    functionName: flt_set_stream_backend
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - flt_stream_add_filter
    - FLT_OPS
    - list_for_each_entry
    - strm_fe
    - strm_flt
    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:602,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:606,1
    - Dst: RESUME_FILTER_LOOP
      Src: /src/haproxy/src/filters.c:607,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/filters.c:608,1
    - Dst: IS_DATA_FILTER
      Src: /src/haproxy/src/filters.c:614,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:617,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:618,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:618,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:620,1
    - Dst: BREAK_EXECUTION
      Src: /src/haproxy/src/filters.c:622,1
    - Dst: c_adv
      Src: /src/haproxy/src/filters.c:626,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:630,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 632
    functionName: flt_http_end
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - DBG_TRACE_LEAVE
    - BREAK_EXECUTION
    - FLT_ID
    - FLT_OFF
    - IS_DATA_FILTER
    - c_adv
    - RESUME_FILTER_LOOP
    - FLT_STRM_OFF
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    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:643,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:644,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:644,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:645,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:646,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:646,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:648,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - struct http_msg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 652
    functionName: flt_http_reset
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - list_for_each_entry
    - DBG_TRACE_LEAVE
    - FLT_ID
    - strm_flt
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    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:663,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:664,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:664,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:665,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:666,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:666,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:668,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:671,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - s
    - status
    - msg
    argTypes:
    - struct stream*
    - short
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 658
    functionDepth: 1
    functionLinenumber: 658
    functionLinenumberEnd: 672
    functionName: flt_http_reply
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - list_for_each_entry
    - DBG_TRACE_LEAVE
    - FLT_ID
    - strm_flt
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    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:687,1
    - Dst: co_data
      Src: /src/haproxy/src/filters.c:688,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:691,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:694,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:695,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:695,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/filters.c:696,1
    - Dst: IS_DATA_FILTER
      Src: /src/haproxy/src/filters.c:702,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:702,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:707,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:707,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:709,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:730,1
    - Dst: chn_prod
      Src: /src/haproxy/src/filters.c:736,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:737,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 3
    argNames:
    - s
    - msg
    - len
    argTypes:
    - struct stream*
    - struct http_msg*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 739
    functionName: flt_http_payload
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - co_data
    - list_for_each_entry
    - DBG_TRACE_LEAVE
    - chn_prod
    - FLT_ID
    - FLT_OFF
    - IS_DATA_FILTER
    - strm_flt
    - FLT_STRM_OFF
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    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:755,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:777,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:778,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:778,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:780,1
    - Dst: BREAK_EXECUTION
      Src: /src/haproxy/src/filters.c:782,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:787,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:788,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 790
    functionName: flt_start_analyze
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - handle_analyzer_result
    - DBG_TRACE_LEAVE
    - BREAK_EXECUTION
    - FLT_ID
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    linkageType: ''
    returnType: int
    signature: int flt_start_analyze(struct stream *s, struct channel *chn, unsigned
      int an_bit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:777,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:778,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:778,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:780,1
    - Dst: BREAK_EXECUTION
      Src: /src/haproxy/src/filters.c:782,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 784
    functionName: RESUME_FILTER_LOOP
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 1
    functionsReached:
    - FLT_ID
    - FLT_OPS
    - DBG_TRACE_DEVEL
    - BREAK_EXECUTION
    linkageType: ''
    returnType: void
    signature: void RESUME_FILTER_LOOP(s, chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    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:807,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:810,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:811,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:811,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:813,1
    - Dst: BREAK_EXECUTION
      Src: /src/haproxy/src/filters.c:815,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:821,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 824
    functionName: flt_pre_analyze
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - handle_analyzer_result
    - DBG_TRACE_LEAVE
    - BREAK_EXECUTION
    - FLT_ID
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    linkageType: ''
    returnType: int
    signature: int flt_pre_analyze(struct stream *s, struct channel *chn, unsigned
      int an_bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:810,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:811,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:811,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:813,1
    - Dst: BREAK_EXECUTION
      Src: /src/haproxy/src/filters.c:815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 818
    functionName: RESUME_FILTER_LOOP
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 1
    functionsReached:
    - FLT_ID
    - FLT_OPS
    - DBG_TRACE_DEVEL
    - BREAK_EXECUTION
    linkageType: ''
    returnType: void
    signature: void RESUME_FILTER_LOOP(s, chn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:841,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:843,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:843,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:844,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:845,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:845,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:847,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:856,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:857,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 859
    functionName: flt_post_analyze
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - handle_analyzer_result
    - list_for_each_entry
    - DBG_TRACE_LEAVE
    - FLT_ID
    - strm_flt
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    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:873,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:876,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:877,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:877,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:879,1
    - Dst: BREAK_EXECUTION
      Src: /src/haproxy/src/filters.c:881,1
    - Dst: HAS_DATA_FILTERS
      Src: /src/haproxy/src/filters.c:885,1
    - Dst: http_get_hdrs_size
      Src: /src/haproxy/src/filters.c:886,1
    - Dst: htxbuf
      Src: /src/haproxy/src/filters.c:886,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:889,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:889,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/filters.c:890,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:894,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:895,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 897
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 897
    functionName: flt_analyze_http_headers
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - htxbuf
    - handle_analyzer_result
    - list_for_each_entry
    - DBG_TRACE_LEAVE
    - BREAK_EXECUTION
    - HAS_DATA_FILTERS
    - FLT_ID
    - FLT_OFF
    - strm_flt
    - http_get_hdrs_size
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    linkageType: ''
    returnType: int
    signature: int flt_analyze_http_headers(struct stream *s, struct channel *chn,
      unsigned int an_bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:876,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:877,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:877,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:879,1
    - Dst: BREAK_EXECUTION
      Src: /src/haproxy/src/filters.c:881,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 883
    functionName: RESUME_FILTER_LOOP
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 1
    functionsReached:
    - FLT_ID
    - FLT_OPS
    - DBG_TRACE_DEVEL
    - BREAK_EXECUTION
    linkageType: ''
    returnType: void
    signature: void RESUME_FILTER_LOOP(s, chn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:911,1
    - Dst: unregister_data_filter
      Src: /src/haproxy/src/filters.c:920,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:922,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:923,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:923,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:925,1
    - Dst: BREAK_EXECUTION
      Src: /src/haproxy/src/filters.c:927,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:934,1
    - Dst: flt_stream_release
      Src: /src/haproxy/src/filters.c:959,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:960,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:963,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - s
    - chn
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 906
    functionDepth: 2
    functionLinenumber: 906
    functionLinenumberEnd: 966
    functionName: flt_end_analyze
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - handle_analyzer_result
    - flt_stream_release
    - DBG_TRACE_LEAVE
    - BREAK_EXECUTION
    - unregister_data_filter
    - FLT_ID
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    linkageType: ''
    returnType: int
    signature: int flt_end_analyze(struct stream *s, struct channel *chn, unsigned
      int an_bit)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: unregister_data_filter
      Src: /src/haproxy/src/filters.c:920,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:922,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:923,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:923,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:925,1
    - Dst: BREAK_EXECUTION
      Src: /src/haproxy/src/filters.c:927,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 918
    functionDepth: 1
    functionLinenumber: 918
    functionLinenumberEnd: 929
    functionName: RESUME_FILTER_LOOP
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 1
    functionsReached:
    - FLT_OPS
    - BREAK_EXECUTION
    - unregister_data_filter
    - FLT_ID
    - DBG_TRACE_DEVEL
    linkageType: ''
    returnType: void
    signature: void RESUME_FILTER_LOOP(s, chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 919
    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:982,1
    - Dst: co_data
      Src: /src/haproxy/src/filters.c:983,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/filters.c:987,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/filters.c:988,1
    - Dst: strm_flt
      Src: /src/haproxy/src/filters.c:988,1
    - Dst: FLT_OFF
      Src: /src/haproxy/src/filters.c:989,1
    - Dst: IS_DATA_FILTER
      Src: /src/haproxy/src/filters.c:995,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:995,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1000,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/filters.c:1000,1
    - Dst: FLT_OPS
      Src: /src/haproxy/src/filters.c:1002,1
    - Dst: chn_prod
      Src: /src/haproxy/src/filters.c:1018,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:1019,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 3
    argNames:
    - s
    - chn
    - len
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 978
    functionDepth: 1
    functionLinenumber: 978
    functionLinenumberEnd: 1021
    functionName: flt_tcp_payload
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - FLT_OPS
    - co_data
    - list_for_each_entry
    - DBG_TRACE_LEAVE
    - chn_prod
    - FLT_ID
    - FLT_OFF
    - IS_DATA_FILTER
    - strm_flt
    - FLT_STRM_OFF
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    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:1037,1
    - Dst: HAS_DATA_FILTERS
      Src: /src/haproxy/src/filters.c:1040,1
    - Dst: htxbuf
      Src: /src/haproxy/src/filters.c:1044,1
    - Dst: c_data
      Src: /src/haproxy/src/filters.c:1048,1
    - Dst: flt_tcp_payload
      Src: /src/haproxy/src/filters.c:1050,1
    - Dst: c_adv
      Src: /src/haproxy/src/filters.c:1053,1
    - Dst: chn_cons
      Src: /src/haproxy/src/filters.c:1060,1
    - Dst: chn_prod
      Src: /src/haproxy/src/filters.c:1064,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/filters.c:1065,1
    - Dst: htxbuf
      Src: /src/haproxy/src/filters.c:1065,1
    - Dst: c_empty
      Src: /src/haproxy/src/filters.c:1065,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1076,1
    - Dst: handle_analyzer_result
      Src: /src/haproxy/src/filters.c:1081,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/filters.c:1082,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: 1084
      start: 1031
    functionDepth: 2
    functionLinenumber: 1031
    functionLinenumberEnd: 1084
    functionName: flt_xfer_data
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - chn_cons
    - handle_analyzer_result
    - DBG_TRACE_LEAVE
    - HAS_DATA_FILTERS
    - chn_prod
    - c_adv
    - c_empty
    - DBG_TRACE_ENTER
    - c_data
    - DBG_TRACE_DEVEL
    - flt_tcp_payload
    - htx_is_empty
    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:1108,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/filters.c:1109,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/filters.c:1112,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/filters.c:1115,1
    - Dst: http_error_message
      Src: /src/haproxy/src/filters.c:1115,1
    - Dst: sess_set_term_flags
      Src: /src/haproxy/src/filters.c:1119,1
    - Dst: stream_retnclose
      Src: /src/haproxy/src/filters.c:1120,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1129,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/filters.c:1134,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/filters.c:1135,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: 1137
      start: 1090
    functionDepth: 1
    functionLinenumber: 1090
    functionLinenumberEnd: 1137
    functionName: handle_analyzer_result
    functionSourceFile: /src/haproxy/src/filters.c
    functionUses: 6
    functionsReached:
    - stream_retnclose
    - IS_HTX_STRM
    - http_set_term_flags
    - http_error_message
    - sess_set_term_flags
    - channel_dont_connect
    - http_reply_and_close
    - DBG_TRACE_DEVEL
    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:35,1
    - Dst: buf2ip
      Src: /src/haproxy/src/map.c:37,1
    - Dst: buf2ip6
      Src: /src/haproxy/src/map.c:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - text
    - data
    argTypes:
    - char*
    - struct sample_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: map_parse_ip
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - buf2ip
    - strlen
    - buf2ip6
    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:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - text
    - data
    argTypes:
    - char*
    - struct sample_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    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:70,1
    - Dst: strlen
      Src: /src/haproxy/src/map.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - text
    - data
    argTypes:
    - char*
    - struct sample_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: map_parse_int
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strlen
    - read_int64
    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:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conv
    argTypes:
    - struct sample_conv*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 90
    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:104,1
    - Dst: map_create_descriptor
      Src: /src/haproxy/src/map.c:109,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:111,1
    - Dst: pattern_init_head
      Src: /src/haproxy/src/map.c:116,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:134,1
    - Dst: free
      Src: /src/haproxy/src/map.c:136,1
    - Dst: pattern_read_from_file
      Src: /src/haproxy/src/map.c:141,1
    - Dst: map_parse_ip
      Src: /src/haproxy/src/map.c:150,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:151,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/map.c:155,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/map.c:166,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 52
    argCount: 5
    argNames:
    - arg
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 98
    functionDepth: 5
    functionLinenumber: 98
    functionLinenumberEnd: 171
    functionName: sample_load_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 1
    functionsReached:
    - pattern_read_from_file
    - pattern_init_head
    - map_parse_ip
    - chunk_destroy
    - free
    - memprintf
    - map_create_descriptor
    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:185,1
    - Dst: strlen
      Src: /src/haproxy/src/map.c:192,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: 196
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 196
    functionName: sample_conv_map_key
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strlen
    - pattern_exec_match
    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:211,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/map.c:223,1
    - Dst: memcpy
      Src: /src/haproxy/src/map.c:231,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/map.c:234,1
    - Dst: exp_replace
      Src: /src/haproxy/src/map.c:235,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/map.c:239,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: 290
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 290
    functionName: sample_conv_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - free_trash_chunk
    - pattern_exec_match
    - alloc_trash_chunk
    - memcpy
    - 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:306,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: 316
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 316
    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:327,1
    - Dst: pat_ref_lookupid
      Src: /src/haproxy/src/map.c:332,1
    - Dst: pat_ref_lookup
      Src: /src/haproxy/src/map.c:336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - reference
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 337
    functionName: pat_ref_lookup_ref
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookupid
    - strtol
    - pat_ref_lookup
    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:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - getnext
    - end
    argTypes:
    - struct pattern_expr*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 350
    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:384,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/map.c:386,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/map.c:387,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/map.c:388,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/map.c:394,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/map.c:396,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:403,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:407,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/map.c:410,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/map.c:414,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:415,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:422,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 37
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 429
    functionName: cli_io_handler_pat_list
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - chunk_appendf
    - LIST_APPEND
    - LIST_INIT
    - applet_putchk
    - LIST_ISEMPTY
    - LIST_ELEM
    - chunk_reset
    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:441,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:442,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/map.c:443,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/map.c:451,1
    - Dst: pat_list_get_next
      Src: /src/haproxy/src/map.c:452,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/map.c:459,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:464,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/map.c:469,1
    - Dst: pat_list_get_next
      Src: /src/haproxy/src/map.c:477,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 488
    functionName: cli_io_handler_pats_list
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - pat_list_get_next
    - applet_putchk
    - LIST_ELEM
    - chunk_reset
    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:500,1
    - Dst: pat_expr_get_next
      Src: /src/haproxy/src/map.c:501,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/map.c:506,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/map.c:510,1
    - Dst: sample_convert
      Src: /src/haproxy/src/map.c:519,1
    - Dst: struct show_map_ctx*::expr::pat_head::match
      Src: /src/haproxy/src/map.c:520,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:529,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:531,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:535,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:537,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:542,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:544,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:551,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:553,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:557,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:559,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:564,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:566,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:570,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:572,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:578,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:581,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/map.c:585,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/map.c:588,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/map.c:592,1
    - Dst: pat_expr_get_next
      Src: /src/haproxy/src/map.c:597,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/map.c:600,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 66
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 607
    functionName: cli_io_handler_map_lookup
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_RDLOCK
    - sample_convert
    - struct show_map_ctx*::expr::pat_head::match
    - chunk_appendf
    - HA_RWLOCK_RDUNLOCK
    - applet_putchk
    - pat_expr_get_next
    - LIST_ELEM
    - chunk_reset
    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:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 614
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:619,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:621,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:621,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:631,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:633,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:637,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:640,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:642,1
    - Dst: strlen
      Src: /src/haproxy/src/map.c:649,1
    - Dst: strdup
      Src: /src/haproxy/src/map.c:651,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:653,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 658
    functionName: cli_parse_get_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcmp
    - cli_err
    - pat_ref_lookup_ref
    - strlen
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_get_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:662,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:664,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:665,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:676,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:680,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:682,1
    - Dst: pat_ref_newgen
      Src: /src/haproxy/src/map.c:684,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/map.c:685,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:685,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: 689
      start: 660
    functionDepth: 5
    functionLinenumber: 660
    functionLinenumberEnd: 689
    functionName: cli_parse_prepare_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strcmp
    - pat_ref_newgen
    - cli_err
    - pat_ref_lookup_ref
    - memprintf
    - applet_reserve_svcctx
    - cli_dynmsg
    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:695,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:696,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/map.c:697,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 700
    functionName: cli_release_show_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - HA_RWLOCK_WRUNLOCK
    - LIST_DEL_INIT
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void cli_release_show_map(struct appctx *appctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:704,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:706,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:707,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:732,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:736,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:738,1
    - Dst: str2uic
      Src: /src/haproxy/src/map.c:743,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/map.c:747,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: 754
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 754
    functionName: cli_parse_show_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cli_err
    - str2uic
    - pat_ref_lookup_ref
    - LIST_INIT
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:758,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:760,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:768,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:771,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:773,1
    - Dst: strtoll
      Src: /src/haproxy/src/map.c:784,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:786,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:791,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:795,1
    - Dst: pat_ref_set_by_id
      Src: /src/haproxy/src/map.c:796,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:797,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/map.c:799,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:799,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:801,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:803,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:810,1
    - Dst: pat_ref_set
      Src: /src/haproxy/src/map.c:811,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:812,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/map.c:814,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:814,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:816,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:818,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 826
      start: 756
    functionDepth: 5
    functionLinenumber: 756
    functionLinenumberEnd: 826
    functionName: cli_parse_set_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strcmp
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - cli_err
    - pat_ref_set_by_id
    - cli_dynerr
    - pat_ref_set
    - pat_ref_lookup_ref
    - memprintf
    - strtoll
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_set_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:830,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:832,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:833,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:862,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:867,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:870,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:873,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:875,1
    - Dst: str2uic
      Src: /src/haproxy/src/map.c:879,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:882,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:884,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:893,1
    - Dst: strcspn
      Src: /src/haproxy/src/map.c:916,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/map.c:920,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:920,1
    - Dst: strspn
      Src: /src/haproxy/src/map.c:926,1
    - Dst: strcspn
      Src: /src/haproxy/src/map.c:928,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:938,1
    - Dst: pat_ref_load
      Src: /src/haproxy/src/map.c:939,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:940,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/map.c:944,1
    - Dst: memprintf
      Src: /src/haproxy/src/map.c:944,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:946,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 67
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 828
    functionDepth: 5
    functionLinenumber: 828
    functionLinenumberEnd: 956
    functionName: cli_parse_add_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strcspn
    - strcmp
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - cli_err
    - str2uic
    - cli_dynerr
    - pat_ref_lookup_ref
    - memprintf
    - strspn
    - pat_ref_load
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_add_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:960,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:970,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:972,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:976,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:979,1
    - Dst: strtoll
      Src: /src/haproxy/src/map.c:990,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:992,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:997,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:1000,1
    - Dst: pat_ref_delete_by_id
      Src: /src/haproxy/src/map.c:1001,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1002,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1004,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1006,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:1012,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/map.c:1013,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1014,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1016,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1018,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 958
    functionDepth: 5
    functionLinenumber: 958
    functionLinenumberEnd: 1024
    functionName: cli_parse_del_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_delete_by_id
    - cli_err
    - pat_ref_lookup_ref
    - pat_ref_delete
    - strtoll
    - applet_reserve_svcctx
    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:1035,1
    - Dst: pat_ref_purge_range
      Src: /src/haproxy/src/map.c:1036,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1037,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/map.c:1041,1
    - Dst: trim_all_pools
      Src: /src/haproxy/src/map.c:1045,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1030
    functionDepth: 3
    functionLinenumber: 1030
    functionLinenumberEnd: 1047
    functionName: cli_io_handler_clear_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_WRUNLOCK
    - pat_ref_purge_range
    - HA_RWLOCK_WRLOCK
    - trim_all_pools
    - applet_have_more_data
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_clear_map(struct appctx *appctx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:1055,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:1057,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:1057,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1078,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1080,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:1084,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1088,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1090,1
    - Dst: str2uic
      Src: /src/haproxy/src/map.c:1095,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: 1103
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1103
    functionName: cli_parse_clear_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cli_err
    - str2uic
    - pat_ref_lookup_ref
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_clear_map(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/map.c:1111,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:1113,1
    - Dst: strcmp
      Src: /src/haproxy/src/map.c:1113,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1125,1
    - Dst: str2uic
      Src: /src/haproxy/src/map.c:1132,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1139,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1141,1
    - Dst: pat_ref_lookup_ref
      Src: /src/haproxy/src/map.c:1145,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1149,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1151,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/map.c:1154,1
    - Dst: pat_ref_commit
      Src: /src/haproxy/src/map.c:1157,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/map.c:1160,1
    - Dst: cli_err
      Src: /src/haproxy/src/map.c:1163,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1109
    functionDepth: 2
    functionLinenumber: 1109
    functionLinenumberEnd: 1169
    functionName: cli_parse_commit_map
    functionSourceFile: /src/haproxy/src/map.c
    functionUses: 0
    functionsReached:
    - strcmp
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - cli_err
    - str2uic
    - pat_ref_lookup_ref
    - pat_ref_commit
    - applet_reserve_svcctx
    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:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - parser
    - pkt
    argTypes:
    - struct ist
    - struct mqtt_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    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:182,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:185,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - parser
    - i
    argTypes:
    - struct ist
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: mqtt_read_1byte_int
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istnext
    - istlen
    - 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:199,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:202,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:203,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - parser
    - i
    argTypes:
    - struct ist
    - uint16_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 207
    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:218,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:221,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: istadv
      Src: /src/haproxy/src/mqtt.c:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - parser
    - i
    argTypes:
    - struct ist
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 228
    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:254,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:255,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:261,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - parser
    - i
    argTypes:
    - struct ist
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 271
    functionName: mqtt_read_varint
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istnext
    - istlen
    - 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:294,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:297,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:298,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:298,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:302,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - parser
    - str
    argTypes:
    - struct ist
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 310
    functionName: mqtt_read_string
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istlen
    - mqtt_read_2byte_int
    - istadv
    - istptr
    - 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:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - buf
    - i
    argTypes:
    - struct buffer*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 325
    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:335,1
    - Dst: mqtt_validate_message
      Src: /src/haproxy/src/mqtt.c:339,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:354,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:356,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:360,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:366,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:368,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:372,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:378,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:384,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:390,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:396,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:402,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:404,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:411,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:413,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:420,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:422,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:429,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:438,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:447,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:455,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:457,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:463,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:471,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:479,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:481,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:488,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:490,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:496,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:498,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:504,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:506,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:512,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:514,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:520,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:522,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:533,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:535,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:539,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:541,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:545,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:547,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:553,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:555,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:561,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:569,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:571,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:577,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:585,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:593,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:601,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:609,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:617,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:619,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:625,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:627,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:633,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:635,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:641,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:643,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:649,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:651,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:657,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:659,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:665,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:667,1
    - Dst: mqtt_uint2str
      Src: /src/haproxy/src/mqtt.c:673,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:675,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:691,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:691,1
    CyclomaticComplexity: 206
    EdgeCount: 206
    ICount: 426
    argCount: 3
    argNames:
    - msg
    - type
    - fieldname_id
    argTypes:
    - struct ist
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 333
    functionDepth: 2
    functionLinenumber: 333
    functionLinenumberEnd: 695
    functionName: mqtt_field_value
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 1
    functionsReached:
    - istlen
    - get_trash_chunk
    - istptr
    - ist2
    - mqtt_validate_message
    - mqtt_uint2str
    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:714,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:721,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:722,1
    - Dst: isteqi
      Src: /src/haproxy/src/mqtt.c:722,1
    - Dst: ist
      Src: /src/haproxy/src/mqtt.c:722,1
    - Dst: isteqi
      Src: /src/haproxy/src/mqtt.c:722,1
    - Dst: ist
      Src: /src/haproxy/src/mqtt.c:722,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:726,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:727,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:736,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:737,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:745,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:746,1
    - Dst: mqtt_read_varint
      Src: /src/haproxy/src/mqtt.c:756,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:757,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:757,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:759,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:759,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:760,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:762,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:763,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:767,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:767,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:774,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:774,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:784,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:784,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:794,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:794,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:801,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:801,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:811,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:811,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:825,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:825,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:826,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:828,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:835,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:835,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:842,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:842,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:850,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:856,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:857,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:866,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:867,1
    - Dst: mqtt_read_varint
      Src: /src/haproxy/src/mqtt.c:880,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:881,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:881,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:883,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:883,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:884,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:886,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:887,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:891,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:891,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:898,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:898,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:908,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:908,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:915,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:915,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:922,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:922,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:929,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:929,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:940,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:940,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:941,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:943,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:951,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:958,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:959,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:961,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:962,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:968,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:969,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:975,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:976,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:980,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 226
    argCount: 2
    argNames:
    - parser
    - mpkt
    argTypes:
    - struct ist
    - struct mqtt_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 710
    functionDepth: 3
    functionLinenumber: 710
    functionLinenumberEnd: 985
    functionName: mqtt_parse_connect
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istlen
    - mqtt_read_2byte_int
    - mqtt_read_varint
    - istnext
    - istadv
    - mqtt_read_string
    - istptr
    - ist2
    - isteqi
    - mqtt_read_4byte_int
    - isttest
    - mqtt_read_1byte_int
    - ist
    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:1003,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1006,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1008,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1018,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1019,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1023,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1024,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1029,1
    - Dst: mqtt_read_varint
      Src: /src/haproxy/src/mqtt.c:1041,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1042,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1042,1
    - Dst: ist2
      Src: /src/haproxy/src/mqtt.c:1044,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:1044,1
    - Dst: istadv
      Src: /src/haproxy/src/mqtt.c:1045,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1047,1
    - Dst: istptr
      Src: /src/haproxy/src/mqtt.c:1048,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:1052,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1052,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:1059,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1059,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1069,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1069,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1079,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1079,1
    - Dst: mqtt_read_4byte_int
      Src: /src/haproxy/src/mqtt.c:1089,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1089,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1099,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1099,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1100,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:1108,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1108,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1115,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1115,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1122,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1122,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1132,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1132,1
    - Dst: mqtt_read_1byte_int
      Src: /src/haproxy/src/mqtt.c:1142,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1142,1
    - Dst: mqtt_read_2byte_int
      Src: /src/haproxy/src/mqtt.c:1152,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1152,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1159,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1159,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1166,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1166,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1177,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1177,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1178,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1180,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1187,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1187,1
    - Dst: mqtt_read_string
      Src: /src/haproxy/src/mqtt.c:1194,1
    - Dst: istnext
      Src: /src/haproxy/src/mqtt.c:1194,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1202,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1207,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 189
    argCount: 2
    argNames:
    - parser
    - mpkt
    argTypes:
    - struct ist
    - struct mqtt_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1211
    functionName: mqtt_parse_connack
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 0
    functionsReached:
    - istlen
    - mqtt_read_2byte_int
    - mqtt_read_varint
    - istnext
    - istadv
    - istptr
    - mqtt_read_string
    - ist2
    - mqtt_read_4byte_int
    - isttest
    - mqtt_read_1byte_int
    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:1242,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1245,1
    - Dst: mqtt_read_fixed_hdr
      Src: /src/haproxy/src/mqtt.c:1251,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1252,1
    - Dst: mqtt_read_varint
      Src: /src/haproxy/src/mqtt.c:1258,1
    - Dst: isttest
      Src: /src/haproxy/src/mqtt.c:1259,1
    - Dst: istlen
      Src: /src/haproxy/src/mqtt.c:1264,1
    - Dst: mqtt_parse_connect
      Src: /src/haproxy/src/mqtt.c:1270,1
    - Dst: mqtt_parse_connack
      Src: /src/haproxy/src/mqtt.c:1273,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 37
    argCount: 2
    argNames:
    - msg
    - mpkt
    argTypes:
    - struct ist
    - struct mqtt_pkt*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1234
    functionDepth: 4
    functionLinenumber: 1234
    functionLinenumberEnd: 1281
    functionName: mqtt_validate_message
    functionSourceFile: /src/haproxy/src/mqtt.c
    functionUses: 2
    functionsReached:
    - mqtt_parse_connack
    - istlen
    - memset
    - mqtt_read_varint
    - mqtt_read_fixed_hdr
    - mqtt_parse_connect
    - isttest
    linkageType: ''
    returnType: int
    signature: int mqtt_validate_message(const struct ist msg, struct mqtt_pkt *mpkt)
  - BBCount: 34
    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:180,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:180,1
    - Dst: isteqi
      Src: /src/haproxy/src/h2.c:182,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:182,1
    - Dst: http_validate_scheme
      Src: /src/haproxy/src/h2.c:184,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:198,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:200,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:201,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:201,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h2.c:214,1
    - Dst: ist2bin
      Src: /src/haproxy/src/h2.c:227,1
    - Dst: istcat
      Src: /src/haproxy/src/h2.c:228,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:228,1
    - Dst: istcat
      Src: /src/haproxy/src/h2.c:229,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:230,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:230,1
    - Dst: istcat
      Src: /src/haproxy/src/h2.c:231,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h2.c:258,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:271,1
    - Dst: HTTP_IS_CTL
      Src: /src/haproxy/src/h2.c:271,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/h2.c:280,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h2.c:286,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:286,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 126
    argCount: 4
    argNames:
    - fields
    - phdr
    - htx
    - msgf
    argTypes:
    - uint32_t
    - struct ist*
    - struct htx*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 293
    functionName: h2_prepare_htx_reqline
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 0
    functionsReached:
    - http_validate_scheme
    - isteq
    - unlikely
    - HTTP_IS_CTL
    - http_authority_has_forbidden_char
    - ist2bin
    - htx_add_stline
    - find_http_meth
    - istcat
    - isteqi
    - HTTP_IS_TOKEN
    - HTTP_IS_LWS
    - ist
    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: isttest
      Src: /src/haproxy/src/h2.c:337,1
    - Dst: h2_str_to_phdr
      Src: /src/haproxy/src/h2.c:349,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h2.c:352,1
    - Dst: ist_find_range
      Src: /src/haproxy/src/h2.c:361,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:362,1
    - Dst: http_path_has_forbidden_char
      Src: /src/haproxy/src/h2.c:362,1
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h2.c:365,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:366,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h2.c:366,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:392,1
    - Dst: h2_prepare_htx_reqline
      Src: /src/haproxy/src/h2.c:394,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:407,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:407,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:413,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:413,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h2.c:419,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:423,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:423,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h2.c:424,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:436,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:436,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:437,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:437,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:438,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:438,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:439,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:439,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:440,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:440,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:443,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:443,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:447,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:447,1
    - Dst: http_cookie_register
      Src: /src/haproxy/src/h2.c:448,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:454,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:454,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:456,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:456,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:460,1
    - Dst: h2_prepare_htx_reqline
      Src: /src/haproxy/src/h2.c:470,1
    - Dst: isteqi
      Src: /src/haproxy/src/h2.c:488,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:488,1
    - Dst: isteqi
      Src: /src/haproxy/src/h2.c:489,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:489,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:493,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:493,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:495,1
    - Dst: ist
      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:508,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:508,1
    - Dst: http_cookie_merge
      Src: /src/haproxy/src/h2.c:516,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h2.c:521,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h2.c:525,1
    - Dst: http_scheme_based_normalize
      Src: /src/haproxy/src/h2.c:530,1
    CyclomaticComplexity: 86
    EdgeCount: 86
    ICount: 146
    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: 537
      start: 320
    functionDepth: 5
    functionLinenumber: 320
    functionLinenumberEnd: 537
    functionName: h2_make_htx_request
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 1
    functionsReached:
    - http_cookie_merge
    - isteq
    - unlikely
    - ist_find_range
    - http_path_has_forbidden_char
    - http_cookie_register
    - htx_add_endof
    - http_authority_has_forbidden_char
    - http_parse_cont_len_header
    - http_header_has_forbidden_char
    - HTTP_IS_LWS
    - htx_add_header
    - htx_nbblks
    - http_scheme_based_normalize
    - HTTP_IS_TOKEN
    - isteqi
    - ist_find_ctl
    - ist
    - h2_str_to_phdr
    - h2_prepare_htx_reqline
    - 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:561,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:562,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:562,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:563,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h2.c:608,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:608,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:608,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: 615
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 615
    functionName: h2_prepare_htx_stsline
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 0
    functionsReached:
    - htx_add_stline
    - isteq
    - unlikely
    - ist
    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: isttest
      Src: /src/haproxy/src/h2.c:653,1
    - Dst: h2_str_to_phdr
      Src: /src/haproxy/src/h2.c:665,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h2.c:668,1
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h2.c:675,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:676,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h2.c:676,1
    - Dst: h2_prepare_htx_stsline
      Src: /src/haproxy/src/h2.c:703,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:709,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:709,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h2.c:710,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:722,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:722,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:723,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:723,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:724,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:724,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:725,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:725,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:726,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:726,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:731,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:731,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:733,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:733,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:737,1
    - Dst: h2_prepare_htx_stsline
      Src: /src/haproxy/src/h2.c:747,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:753,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:753,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:753,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h2.c:755,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:755,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:755,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h2.c:785,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h2.c:789,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 104
    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: 797
      start: 638
    functionDepth: 2
    functionLinenumber: 638
    functionLinenumberEnd: 797
    functionName: h2_make_htx_response
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 1
    functionsReached:
    - h2_prepare_htx_stsline
    - isteq
    - h2_str_to_phdr
    - unlikely
    - htx_add_header
    - htx_nbblks
    - htx_add_endof
    - http_parse_cont_len_header
    - HTTP_IS_TOKEN
    - http_header_has_forbidden_char
    - isttest
    - HTTP_IS_LWS
    - ist_find_ctl
    - ist
    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: isttest
      Src: /src/haproxy/src/h2.c:821,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h2.c:831,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:835,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:835,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:836,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:836,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:837,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:837,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:838,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:838,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:839,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:839,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:840,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:840,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:841,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:841,1
    - Dst: isteq
      Src: /src/haproxy/src/h2.c:842,1
    - Dst: ist
      Src: /src/haproxy/src/h2.c:842,1
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h2.c:848,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:849,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h2.c:849,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:854,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:854,1
    - Dst: unlikely
      Src: /src/haproxy/src/h2.c:856,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h2.c:856,1
    - Dst: htx_add_trailer
      Src: /src/haproxy/src/h2.c:860,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h2.c:865,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h2.c:868,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 37
    argCount: 2
    argNames:
    - list
    - htx
    argTypes:
    - struct http_hdr*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 875
    functionName: h2_make_htx_trailers
    functionSourceFile: /src/haproxy/src/h2.c
    functionUses: 1
    functionsReached:
    - isteq
    - unlikely
    - htx_nbblks
    - htx_add_endof
    - htx_add_trailer
    - HTTP_IS_TOKEN
    - http_header_has_forbidden_char
    - isttest
    - HTTP_IS_LWS
    - ist_find_ctl
    - ist
    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:
    - isdigit
    - strcmp
    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:253,1
    - Dst: MIN
      Src: /src/haproxy/src/sock_unix.c:256,1
    - Dst: snprintf
      Src: /src/haproxy/src/sock_unix.c:269,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:272,1
    - Dst: snprintf
      Src: /src/haproxy/src/sock_unix.c:276,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:279,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: unlink
      Src: /src/haproxy/src/sock_unix.c:290,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:292,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:292,1
    - Dst: link
      Src: /src/haproxy/src/sock_unix.c:297,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:299,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:299,1
    - Dst: strlen
      Src: /src/haproxy/src/sock_unix.c:309,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:311,1
    - Dst: strncpy
      Src: /src/haproxy/src/sock_unix.c:315,1
    - Dst: memcpy
      Src: /src/haproxy/src/sock_unix.c:322,1
    - Dst: my_socketat
      Src: /src/haproxy/src/sock_unix.c:326,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:330,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:330,1
    - Dst: dup
      Src: /src/haproxy/src/sock_unix.c:345,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:348,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:348,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:355,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/sock_unix.c:359,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:361,1
    - Dst: bind
      Src: /src/haproxy/src/sock_unix.c:365,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/sock_unix.c:365,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:370,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:375,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:375,1
    - Dst: chown
      Src: /src/haproxy/src/sock_unix.c:387,1
    - Dst: chmod
      Src: /src/haproxy/src/sock_unix.c:388,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:390,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:390,1
    - Dst: rename
      Src: /src/haproxy/src/sock_unix.c:398,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:400,1
    - Dst: strerror
      Src: /src/haproxy/src/sock_unix.c:400,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:406,1
    - Dst: fd_insert
      Src: /src/haproxy/src/sock_unix.c:418,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/sock_unix.c:422,1
    - Dst: rename
      Src: /src/haproxy/src/sock_unix.c:427,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:429,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:432,1
    - Dst: close
      Src: /src/haproxy/src/sock_unix.c:433,1
    - Dst: unlink
      Src: /src/haproxy/src/sock_unix.c:436,1
    - Dst: sa2str
      Src: /src/haproxy/src/sock_unix.c:442,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:443,1
    - Dst: ha_free
      Src: /src/haproxy/src/sock_unix.c:444,1
    - Dst: memprintf
      Src: /src/haproxy/src/sock_unix.c:447,1
    - Dst: close
      Src: /src/haproxy/src/sock_unix.c:453,1
    CyclomaticComplexity: 68
    EdgeCount: 68
    ICount: 168
    argCount: 2
    argNames:
    - rx
    - errmsg
    argTypes:
    - struct receiver*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 207
    functionDepth: 5
    functionLinenumber: 207
    functionLinenumberEnd: 455
    functionName: sock_unix_bind_receiver
    functionSourceFile: /src/haproxy/src/sock_unix.c
    functionUses: 0
    functionsReached:
    - dup
    - close
    - sa2str
    - strerror
    - sock_find_compatible_fd
    - rename
    - MIN
    - fd_set_nonblock
    - snprintf
    - ha_free
    - fd_insert
    - strlen
    - chown
    - get_addr_len
    - HA_ATOMIC_OR
    - unlink
    - chmod
    - BUG_ON
    - memprintf
    - bind
    - my_socketat
    - link
    - strncpy
    - memcpy
    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_XCHG
    - HA_ATOMIC_STORE
    - __ha_cpu_relax
    - HA_ATOMIC_CAS
    - HA_ATOMIC_LOAD
    - likely
    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:
    - _freq_ctr_total_from_values
    - __ha_cpu_relax
    - 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: 7
    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: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - ctr
    - period
    - freq
    argTypes:
    - struct freq_ctr*
    - uint
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 249
    functionName: freq_ctr_overshoot_period
    functionSourceFile: /src/haproxy/src/freq_ctr.c
    functionUses: 1
    functionsReached:
    - div64_32
    - __ha_cpu_relax
    - unlikely
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int 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:64,1
    - Dst: kill
      Src: /src/haproxy/src/mworker.c:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 69
    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:75,1
    - Dst: kill
      Src: /src/haproxy/src/mworker.c:78,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    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:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - pid
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    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:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 109
    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:120,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:129,1
    - Dst: setenv
      Src: /src/haproxy/src/mworker.c:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 133
    functionName: mworker_proc_list_to_env
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - memprintf
    - list_for_each_entry
    - setenv
    linkageType: ''
    returnType: void
    signature: void mworker_proc_list_to_env()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/mworker.c:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 151
    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:164,1
    - Dst: strdup
      Src: /src/haproxy/src/mworker.c:168,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:170,1
    - Dst: strtok_r
      Src: /src/haproxy/src/mworker.c:175,1
    - Dst: mworker_proc_new
      Src: /src/haproxy/src/mworker.c:181,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:183,1
    - Dst: strtok_r
      Src: /src/haproxy/src/mworker.c:188,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:192,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:203,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:204,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:207,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:208,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:211,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:212,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:213,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:215,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:216,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:217,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:218,1
    - Dst: atoi
      Src: /src/haproxy/src/mworker.c:219,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:220,1
    - Dst: strdup
      Src: /src/haproxy/src/mworker.c:221,1
    - Dst: strncmp
      Src: /src/haproxy/src/mworker.c:222,1
    - Dst: strdup
      Src: /src/haproxy/src/mworker.c:223,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mworker.c:227,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:229,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:235,1
    - Dst: unsetenv
      Src: /src/haproxy/src/mworker.c:240,1
    - Dst: mworker_proc_new
      Src: /src/haproxy/src/mworker.c:246,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:248,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mworker.c:256,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:257,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:261,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 263
    functionName: mworker_env_to_proc_list
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - strdup
    - mworker_proc_new
    - mworker_free_child
    - list_for_each_entry
    - getenv
    - ha_warning
    - unsetenv
    - strncmp
    - atoi
    - strtok_r
    - LIST_APPEND
    - free
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int mworker_env_to_proc_list()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigemptyset
      Src: /src/haproxy/src/mworker.c:271,1
    - Dst: sigaddset
      Src: /src/haproxy/src/mworker.c:272,1
    - Dst: sigaddset
      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: ha_sigmask
      Src: /src/haproxy/src/mworker.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 279
    functionName: mworker_block_signals
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - sigaddset
    - ha_sigmask
    - sigemptyset
    linkageType: ''
    returnType: void
    signature: void mworker_block_signals()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: haproxy_unblock_signals
      Src: /src/haproxy/src/mworker.c:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: mworker_unblock_signals
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - haproxy_unblock_signals
    linkageType: ''
    returnType: void
    signature: void mworker_unblock_signals()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mworker_kill
      Src: /src/haproxy/src/mworker.c:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 292
    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:309,1
    - Dst: clean_env
      Src: /src/haproxy/src/mworker.c:318,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:319,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:320,1
    - Dst: restore_env
      Src: /src/haproxy/src/mworker.c:323,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:324,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:325,1
    - Dst: setenv
      Src: /src/haproxy/src/mworker.c:328,1
    - Dst: mworker_proc_list_to_env
      Src: /src/haproxy/src/mworker.c:330,1
    - Dst: mworker_cli_proxy_stop
      Src: /src/haproxy/src/mworker.c:337,1
    - Dst: deinit_pollers
      Src: /src/haproxy/src/mworker.c:340,1
    - Dst: RAND_keep_random_devices_open
      Src: /src/haproxy/src/mworker.c:344,1
    - Dst: raise_rlim_nofile
      Src: /src/haproxy/src/mworker.c:350,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:351,1
    - Dst: calloc
      Src: /src/haproxy/src/mworker.c:361,1
    - Dst: mworker_child_nb
      Src: /src/haproxy/src/mworker.c:361,1
    - Dst: strcmp
      Src: /src/haproxy/src/mworker.c:370,1
    - Dst: mworker_child_nb
      Src: /src/haproxy/src/mworker.c:376,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:384,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:390,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:398,1
    - Dst: startup_logs_free
      Src: /src/haproxy/src/mworker.c:417,1
    - Dst: signal
      Src: /src/haproxy/src/mworker.c:419,1
    - Dst: execvp
      Src: /src/haproxy/src/mworker.c:420,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:421,1
    - Dst: strerror
      Src: /src/haproxy/src/mworker.c:421,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:422,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:426,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:427,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 1
    argNames:
    - hardreload
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 298
    functionDepth: 6
    functionLinenumber: 298
    functionLinenumberEnd: 429
    functionName: mworker_reexec
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - mworker_child_nb
    - startup_logs_free
    - exit
    - mworker_cli_proxy_stop
    - raise_rlim_nofile
    - strerror
    - clean_env
    - ha_warning
    - strcmp
    - mworker_block_signals
    - ha_free
    - execvp
    - restore_env
    - calloc
    - mworker_proc_list_to_env
    - deinit_pollers
    - memprintf
    - ha_alert
    - list_for_each_entry
    - setenv
    - signal
    - RAND_keep_random_devices_open
    linkageType: ''
    returnType: void
    signature: void mworker_reexec(int hardreload)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/mworker.c:437,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:440,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:447,1
    - Dst: clock_gettime
      Src: /src/haproxy/src/mworker.c:454,1
    - Dst: sd_notifyf
      Src: /src/haproxy/src/mworker.c:456,1
    - Dst: mworker_reexec
      Src: /src/haproxy/src/mworker.c:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - hardreload
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 432
    functionDepth: 7
    functionLinenumber: 432
    functionLinenumberEnd: 463
    functionName: mworker_reload
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - mworker_reexec
    - ha_notice
    - sd_notifyf
    - clock_gettime
    linkageType: ''
    returnType: void
    signature: void mworker_reload(int hardreload)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mworker_reload
      Src: /src/haproxy/src/mworker.c:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 469
    functionDepth: 8
    functionLinenumber: 469
    functionLinenumberEnd: 472
    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:479,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:481,1
    - Dst: mworker_kill
      Src: /src/haproxy/src/mworker.c:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 483
    functionName: mworker_catch_sigterm
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - sd_notify
    - mworker_kill
    linkageType: ''
    returnType: void
    signature: void mworker_catch_sigterm(struct sig_handler *sh)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:494,1
    - Dst: sock_drop_unused_old_sockets
      Src: /src/haproxy/src/mworker.c:499,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/mworker.c:501,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:503,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:503,1
    - Dst: sd_notify
      Src: /src/haproxy/src/mworker.c:507,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - exitpid
    - status
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 508
    functionName: mworker_on_new_child_failure
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - usermsgs_clr
    - ha_warning
    - list_for_each_entry
    - strsignal
    - sock_drop_unused_old_sockets
    - sd_notify
    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:526,1
    - Dst: WIFEXITED
      Src: /src/haproxy/src/mworker.c:530,1
    - Dst: WEXITSTATUS
      Src: /src/haproxy/src/mworker.c:531,1
    - Dst: WIFSIGNALED
      Src: /src/haproxy/src/mworker.c:532,1
    - Dst: WTERMSIG
      Src: /src/haproxy/src/mworker.c:533,1
    - Dst: WIFSTOPPED
      Src: /src/haproxy/src/mworker.c:534,1
    - Dst: WSTOPSIG
      Src: /src/haproxy/src/mworker.c:535,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:540,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mworker.c:544,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:551,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:551,1
    - Dst: mworker_on_new_child_failure
      Src: /src/haproxy/src/mworker.c:553,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:557,1
    - Dst: unbind_listener
      Src: /src/haproxy/src/mworker.c:559,1
    - Dst: delete_listener
      Src: /src/haproxy/src/mworker.c:560,1
    - Dst: srv_detach
      Src: /src/haproxy/src/mworker.c:567,1
    - Dst: srv_drop
      Src: /src/haproxy/src/mworker.c:568,1
    - Dst: fd_delete
      Src: /src/haproxy/src/mworker.c:572,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:574,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:583,1
    - Dst: fd_delete
      Src: /src/haproxy/src/mworker.c:588,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:590,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:592,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:592,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:597,1
    - Dst: display_version
      Src: /src/haproxy/src/mworker.c:598,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:602,1
    - Dst: mworker_kill
      Src: /src/haproxy/src/mworker.c:603,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:612,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:612,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:614,1
    - Dst: strsignal
      Src: /src/haproxy/src/mworker.c:614,1
    - Dst: fd_delete
      Src: /src/haproxy/src/mworker.c:616,1
    - Dst: delete_oldpid
      Src: /src/haproxy/src/mworker.c:617,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:620,1
    - Dst: ha_warning
      Src: /src/haproxy/src/mworker.c:631,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:633,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:638,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:639,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 86
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 514
    functionDepth: 6
    functionLinenumber: 514
    functionLinenumberEnd: 642
    functionName: mworker_catch_sigchld
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - exit
    - mworker_on_new_child_failure
    - ha_warning
    - WIFSTOPPED
    - mworker_free_child
    - waitpid
    - list_for_each_entry_safe
    - srv_detach
    - strsignal
    - srv_drop
    - mworker_kill
    - display_version
    - delete_listener
    - WIFEXITED
    - ha_alert
    - WTERMSIG
    - WSTOPSIG
    - delete_oldpid
    - LIST_DELETE
    - unbind_listener
    - list_for_each_entry
    - WIFSIGNALED
    - WEXITSTATUS
    linkageType: ''
    returnType: void
    signature: void mworker_catch_sigchld(struct sig_handler *sh)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/haproxy/src/mworker.c:657,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/mworker.c:662,1
    - Dst: listener_accept
      Src: /src/haproxy/src/mworker.c:670,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:680,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 651
    functionDepth: 6
    functionLinenumber: 651
    functionLinenumberEnd: 684
    functionName: mworker_accept_wrapper
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - recv
    - fd_cant_recv
    - listener_accept
    - 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:702,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/mworker.c:705,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 691
    functionDepth: 2
    functionLinenumber: 691
    functionLinenumberEnd: 707
    functionName: mworker_sockpair_register_per_thread
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - fd_want_recv
    - fd_set_nonblock
    linkageType: ''
    returnType: int
    signature: int mworker_sockpair_register_per_thread()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stop_proxy
      Src: /src/haproxy/src/mworker.c:727,1
    - Dst: signal_unregister_handler
      Src: /src/haproxy/src/mworker.c:730,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mworker.c:731,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:740,1
    - Dst: unbind_listener
      Src: /src/haproxy/src/mworker.c:743,1
    - Dst: delete_listener
      Src: /src/haproxy/src/mworker.c:744,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 716
    functionDepth: 4
    functionLinenumber: 716
    functionLinenumberEnd: 753
    functionName: mworker_cleanlisteners
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - stop_proxy
    - unbind_listener
    - list_for_each_entry_safe
    - delete_listener
    - task_destroy
    - 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:763,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:768,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:770,1
    - Dst: srv_detach
      Src: /src/haproxy/src/mworker.c:773,1
    - Dst: srv_drop
      Src: /src/haproxy/src/mworker.c:774,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mworker.c:776,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 759
    functionDepth: 6
    functionLinenumber: 759
    functionLinenumberEnd: 780
    functionName: mworker_cleanup_proc
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - mworker_free_child
    - LIST_DELETE
    - list_for_each_entry_safe
    - close
    - srv_detach
    - srv_drop
    linkageType: ''
    returnType: void
    signature: void mworker_cleanup_proc()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/mworker.c:799,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:801,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/mworker.c:802,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:804,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:805,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:806,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:807,1
    - Dst: getpid
      Src: /src/haproxy/src/mworker.c:807,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:809,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:810,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:811,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:812,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:816,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:817,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:829,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:830,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:832,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:833,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:834,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:842,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:843,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:852,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:853,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:855,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:856,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:857,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:860,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/mworker.c:863,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 56
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 787
    functionDepth: 5
    functionLinenumber: 787
    functionLinenumberEnd: 868
    functionName: cli_io_handler_show_proc
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - getpid
    - list_for_each_entry
    - chunk_printf
    - chunk_appendf
    - ha_free
    - free
    - applet_putchk
    - memprintf
    - chunk_reset
    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:874,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/mworker.c:876,1
    - Dst: strcmp
      Src: /src/haproxy/src/mworker.c:881,1
    - Dst: cli_err
      Src: /src/haproxy/src/mworker.c:884,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: 888
      start: 870
    functionDepth: 2
    functionLinenumber: 870
    functionLinenumberEnd: 888
    functionName: cli_parse_show_proc
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - cli_err
    - cli_has_level
    - applet_reserve_svcctx
    - strcmp
    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:900,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:903,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/mworker.c:908,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:909,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:910,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/mworker.c:912,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/mworker.c:926,1
    - Dst: sc_strm
      Src: /src/haproxy/src/mworker.c:928,1
    - Dst: sc_conn
      Src: /src/haproxy/src/mworker.c:930,1
    - Dst: conn_fd
      Src: /src/haproxy/src/mworker.c:932,1
    - Dst: send_fd_uxst
      Src: /src/haproxy/src/mworker.c:935,1
    - Dst: fd_delete
      Src: /src/haproxy/src/mworker.c:936,1
    - Dst: mworker_reload
      Src: /src/haproxy/src/mworker.c:938,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: 941
      start: 891
    functionDepth: 8
    functionLinenumber: 891
    functionLinenumberEnd: 941
    functionName: cli_parse_reload
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - fd_delete
    - list_for_each_entry
    - chunk_printf
    - chunk_appendf
    - send_fd_uxst
    - appctx_sc
    - applet_putchk
    - sc_strm
    - conn_fd
    - cli_has_level
    - mworker_reload
    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:949,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:955,1
    - Dst: tick_add
      Src: /src/haproxy/src/mworker.c:957,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/mworker.c:963,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/mworker.c:965,1
    - Dst: ring_data
      Src: /src/haproxy/src/mworker.c:967,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mworker.c:968,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/mworker.c:970,1
    - Dst: ring_attach_cli
      Src: /src/haproxy/src/mworker.c:975,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 979
      start: 945
    functionDepth: 3
    functionLinenumber: 945
    functionLinenumberEnd: 979
    functionName: cli_io_handler_show_loadstatus
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - tick_add
    - list_for_each_entry
    - chunk_printf
    - chunk_appendf
    - ring_attach_cli
    - applet_putchk
    - ring_data
    - cli_has_level
    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:987,1
    - Dst: too_many_args
      Src: /src/haproxy/src/mworker.c:988,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:992,1
    - Dst: atol
      Src: /src/haproxy/src/mworker.c:996,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:998,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mworker.c:1002,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: 1007
      start: 981
    functionDepth: 7
    functionLinenumber: 981
    functionLinenumberEnd: 1007
    functionName: mworker_parse_global_max_reloads
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - BUG_ON
    - memprintf
    - atol
    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:1017,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1019,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1020,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1021,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1022,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - child
    argTypes:
    - struct mworker_proc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1009
    functionDepth: 3
    functionLinenumber: 1009
    functionLinenumberEnd: 1023
    functionName: mworker_free_child
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 3
    functionsReached:
    - free
    - ha_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:1030,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:1033,1
    - Dst: mworker_cli_master_proxy_new_listener
      Src: /src/haproxy/src/mworker.c:1034,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1035,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1036,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mworker.c:1038,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1039,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1040,1
    - Dst: socketpair
      Src: /src/haproxy/src/mworker.c:1052,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1053,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1054,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:1059,1
    - Dst: mworker_cli_master_proxy_new_listener
      Src: /src/haproxy/src/mworker.c:1061,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1063,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1064,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1066,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1026
    functionDepth: 5
    functionLinenumber: 1026
    functionLinenumberEnd: 1068
    functionName: mworker_create_master_cli
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - exit
    - list_for_each_entry_safe
    - ha_free
    - socketpair
    - mworker_cli_master_proxy_new_listener
    - free
    - memprintf
    - ha_alert
    - LIST_ISEMPTY
    linkageType: ''
    returnType: void
    signature: void mworker_create_master_cli(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/haproxy/src/mworker.c:1079,1
    - Dst: getenv
      Src: /src/haproxy/src/mworker.c:1081,1
    - Dst: mworker_proc_new
      Src: /src/haproxy/src/mworker.c:1083,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1085,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1086,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mworker.c:1093,1
    - Dst: mworker_proc_new
      Src: /src/haproxy/src/mworker.c:1096,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1098,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1099,1
    - Dst: socketpair
      Src: /src/haproxy/src/mworker.c:1107,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1108,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1109,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mworker.c:1111,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1075
    functionDepth: 1
    functionLinenumber: 1075
    functionLinenumberEnd: 1112
    functionName: mworker_prepare_master
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - mworker_proc_new
    - getenv
    - exit
    - setenv
    - socketpair
    - LIST_APPEND
    - ha_alert
    linkageType: ''
    returnType: void
    signature: void mworker_prepare_master(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:1121,1
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:1122,1
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:1123,1
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:1124,1
    - Dst: signal_unregister
      Src: /src/haproxy/src/mworker.c:1125,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:1127,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:1128,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:1129,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:1130,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:1131,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:1132,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:1133,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/mworker.c:1134,1
    - Dst: mworker_unblock_signals
      Src: /src/haproxy/src/mworker.c:1136,1
    - Dst: mworker_cleantasks
      Src: /src/haproxy/src/mworker.c:1137,1
    - Dst: mworker_catch_sigchld
      Src: /src/haproxy/src/mworker.c:1139,1
    - Dst: fork_poller
      Src: /src/haproxy/src/mworker.c:1146,1
    - Dst: run_thread_poll_loop
      Src: /src/haproxy/src/mworker.c:1147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1114
    functionDepth: 7
    functionLinenumber: 1114
    functionLinenumberEnd: 1148
    functionName: mworker_loop
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - signal_unregister
    - mworker_cleantasks
    - mworker_catch_sigchld
    - run_thread_poll_loop
    - mworker_unblock_signals
    - fork_poller
    - signal_register_fct
    linkageType: ''
    returnType: void
    signature: void mworker_loop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mworker_loop
      Src: /src/haproxy/src/mworker.c:1155,1
    - Dst: ssl_free_dh
      Src: /src/haproxy/src/mworker.c:1157,1
    - Dst: mworker_cli_proxy_stop
      Src: /src/haproxy/src/mworker.c:1161,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mworker.c:1164,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1170,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mworker.c:1173,1
    - Dst: mworker_free_child
      Src: /src/haproxy/src/mworker.c:1174,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1150
    functionDepth: 8
    functionLinenumber: 1150
    functionLinenumberEnd: 1179
    functionName: mworker_run_master
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - mworker_free_child
    - LIST_DELETE
    - exit
    - ssl_free_dh
    - mworker_cli_proxy_stop
    - list_for_each_entry_safe
    - close
    - mworker_loop
    linkageType: ''
    returnType: void
    signature: void mworker_run_master(void)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: fork
      Src: /src/haproxy/src/mworker.c:1197,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1200,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1202,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1205,1
    - Dst: unsetenv
      Src: /src/haproxy/src/mworker.c:1210,1
    - Dst: ha_random_jump96
      Src: /src/haproxy/src/mworker.c:1211,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:1213,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1215,1
    - Dst: mworker_cli_global_proxy_new_listener
      Src: /src/haproxy/src/mworker.c:1224,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1225,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1237,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1239,1
    - Dst: ha_notice
      Src: /src/haproxy/src/mworker.c:1245,1
    - Dst: mworker_cli_create_master_proxy
      Src: /src/haproxy/src/mworker.c:1256,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1257,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1258,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1259,1
    - Dst: mworker_cli_attach_server
      Src: /src/haproxy/src/mworker.c:1263,1
    - Dst: ha_alert
      Src: /src/haproxy/src/mworker.c:1264,1
    - Dst: free
      Src: /src/haproxy/src/mworker.c:1265,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1266,1
    - Dst: mworker_create_master_cli
      Src: /src/haproxy/src/mworker.c:1270,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mworker.c:1273,1
    - Dst: strdup
      Src: /src/haproxy/src/mworker.c:1277,1
    - Dst: close
      Src: /src/haproxy/src/mworker.c:1279,1
    - Dst: memprintf
      Src: /src/haproxy/src/mworker.c:1283,1
    - Dst: mworker_cli_master_proxy_new_listener
      Src: /src/haproxy/src/mworker.c:1284,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1285,1
    - Dst: exit
      Src: /src/haproxy/src/mworker.c:1286,1
    - Dst: ha_free
      Src: /src/haproxy/src/mworker.c:1288,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1190
    functionDepth: 6
    functionLinenumber: 1190
    functionLinenumberEnd: 1294
    functionName: mworker_apply_master_worker_mode
    functionSourceFile: /src/haproxy/src/mworker.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - exit
    - unsetenv
    - ha_free
    - mworker_create_master_cli
    - close
    - ha_random_jump96
    - mworker_cli_global_proxy_new_listener
    - ha_notice
    - fork
    - mworker_cli_create_master_proxy
    - free
    - memprintf
    - mworker_cli_attach_server
    - ha_alert
    - mworker_cli_master_proxy_new_listener
    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:
    - enqueue8
    - copy_16b
    - __builtin_expect
    - flush_bits
    - send_eob
    - memcpy
    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
    - send_eob
    - enqueue8
    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:661,1
    - Dst: copy_lit_huff
      Src: /src/haproxy/src/slz.c:663,1
    - Dst: enqueue8
      Src: /src/haproxy/src/slz.c:671,1
    - Dst: enqueue24
      Src: /src/haproxy/src/slz.c:675,1
    - Dst: enqueue24
      Src: /src/haproxy/src/slz.c:678,1
    - Dst: __builtin_expect
      Src: /src/haproxy/src/slz.c:692,1
    - Dst: copy_lit
      Src: /src/haproxy/src/slz.c:704,1
    - Dst: copy_lit_huff
      Src: /src/haproxy/src/slz.c:706,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    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: 713
      start: 517
    functionDepth: 4
    functionLinenumber: 517
    functionLinenumberEnd: 713
    functionName: slz_rfc1951_encode
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - copy_lit
    - reset_refs
    - enqueue24
    - enqueue8
    - slz_hash
    - __builtin_expect
    - memmatch
    - copy_lit_huff
    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: 730
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 730
    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:752,1
    - Dst: enqueue8
      Src: /src/haproxy/src/slz.c:756,1
    - Dst: flush_bits
      Src: /src/haproxy/src/slz.c:757,1
    - Dst: copy_32b
      Src: /src/haproxy/src/slz.c:758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 741
    functionDepth: 3
    functionLinenumber: 741
    functionLinenumberEnd: 766
    functionName: slz_rfc1951_flush
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - flush_bits
    - send_eob
    - copy_32b
    - enqueue8
    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:781,1
    - Dst: enqueue8
      Src: /src/haproxy/src/slz.c:786,1
    - Dst: send_eob
      Src: /src/haproxy/src/slz.c:787,1
    - Dst: flush_bits
      Src: /src/haproxy/src/slz.c:791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 775
    functionDepth: 3
    functionLinenumber: 775
    functionLinenumberEnd: 793
    functionName: slz_rfc1951_finish
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - flush_bits
    - send_eob
    - enqueue8
    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: 938
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 938
    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: 959
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 959
    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:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 970
    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:999,1
    - Dst: crc32_uint32
      Src: /src/haproxy/src/slz.c:1002,1
    - Dst: crc32_uint32
      Src: /src/haproxy/src/slz.c:1005,1
    - Dst: crc32_uint32
      Src: /src/haproxy/src/slz.c:1008,1
    - Dst: crc32_uint32
      Src: /src/haproxy/src/slz.c:1037,1
    - Dst: crc32_char
      Src: /src/haproxy/src/slz.c:1048,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - unsigned char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 975
    functionDepth: 1
    functionLinenumber: 975
    functionLinenumberEnd: 1050
    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:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crc
    - buf
    - len
    argTypes:
    - uint32_t
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1056
    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:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1068
    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:1078,1
    - Dst: slz_rfc1952_send_header
      Src: /src/haproxy/src/slz.c:1079,1
    - Dst: update_crc
      Src: /src/haproxy/src/slz.c:1081,1
    - Dst: slz_rfc1951_encode
      Src: /src/haproxy/src/slz.c:1082,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: 1084
      start: 1074
    functionDepth: 5
    functionLinenumber: 1074
    functionLinenumberEnd: 1084
    functionName: slz_rfc1952_encode
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - slz_rfc1951_encode
    - slz_rfc1952_send_header
    - update_crc
    - __builtin_expect
    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: 1101
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1101
    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:1117,1
    - Dst: slz_rfc1952_send_header
      Src: /src/haproxy/src/slz.c:1118,1
    - Dst: slz_rfc1951_flush
      Src: /src/haproxy/src/slz.c:1120,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1113
    functionDepth: 4
    functionLinenumber: 1113
    functionLinenumberEnd: 1122
    functionName: slz_rfc1952_flush
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - slz_rfc1952_send_header
    - __builtin_expect
    - slz_rfc1951_flush
    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:1137,1
    - Dst: slz_rfc1952_send_header
      Src: /src/haproxy/src/slz.c:1138,1
    - Dst: slz_rfc1951_finish
      Src: /src/haproxy/src/slz.c:1140,1
    - Dst: copy_32b
      Src: /src/haproxy/src/slz.c:1141,1
    - Dst: copy_32b
      Src: /src/haproxy/src/slz.c:1142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1133
    functionDepth: 4
    functionLinenumber: 1133
    functionLinenumberEnd: 1146
    functionName: slz_rfc1952_finish
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - copy_32b
    - slz_rfc1952_send_header
    - __builtin_expect
    - slz_rfc1951_finish
    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: 1280
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1280
    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: 1332
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1332
    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:1341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1344
    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:1354,1
    - Dst: slz_rfc1950_send_header
      Src: /src/haproxy/src/slz.c:1355,1
    - Dst: slz_adler32_block
      Src: /src/haproxy/src/slz.c:1357,1
    - Dst: slz_rfc1951_encode
      Src: /src/haproxy/src/slz.c:1358,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: 1360
      start: 1350
    functionDepth: 5
    functionLinenumber: 1350
    functionLinenumberEnd: 1360
    functionName: slz_rfc1950_encode
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - slz_rfc1950_send_header
    - slz_rfc1951_encode
    - slz_adler32_block
    - __builtin_expect
    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: 1377
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1377
    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:1393,1
    - Dst: slz_rfc1950_send_header
      Src: /src/haproxy/src/slz.c:1394,1
    - Dst: slz_rfc1951_flush
      Src: /src/haproxy/src/slz.c:1396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1389
    functionDepth: 4
    functionLinenumber: 1389
    functionLinenumberEnd: 1398
    functionName: slz_rfc1950_flush
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - slz_rfc1950_send_header
    - __builtin_expect
    - slz_rfc1951_flush
    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:1413,1
    - Dst: slz_rfc1950_send_header
      Src: /src/haproxy/src/slz.c:1414,1
    - Dst: slz_rfc1951_finish
      Src: /src/haproxy/src/slz.c:1416,1
    - Dst: copy_8b
      Src: /src/haproxy/src/slz.c:1417,1
    - Dst: copy_8b
      Src: /src/haproxy/src/slz.c:1418,1
    - Dst: copy_8b
      Src: /src/haproxy/src/slz.c:1419,1
    - Dst: copy_8b
      Src: /src/haproxy/src/slz.c:1420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - strm
    - buf
    argTypes:
    - struct slz_stream*
    - unsigned char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1409
    functionDepth: 4
    functionLinenumber: 1409
    functionLinenumberEnd: 1423
    functionName: slz_rfc1950_finish
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - slz_rfc1950_send_header
    - copy_8b
    - __builtin_expect
    - slz_rfc1951_finish
    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:1429,1
    - Dst: __slz_prepare_dist_table
      Src: /src/haproxy/src/slz.c:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1425
    functionDepth: 1
    functionLinenumber: 1425
    functionLinenumberEnd: 1432
    functionName: __slz_initialize
    functionSourceFile: /src/haproxy/src/slz.c
    functionUses: 0
    functionsReached:
    - __slz_prepare_dist_table
    - __slz_make_crc_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:
    - istptr
    - read_uint
    - istissame
    - istend
    - 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:
    - istlen
    - fix_version
    - fix_check_id
    - istnext
    - istadv
    - istptr
    - read_uint
    - ist2
    - iststop
    - istfind
    - istend
    - isttest
    - strl2ui
    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:
    - istlen
    - fix_check_id
    - istnext
    - istadv
    - istptr
    - ist2
    - iststop
    - istfind
    - istend
    linkageType: ''
    returnType: struct ist
    signature: struct ist fix_tag_value(const struct ist msg, unsigned int tagid)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_gencert.c:52,1
    - Dst: NCONF_new
      Src: /src/haproxy/src/ssl_gencert.c:54,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_gencert.c:61,1
    - Dst: X509V3_EXT_nconf_nid
      Src: /src/haproxy/src/ssl_gencert.c:62,1
    - Dst: X509_add_ext
      Src: /src/haproxy/src/ssl_gencert.c:69,1
    - Dst: X509_EXTENSION_free
      Src: /src/haproxy/src/ssl_gencert.c:78,1
    - Dst: NCONF_free
      Src: /src/haproxy/src/ssl_gencert.c:79,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ctx
    - cert
    - servername
    argTypes:
    - X509V3_CTX*
    - X509*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: ssl_sock_add_san_ext
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - X509_EXTENSION_free
    - X509V3_EXT_nconf_nid
    - X509_add_ext
    - get_trash_chunk
    - chunk_appendf
    - NCONF_free
    - NCONF_new
    linkageType: ''
    returnType: int
    signature: int ssl_sock_add_san_ext(X509V3_CTX* ctx, X509* cert, const char *servername)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_chose_sni_ctx
      Src: /src/haproxy/src/ssl_gencert.c:102,1
    - Dst: SSL_CTX_get0_privatekey
      Src: /src/haproxy/src/ssl_gencert.c:108,1
    - Dst: SSL_new
      Src: /src/haproxy/src/ssl_gencert.c:110,1
    - Dst: SSL_get_privatekey
      Src: /src/haproxy/src/ssl_gencert.c:112,1
    - Dst: X509_new
      Src: /src/haproxy/src/ssl_gencert.c:118,1
    - Dst: X509_set_version
      Src: /src/haproxy/src/ssl_gencert.c:123,1
    - Dst: ASN1_INTEGER_set
      Src: /src/haproxy/src/ssl_gencert.c:125,1
    - Dst: X509_get_serialNumber
      Src: /src/haproxy/src/ssl_gencert.c:125,1
    - Dst: _HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/ssl_gencert.c:125,1
    - Dst: X509_gmtime_adj
      Src: /src/haproxy/src/ssl_gencert.c:128,1
    - Dst: X509_getm_notBefore
      Src: /src/haproxy/src/ssl_gencert.c:128,1
    - Dst: X509_gmtime_adj
      Src: /src/haproxy/src/ssl_gencert.c:129,1
    - Dst: X509_getm_notAfter
      Src: /src/haproxy/src/ssl_gencert.c:129,1
    - Dst: X509_set_pubkey
      Src: /src/haproxy/src/ssl_gencert.c:133,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_gencert.c:137,1
    - Dst: X509_set_issuer_name
      Src: /src/haproxy/src/ssl_gencert.c:139,1
    - Dst: X509_NAME_dup
      Src: /src/haproxy/src/ssl_gencert.c:143,1
    - Dst: X509_NAME_add_entry_by_txt
      Src: /src/haproxy/src/ssl_gencert.c:144,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:147,1
    - Dst: X509_set_subject_name
      Src: /src/haproxy/src/ssl_gencert.c:150,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:151,1
    - Dst: X509_NAME_free
      Src: /src/haproxy/src/ssl_gencert.c:154,1
    - Dst: NCONF_new
      Src: /src/haproxy/src/ssl_gencert.c:157,1
    - Dst: X509V3_set_ctx
      Src: /src/haproxy/src/ssl_gencert.c:158,1
    - Dst: X509V3_EXT_nconf
      Src: /src/haproxy/src/ssl_gencert.c:162,1
    - Dst: X509_add_ext
      Src: /src/haproxy/src/ssl_gencert.c:164,1
    - Dst: X509_EXTENSION_free
      Src: /src/haproxy/src/ssl_gencert.c:165,1
    - Dst: X509_EXTENSION_free
      Src: /src/haproxy/src/ssl_gencert.c:168,1
    - Dst: ssl_sock_add_san_ext
      Src: /src/haproxy/src/ssl_gencert.c:172,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/ssl_gencert.c:178,1
    - Dst: EVP_sha1
      Src: /src/haproxy/src/ssl_gencert.c:181,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/ssl_gencert.c:183,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/ssl_gencert.c:185,1
    - Dst: EVP_PKEY_get_default_digest_nid
      Src: /src/haproxy/src/ssl_gencert.c:190,1
    - Dst: EVP_get_digestbynid
      Src: /src/haproxy/src/ssl_gencert.c:192,1
    - Dst: X509_sign
      Src: /src/haproxy/src/ssl_gencert.c:199,1
    - Dst: SSL_CTX_new
      Src: /src/haproxy/src/ssl_gencert.c:203,1
    - Dst: SSLv23_server_method
      Src: /src/haproxy/src/ssl_gencert.c:203,1
    - Dst: SSL_CTX_set_security_level
      Src: /src/haproxy/src/ssl_gencert.c:207,1
    - Dst: SSL_CTX_use_PrivateKey
      Src: /src/haproxy/src/ssl_gencert.c:209,1
    - Dst: SSL_CTX_use_certificate
      Src: /src/haproxy/src/ssl_gencert.c:211,1
    - Dst: SSL_CTX_check_private_key
      Src: /src/haproxy/src/ssl_gencert.c:213,1
    - Dst: SSL_CTX_add1_chain_cert
      Src: /src/haproxy/src/ssl_gencert.c:218,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_gencert.c:223,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_gencert.c:224,1
    - Dst: SSL_CTX_add1_chain_cert
      Src: /src/haproxy/src/ssl_gencert.c:225,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_gencert.c:232,1
    - Dst: SSL_CTX_set_tmp_dh_callback
      Src: /src/haproxy/src/ssl_gencert.c:236,1
    - Dst: ssl_sock_set_tmp_dh_from_pkey
      Src: /src/haproxy/src/ssl_gencert.c:238,1
    - Dst: SSL_CTX_set1_curves_list
      Src: /src/haproxy/src/ssl_gencert.c:246,1
    - Dst: OBJ_sn2nid
      Src: /src/haproxy/src/ssl_gencert.c:257,1
    - Dst: EC_KEY_new_by_curve_name
      Src: /src/haproxy/src/ssl_gencert.c:259,1
    - Dst: SSL_CTX_set_tmp_ecdh
      Src: /src/haproxy/src/ssl_gencert.c:261,1
    - Dst: EC_KEY_free
      Src: /src/haproxy/src/ssl_gencert.c:262,1
    - Dst: NCONF_free
      Src: /src/haproxy/src/ssl_gencert.c:270,1
    - Dst: SSL_free
      Src: /src/haproxy/src/ssl_gencert.c:271,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_gencert.c:272,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_gencert.c:273,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 136
    argCount: 3
    argNames:
    - servername
    - bind_conf
    - ssl
    argTypes:
    - char*
    - struct bind_conf*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 86
    functionDepth: 5
    functionLinenumber: 86
    functionLinenumberEnd: 275
    functionName: ssl_sock_do_create_cert
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - X509_gmtime_adj
    - X509_add_ext
    - EVP_get_digestbynid
    - SSL_CTX_check_private_key
    - SSL_CTX_set_security_level
    - X509_NAME_add_entry_by_txt
    - SSL_CTX_set_tmp_ecdh
    - NCONF_new
    - ASN1_INTEGER_set
    - X509_NAME_dup
    - sk_X509_value
    - SSL_CTX_set1_curves_list
    - ssl_sock_chose_sni_ctx
    - X509V3_set_ctx
    - X509_EXTENSION_free
    - X509_getm_notBefore
    - X509V3_EXT_nconf
    - SSL_CTX_free
    - EVP_PKEY_base_id
    - X509_NAME_free
    - SSL_free
    - SSL_CTX_use_certificate
    - SSL_CTX_add1_chain_cert
    - X509_set_version
    - EVP_sha1
    - EVP_PKEY_get_default_digest_nid
    - EC_KEY_new_by_curve_name
    - SSL_new
    - SSLv23_server_method
    - X509_get_serialNumber
    - SSL_CTX_new
    - ssl_sock_add_san_ext
    - OBJ_sn2nid
    - SSL_CTX_use_PrivateKey
    - X509_set_pubkey
    - X509_set_issuer_name
    - X509_free
    - EC_KEY_free
    - X509_getm_notAfter
    - X509_sign
    - _HA_ATOMIC_ADD_FETCH
    - X509_set_subject_name
    - X509_get_subject_name
    - ssl_sock_set_tmp_dh_from_pkey
    - SSL_CTX_set_tmp_dh_callback
    - X509_new
    - NCONF_free
    - SSL_CTX_get0_privatekey
    - SSL_get_privatekey
    - EVP_sha256
    - sk_X509_num
    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:285,1
    - Dst: lru64_lookup
      Src: /src/haproxy/src/ssl_gencert.c:286,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/haproxy/src/ssl_gencert.c:289,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:290,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:293,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: 296
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 296
    functionName: ssl_sock_assign_generated_cert
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - SSL_set_SSL_CTX
    - HA_RWLOCK_WRUNLOCK
    - lru64_lookup
    - 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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - bind_conf
    argTypes:
    - unsigned int
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 306
    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:315,1
    - Dst: lru64_get
      Src: /src/haproxy/src/ssl_gencert.c:316,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:318,1
    - Dst: struct lru64*::free
      Src: /src/haproxy/src/ssl_gencert.c:322,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/ssl_gencert.c:323,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:324,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: 328
      start: 310
    functionDepth: 3
    functionLinenumber: 310
    functionLinenumberEnd: 328
    functionName: ssl_sock_set_generated_cert
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - struct lru64*::free
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - lru64_commit
    - lru64_get
    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:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: ssl_sock_generated_cert_key
      Src: /src/haproxy/src/ssl_gencert.c:347,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_gencert.c:347,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_gencert.c:349,1
    - Dst: lru64_get
      Src: /src/haproxy/src/ssl_gencert.c:350,1
    - Dst: ssl_sock_do_create_cert
      Src: /src/haproxy/src/ssl_gencert.c:354,1
    - Dst: lru64_commit
      Src: /src/haproxy/src/ssl_gencert.c:355,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/haproxy/src/ssl_gencert.c:357,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_gencert.c:358,1
    - Dst: ssl_sock_do_create_cert
      Src: /src/haproxy/src/ssl_gencert.c:362,1
    - Dst: SSL_set_SSL_CTX
      Src: /src/haproxy/src/ssl_gencert.c:363,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_gencert.c:365,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - servername
    - bind_conf
    - ssl
    argTypes:
    - char*
    - struct bind_conf*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 369
    functionName: ssl_sock_generate_certificate
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 1
    functionsReached:
    - ssl_sock_do_create_cert
    - SSL_CTX_free
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - SSL_set_SSL_CTX
    - strlen
    - lru64_commit
    - lru64_get
    - ssl_sock_generated_cert_key
    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:373,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/ssl_gencert.c:375,1
    - Dst: ssl_sock_generated_cert_key
      Src: /src/haproxy/src/ssl_gencert.c:376,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/ssl_gencert.c:376,1
    - Dst: ssl_sock_assign_generated_cert
      Src: /src/haproxy/src/ssl_gencert.c:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - bind_conf
    - ssl
    argTypes:
    - struct bind_conf*
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 381
    functionName: ssl_sock_generate_certificate_from_conn
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 1
    functionsReached:
    - SSL_get_ex_data
    - conn_get_dst
    - get_addr_len
    - ssl_sock_assign_generated_cert
    - ssl_sock_generated_cert_key
    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:397,1
    - Dst: time
      Src: /src/haproxy/src/ssl_gencert.c:399,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_gencert.c:404,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_gencert.c:411,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_gencert.c:413,1
    - Dst: ssl_sock_load_files_into_ckch
      Src: /src/haproxy/src/ssl_gencert.c:419,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_gencert.c:420,1
    - Dst: free
      Src: /src/haproxy/src/ssl_gencert.c:422,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_gencert.c:428,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_gencert.c:439,1
    - Dst: free
      Src: /src/haproxy/src/ssl_gencert.c:440,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 384
    functionDepth: 3
    functionLinenumber: 384
    functionLinenumberEnd: 446
    functionName: ssl_sock_gencert_load_ca
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 2
    functionsReached:
    - time
    - ssl_sock_free_cert_key_and_chain_contents
    - ssl_sock_load_files_into_ckch
    - free
    - lru64_new
    - ha_alert
    - calloc
    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:453,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_gencert.c:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bind_conf
    argTypes:
    - struct bind_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 456
    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:465,1
    - Dst: HA_RWLOCK_DESTROY
      Src: /src/haproxy/src/ssl_gencert.c:466,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 469
    functionName: __ssl_gencert_deinit
    functionSourceFile: /src/haproxy/src/ssl_gencert.c
    functionUses: 0
    functionsReached:
    - lru64_destroy
    - HA_RWLOCK_DESTROY
    linkageType: ''
    returnType: void
    signature: void __ssl_gencert_deinit(void)
  - 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: 2
    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: 6
    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
    - HA_ATOMIC_DEC
    - round_ptr_size
    linkageType: ''
    returnType: void
    signature: void __stksess_free(struct stktable *t, struct stksess *ts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:108,1
    - Dst: dict_entry_unref
      Src: /src/haproxy/src/stick_table.c:110,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:110,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:111,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:115,1
    - Dst: stktable_calc_shard_num
      Src: /src/haproxy/src/stick_table.c:119,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/stick_table.c:122,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 102
    functionDepth: 5
    functionLinenumber: 102
    functionLinenumberEnd: 125
    functionName: stksess_free
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 2
    functionsReached:
    - dict_entry_unref
    - __stksess_free
    - stktable_data_ptr
    - strlen
    - stktable_data_cast
    - ALREADY_CHECKED
    - stktable_calc_shard_num
    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:135,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:139,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:142,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:148,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:149,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:152,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:153,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/stick_table.c:154,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:155,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 161
    functionName: __stksess_kill
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - __stksess_free
    - HA_ATOMIC_LOAD
    - eb32_delete
    - 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:178,1
    - Dst: stktable_calc_shard_num
      Src: /src/haproxy/src/stick_table.c:182,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/stick_table.c:185,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:187,1
    - Dst: HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/stick_table.c:188,1
    - Dst: __stksess_kill
      Src: /src/haproxy/src/stick_table.c:189,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 193
    functionName: stksess_kill
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - strlen
    - ALREADY_CHECKED
    - stktable_calc_shard_num
    - __stksess_kill
    - HA_ATOMIC_SUB_FETCH
    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:202,1
    - Dst: memcpy
      Src: /src/haproxy/src/stick_table.c:204,1
    - Dst: MIN
      Src: /src/haproxy/src/stick_table.c:204,1
    - Dst: MIN
      Src: /src/haproxy/src/stick_table.c:205,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: 207
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 207
    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:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 226
    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:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - t
    - key
    - len
    argTypes:
    - struct stktable*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 241
    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:257,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: 258
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 258
    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:266,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:273,1
    - Dst: tick_add
      Src: /src/haproxy/src/stick_table.c:274,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stick_table.c:274,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/stick_table.c:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 277
    functionName: __stksess_init
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - tick_add
    - memset
    - MT_LIST_INIT
    - MS_TO_TICKS
    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:301,1
    - Dst: HA_RWLOCK_TRYWRLOCK
      Src: /src/haproxy/src/stick_table.c:313,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:319,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/stick_table.c:322,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:324,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:333,1
    - Dst: likely
      Src: /src/haproxy/src/stick_table.c:334,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/stick_table.c:342,1
    - Dst: eb32_next
      Src: /src/haproxy/src/stick_table.c:343,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:349,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:351,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:353,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:361,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:372,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:374,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:391,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:396,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/stick_table.c:400,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:401,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:402,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:403,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:413,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:415,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 76
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 431
    functionName: stktable_trash_oldest
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - eb32_lookup_ge
    - tick_is_lt
    - unlikely
    - HA_RWLOCK_WRLOCK
    - statistical_prng_range
    - HA_RWLOCK_WRUNLOCK
    - eb32_first
    - eb32_next
    - __stksess_free
    - eb32_entry
    - HA_ATOMIC_LOAD
    - tick_isset
    - eb32_delete
    - eb32_insert
    - likely
    - ebmb_delete
    - HA_RWLOCK_TRYWRLOCK
    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:446,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:448,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:451,1
    - Dst: stktable_trash_oldest
      Src: /src/haproxy/src/stick_table.c:454,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:458,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/stick_table.c:463,1
    - Dst: round_ptr_size
      Src: /src/haproxy/src/stick_table.c:465,1
    - Dst: __stksess_init
      Src: /src/haproxy/src/stick_table.c:466,1
    - Dst: stksess_setkey
      Src: /src/haproxy/src/stick_table.c:468,1
    - Dst: stksess_setkey_shard
      Src: /src/haproxy/src/stick_table.c:469,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:472,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - t
    - key
    argTypes:
    - struct stktable*
    - struct stktable_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 475
    functionName: stksess_new
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_DEC
    - unlikely
    - __stksess_init
    - stksess_setkey
    - pool_alloc
    - HA_ATOMIC_FETCH_ADD
    - stksess_setkey_shard
    - stktable_trash_oldest
    - round_ptr_size
    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:486,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/stick_table.c:488,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:490,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:495,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - t
    - key
    - shard
    argTypes:
    - struct stktable*
    - struct stktable_key*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 496
    functionName: __stktable_lookup_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - ebmb_lookup
    - ebst_lookup_len
    - unlikely
    - ebmb_entry
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *__stktable_lookup_key(struct stktable *t, struct stktable_key
      *key, uint shard)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stktable_calc_shard_num
      Src: /src/haproxy/src/stick_table.c:515,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:517,1
    - Dst: __stktable_lookup_key
      Src: /src/haproxy/src/stick_table.c:518,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:520,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t
    - key
    argTypes:
    - struct stktable*
    - struct stktable_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 524
    functionName: stktable_lookup_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_INC
    - HA_RWLOCK_RDUNLOCK
    - stktable_calc_shard_num
    - __stktable_lookup_key
    - HA_RWLOCK_RDLOCK
    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:539,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/stick_table.c:544,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:548,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/stick_table.c:553,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:556,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:557,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - t
    - ptr
    argTypes:
    - struct stktable*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 563
    functionName: stktable_lookup_ptr
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - ebmb_first
    - HA_RWLOCK_RDUNLOCK
    - ebmb_next
    - ebmb_entry
    - 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:577,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/stick_table.c:579,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:581,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - t
    - ts
    - shard
    argTypes:
    - struct stktable*
    - struct stksess*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 585
    functionName: __stktable_lookup
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - ebst_lookup
    - ebmb_lookup
    - unlikely
    - ebmb_entry
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *__stktable_lookup(struct stktable *t, struct stksess
      *ts, uint shard)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:603,1
    - Dst: stktable_calc_shard_num
      Src: /src/haproxy/src/stick_table.c:607,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:609,1
    - Dst: __stktable_lookup
      Src: /src/haproxy/src/stick_table.c:610,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:612,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:613,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 596
    functionDepth: 3
    functionLinenumber: 596
    functionLinenumberEnd: 616
    functionName: stktable_lookup
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    - __stktable_lookup
    - HA_RWLOCK_RDUNLOCK
    - strlen
    - stktable_calc_shard_num
    - 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:629,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/stick_table.c:631,1
    - Dst: stktable_requeue_exp
      Src: /src/haproxy/src/stick_table.c:632,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:641,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/stick_table.c:642,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/stick_table.c:643,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/stick_table.c:648,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/stick_table.c:649,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/stick_table.c:656,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:659,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 5
    argNames:
    - t
    - ts
    - local
    - expire
    - decrefcnt
    argTypes:
    - struct stktable*
    - struct stksess*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 660
    functionName: stktable_touch_with_exp
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - _HA_ATOMIC_LOAD
    - MT_LIST_TRY_APPEND
    - tasklet_wakeup
    - HA_ATOMIC_STORE
    - stktable_requeue_exp
    - HA_ATOMIC_LOAD
    - _HA_ATOMIC_STORE
    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:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - ts
    - decrefcnt
    argTypes:
    - struct stktable*
    - struct stksess*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 668
    functionDepth: 2
    functionLinenumber: 668
    functionLinenumberEnd: 671
    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:681,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stick_table.c:681,1
    - Dst: stktable_touch_with_exp
      Src: /src/haproxy/src/stick_table.c:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - t
    - ts
    - decrefcnt
    argTypes:
    - struct stktable*
    - struct stksess*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 684
    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:694,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    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:707,1
    - Dst: ebmb_insert
      Src: /src/haproxy/src/stick_table.c:709,1
    - Dst: likely
      Src: /src/haproxy/src/stick_table.c:710,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:712,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:714,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - t
    - ts
    - shard
    argTypes:
    - struct stktable*
    - struct stksess*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 715
    functionName: __stktable_store
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - ebst_insert
    - ebmb_insert
    - eb32_insert
    - likely
    - ebmb_entry
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *__stktable_store(struct stktable *t, struct stksess
      *ts, uint shard)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:730,1
    - Dst: stktable_calc_shard_num
      Src: /src/haproxy/src/stick_table.c:734,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:737,1
    - Dst: tick_first
      Src: /src/haproxy/src/stick_table.c:738,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stick_table.c:744,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stick_table.c:748,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stick_table.c:751,1
    - Dst: tick_first
      Src: /src/haproxy/src/stick_table.c:752,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:756,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:762,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:762,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/stick_table.c:765,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stick_table.c:767,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 720
    functionDepth: 1
    functionLinenumber: 720
    functionLinenumberEnd: 769
    functionName: stktable_requeue_exp
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stktable_calc_shard_num
    - MT_LIST_TRY_APPEND
    - tick_is_lt
    - __ha_cpu_relax
    - task_wakeup
    - HA_ATOMIC_CAS
    - HA_ATOMIC_LOAD
    - strlen
    - tick_isset
    - tick_first
    linkageType: ''
    returnType: void
    signature: void stktable_requeue_exp(struct stktable *t, const struct stksess
      *ts)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: stktable_calc_shard_num
      Src: /src/haproxy/src/stick_table.c:790,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:792,1
    - Dst: __stktable_lookup_key
      Src: /src/haproxy/src/stick_table.c:793,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:795,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:796,1
    - Dst: stksess_new
      Src: /src/haproxy/src/stick_table.c:804,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:816,1
    - Dst: __stktable_store
      Src: /src/haproxy/src/stick_table.c:818,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:820,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:821,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:823,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:827,1
    - Dst: stktable_requeue_exp
      Src: /src/haproxy/src/stick_table.c:831,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - table
    - key
    argTypes:
    - struct stktable*
    - struct stktable_key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 776
    functionDepth: 4
    functionLinenumber: 776
    functionLinenumberEnd: 833
    functionName: stktable_get_entry
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_INC
    - unlikely
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - __stktable_store
    - __stksess_free
    - stktable_requeue_exp
    - HA_RWLOCK_RDUNLOCK
    - stksess_new
    - stktable_calc_shard_num
    - __stktable_lookup_key
    - HA_RWLOCK_RDLOCK
    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:842,1
    - Dst: MT_LIST_POP_LOCKED
      Src: /src/haproxy/src/stick_table.c:846,1
    - Dst: typeof
      Src: /src/haproxy/src/stick_table.c:846,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:867,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:877,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:878,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:880,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:881,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:889,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:892,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/stick_table.c:897,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stick_table.c:901,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 904
    functionName: stktable_add_pend_updates
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - HA_RWLOCK_WRUNLOCK
    - task_wakeup
    - eb32_delete
    - typeof
    - eb32_insert
    - MT_LIST_POP_LOCKED
    - MT_LIST_INIT
    - HA_RWLOCK_TRYWRLOCK
    linkageType: ''
    returnType: struct task
    signature: struct task *stktable_add_pend_updates(struct task *t, void *ctx, unsigned
      int state)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:917,1
    - Dst: stktable_calc_shard_num
      Src: /src/haproxy/src/stick_table.c:921,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:923,1
    - Dst: __stktable_lookup
      Src: /src/haproxy/src/stick_table.c:924,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:926,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:927,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:933,1
    - Dst: HA_RWLOCK_TRYRDTOSK
      Src: /src/haproxy/src/stick_table.c:935,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:937,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:938,1
    - Dst: HA_RWLOCK_SKTOWR
      Src: /src/haproxy/src/stick_table.c:941,1
    - Dst: __stktable_store
      Src: /src/haproxy/src/stick_table.c:945,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:946,1
    - Dst: stktable_requeue_exp
      Src: /src/haproxy/src/stick_table.c:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 2
    argNames:
    - table
    - nts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 950
    functionName: stktable_set_entry
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    - __stktable_lookup
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - __stktable_store
    - stktable_requeue_exp
    - HA_RWLOCK_RDUNLOCK
    - strlen
    - HA_RWLOCK_TRYRDTOSK
    - stktable_calc_shard_num
    - HA_RWLOCK_SKTOWR
    - HA_RWLOCK_RDLOCK
    linkageType: ''
    returnType: struct stksess
    signature: struct stksess *stktable_set_entry(struct stktable *table, struct stksess
      *nts)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: MT_LIST_POP
      Src: /src/haproxy/src/stick_table.c:976,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:977,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:981,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:982,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:985,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:987,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:989,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/stick_table.c:995,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:998,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1002,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1002,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:1006,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/stick_table.c:1008,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:1011,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:1017,1
    - Dst: likely
      Src: /src/haproxy/src/stick_table.c:1018,1
    - Dst: likely
      Src: /src/haproxy/src/stick_table.c:1022,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1022,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1024,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1024,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/stick_table.c:1033,1
    - Dst: eb32_next
      Src: /src/haproxy/src/stick_table.c:1034,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:1040,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:1042,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stick_table.c:1048,1
    - Dst: tick_add
      Src: /src/haproxy/src/stick_table.c:1049,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stick_table.c:1049,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stick_table.c:1052,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1053,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/stick_table.c:1057,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:1068,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1070,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:1083,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:1088,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/stick_table.c:1092,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:1093,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:1094,1
    - Dst: __stksess_free
      Src: /src/haproxy/src/stick_table.c:1095,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:1099,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/stick_table.c:1105,1
    - Dst: eb32_first
      Src: /src/haproxy/src/stick_table.c:1107,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1114,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1114,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/stick_table.c:1114,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:1116,1
    - Dst: eb32_next
      Src: /src/haproxy/src/stick_table.c:1117,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:1124,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stick_table.c:1126,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:1129,1
    - Dst: MT_LIST_TRY_APPEND
      Src: /src/haproxy/src/stick_table.c:1136,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stick_table.c:1141,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/stick_table.c:1141,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stick_table.c:1145,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 96
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 956
    functionDepth: 2
    functionLinenumber: 956
    functionLinenumberEnd: 1153
    functionName: process_tables_expire
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - MT_LIST_TRY_APPEND
    - eb32_lookup_ge
    - unlikely
    - task_wakeup
    - __stksess_free
    - eb32_delete
    - ebmb_delete
    - HA_RWLOCK_WRLOCK
    - tick_is_expired
    - HA_RWLOCK_WRUNLOCK
    - eb32_next
    - tick_isset
    - eb32_entry
    - tick_is_le
    - likely
    - MT_LIST_POP
    - tick_is_lt
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_CAS
    - eb32_insert
    - MS_TO_TICKS
    - MT_LIST_DELETE
    - tick_add
    - eb32_first
    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:1167,1
    - Dst: memset
      Src: /src/haproxy/src/stick_table.c:1172,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/stick_table.c:1173,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:1174,1
    - Dst: create_pool
      Src: /src/haproxy/src/stick_table.c:1179,1
    - Dst: round_ptr_size
      Src: /src/haproxy/src/stick_table.c:1179,1
    - Dst: peers_register_table
      Src: /src/haproxy/src/stick_table.c:1182,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/stick_table.c:1192,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1194,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1195,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1198,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1200,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1204,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1210,1
    - Dst: calloc
      Src: /src/haproxy/src/stick_table.c:1218,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:1222,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/stick_table.c:1223,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:1231,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 57
    argCount: 2
    argNames:
    - t
    - err_msg
    argTypes:
    - struct stktable*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1161
    functionDepth: 5
    functionLinenumber: 1161
    functionLinenumberEnd: 1233
    functionName: stktable_init
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - HA_RWLOCK_INIT
    - XXH64
    - memset
    - tasklet_new
    - stktable_find_by_name
    - ha_free
    - create_pool
    - memprintf
    - MT_LIST_INIT
    - round_ptr_size
    - peers_register_table
    - calloc
    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:1248,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/stick_table.c:1249,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/stick_table.c:1250,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/stick_table.c:1251,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/stick_table.c:1253,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1254,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/stick_table.c:1255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1256
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1256
    functionName: stktable_deinit
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - MT_LIST_DELETE
    - tasklet_free
    - ha_free
    - pool_destroy
    - eb32_delete
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void stktable_deinit(struct stktable *t)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1279,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1285,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1292,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:1296,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1298,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1310,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: 1312
      start: 1274
    functionDepth: 1
    functionLinenumber: 1274
    functionLinenumberEnd: 1312
    functionName: stktable_parse_type
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - ha_alert
    - strtol
    - strcmp
    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:1339,1
    - Dst: atoi
      Src: /src/haproxy/src/stick_table.c:1353,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/stick_table.c:1358,1
    - Dst: stktable_type_size
      Src: /src/haproxy/src/stick_table.c:1364,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: 1367
      start: 1324
    functionDepth: 2
    functionLinenumber: 1324
    functionLinenumberEnd: 1367
    functionName: stktable_alloc_data_type
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stktable_type_size
    - parse_time_err
    - atoi
    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:1388,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:1400,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/stick_table.c:1403,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1411,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1414,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/stick_table.c:1419,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1420,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1428,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1431,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1436,1
    - Dst: strdup
      Src: /src/haproxy/src/stick_table.c:1437,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1439,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1442,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/stick_table.c:1447,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1449,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1455,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1461,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1469,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1473,1
    - Dst: stktable_parse_type
      Src: /src/haproxy/src/stick_table.c:1475,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1481,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1498,1
    - Dst: stktable_get_data_type
      Src: /src/haproxy/src/stick_table.c:1515,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1517,1
    - Dst: stktable_alloc_data_type
      Src: /src/haproxy/src/stick_table.c:1523,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stick_table.c:1527,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1533,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1539,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1544,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1550,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1558,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1564,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1570,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1576,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1580,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1583,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1587,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1595,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1599,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1605,1
    - Dst: ha_free
      Src: /src/haproxy/src/stick_table.c:1611,1
    - Dst: strdup
      Src: /src/haproxy/src/stick_table.c:1612,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1615,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1618,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/stick_table.c:1623,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1624,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1630,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1638,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1646,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:1653,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: 1661
      start: 1380
    functionDepth: 4
    functionLinenumber: 1380
    functionLinenumberEnd: 1661
    functionName: parse_stick_table
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 2
    functionsReached:
    - strdup
    - ha_warning
    - strcmp
    - stktable_parse_type
    - stktable_alloc_data_type
    - ha_free
    - copy_file_name
    - parse_time_err
    - strlen
    - stktable_get_data_type
    - ha_alert
    - parse_size_err
    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:1673,1
    - Dst: smp_make_safe
      Src: /src/haproxy/src/stick_table.c:1709,1
    - Dst: smp_make_rw
      Src: /src/haproxy/src/stick_table.c:1718,1
    - Dst: smp_dup
      Src: /src/haproxy/src/stick_table.c:1722,1
    - Dst: memset
      Src: /src/haproxy/src/stick_table.c:1726,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 45
    argCount: 2
    argNames:
    - smp
    - t
    argTypes:
    - struct sample*
    - struct stktable*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1670
    functionDepth: 3
    functionLinenumber: 1670
    functionLinenumberEnd: 1739
    functionName: smp_to_stkey
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - memset
    - sample_convert
    - smp_dup
    - smp_make_rw
    - smp_make_safe
    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:1755,1
    - Dst: memcpy
      Src: /src/haproxy/src/stick_table.c:1758,1
    - Dst: smp_make_safe
      Src: /src/haproxy/src/stick_table.c:1773,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: 1782
      start: 1747
    functionDepth: 1
    functionLinenumber: 1747
    functionLinenumberEnd: 1782
    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:1805,1
    - Dst: sample_process
      Src: /src/haproxy/src/stick_table.c:1807,1
    - Dst: smp_to_stkey
      Src: /src/haproxy/src/stick_table.c:1814,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: 1815
      start: 1801
    functionDepth: 4
    functionLinenumber: 1801
    functionLinenumberEnd: 1815
    functionName: stktable_fetch_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - memset
    - smp_to_stkey
    - sample_process
    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:1828,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - expr
    - table_type
    argTypes:
    - struct sample_expr*
    - unsigned long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1821
    functionDepth: 2
    functionLinenumber: 1821
    functionLinenumberEnd: 1835
    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:1884,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: 1899
      start: 1877
    functionDepth: 0
    functionLinenumber: 1877
    functionLinenumberEnd: 1899
    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:1912,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:1916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1905
    functionDepth: 0
    functionLinenumber: 1905
    functionLinenumberEnd: 1919
    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:1931,1
    - Dst: stktable_get_data_type
      Src: /src/haproxy/src/stick_table.c:1936,1
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:1945,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:1950,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - name
    - idx
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1928
    functionDepth: 1
    functionLinenumber: 1928
    functionLinenumberEnd: 1960
    functionName: stktable_get_data_type_idx
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - strtoul
    - strncmp
    - stktable_get_data_type
    - strcspn
    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:1972,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/stick_table.c:1977,1
    - Dst: stktable_lookup_key
      Src: /src/haproxy/src/stick_table.c:1978,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - table
    - smp
    - create
    argTypes:
    - struct stktable*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1967
    functionDepth: 5
    functionLinenumber: 1967
    functionLinenumberEnd: 1979
    functionName: smp_fetch_stksess
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stktable_get_entry
    - stktable_lookup_key
    - 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:1995,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2000,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: 2002
      start: 1988
    functionDepth: 6
    functionLinenumber: 1988
    functionLinenumberEnd: 2002
    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:2016,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2016,1
    - Dst: smp_fetch_bytes_in_rate
      Src: /src/haproxy/src/stick_table.c:2018,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: 2019
      start: 2011
    functionDepth: 6
    functionLinenumber: 2011
    functionLinenumberEnd: 2019
    functionName: sample_conv_table_bytes_in_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - smp_fetch_bytes_in_rate
    - 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:2033,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2033,1
    - Dst: smp_fetch_bytes_out_rate
      Src: /src/haproxy/src/stick_table.c:2035,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: 2036
      start: 2028
    functionDepth: 6
    functionLinenumber: 2028
    functionLinenumberEnd: 2036
    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:2052,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2052,1
    - Dst: smp_fetch_clr_gpc
      Src: /src/haproxy/src/stick_table.c:2054,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: 2055
      start: 2045
    functionDepth: 6
    functionLinenumber: 2045
    functionLinenumberEnd: 2055
    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:2069,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2069,1
    - Dst: smp_fetch_clr_gpc0
      Src: /src/haproxy/src/stick_table.c:2071,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: 2072
      start: 2064
    functionDepth: 6
    functionLinenumber: 2064
    functionLinenumberEnd: 2072
    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:2086,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2086,1
    - Dst: smp_fetch_clr_gpc1
      Src: /src/haproxy/src/stick_table.c:2088,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: 2089
      start: 2081
    functionDepth: 6
    functionLinenumber: 2081
    functionLinenumberEnd: 2089
    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:2103,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2103,1
    - Dst: smp_fetch_conn_cnt
      Src: /src/haproxy/src/stick_table.c:2105,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: 2106
      start: 2098
    functionDepth: 6
    functionLinenumber: 2098
    functionLinenumberEnd: 2106
    functionName: sample_conv_table_conn_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_conn_cnt
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2120,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2120,1
    - Dst: smp_fetch_conn_cur
      Src: /src/haproxy/src/stick_table.c:2122,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: 2123
      start: 2115
    functionDepth: 6
    functionLinenumber: 2115
    functionLinenumberEnd: 2123
    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:2137,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2137,1
    - Dst: smp_fetch_conn_rate
      Src: /src/haproxy/src/stick_table.c:2139,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: 2140
      start: 2132
    functionDepth: 6
    functionLinenumber: 2132
    functionLinenumberEnd: 2140
    functionName: sample_conv_table_conn_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_conn_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2154,1
    - Dst: tick_remain
      Src: /src/haproxy/src/stick_table.c:2169,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2171,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: 2173
      start: 2147
    functionDepth: 6
    functionLinenumber: 2147
    functionLinenumberEnd: 2173
    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:2187,1
    - Dst: tick_remain
      Src: /src/haproxy/src/stick_table.c:2202,1
    - Dst: tick_remain
      Src: /src/haproxy/src/stick_table.c:2202,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2204,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: 2206
      start: 2180
    functionDepth: 6
    functionLinenumber: 2180
    functionLinenumberEnd: 2206
    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:2221,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2221,1
    - Dst: smp_fetch_inc_gpc
      Src: /src/haproxy/src/stick_table.c:2223,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: 2224
      start: 2214
    functionDepth: 6
    functionLinenumber: 2214
    functionLinenumberEnd: 2224
    functionName: sample_conv_table_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - smp_fetch_inc_gpc
    - 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:2238,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2238,1
    - Dst: smp_fetch_inc_gpc0
      Src: /src/haproxy/src/stick_table.c:2240,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: 2241
      start: 2233
    functionDepth: 6
    functionLinenumber: 2233
    functionLinenumberEnd: 2241
    functionName: sample_conv_table_inc_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_inc_gpc0
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2255,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2255,1
    - Dst: smp_fetch_inc_gpc1
      Src: /src/haproxy/src/stick_table.c:2257,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: 2258
      start: 2250
    functionDepth: 6
    functionLinenumber: 2250
    functionLinenumberEnd: 2258
    functionName: sample_conv_table_inc_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_inc_gpc1
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2272,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2272,1
    - Dst: smp_fetch_glitch_cnt
      Src: /src/haproxy/src/stick_table.c:2274,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: 2275
      start: 2267
    functionDepth: 6
    functionLinenumber: 2267
    functionLinenumberEnd: 2275
    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:2289,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2289,1
    - Dst: smp_fetch_glitch_rate
      Src: /src/haproxy/src/stick_table.c:2291,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: 2292
      start: 2284
    functionDepth: 6
    functionLinenumber: 2284
    functionLinenumberEnd: 2292
    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:2308,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2308,1
    - Dst: smp_fetch_get_gpt
      Src: /src/haproxy/src/stick_table.c:2310,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: 2311
      start: 2301
    functionDepth: 6
    functionLinenumber: 2301
    functionLinenumberEnd: 2311
    functionName: sample_conv_table_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_get_gpt
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2325,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2325,1
    - Dst: smp_fetch_get_gpt0
      Src: /src/haproxy/src/stick_table.c:2327,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: 2328
      start: 2320
    functionDepth: 6
    functionLinenumber: 2320
    functionLinenumberEnd: 2328
    functionName: sample_conv_table_gpt0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - smp_fetch_get_gpt0
    - 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:2344,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2344,1
    - Dst: smp_fetch_get_gpc
      Src: /src/haproxy/src/stick_table.c:2346,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: 2347
      start: 2337
    functionDepth: 6
    functionLinenumber: 2337
    functionLinenumberEnd: 2347
    functionName: sample_conv_table_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - smp_fetch_get_gpc
    - stkctr_set_entry
    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:2363,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2363,1
    - Dst: smp_fetch_gpc_rate
      Src: /src/haproxy/src/stick_table.c:2365,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: 2366
      start: 2356
    functionDepth: 6
    functionLinenumber: 2356
    functionLinenumberEnd: 2366
    functionName: sample_conv_table_gpc_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_gpc_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2380,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2380,1
    - Dst: smp_fetch_get_gpc0
      Src: /src/haproxy/src/stick_table.c:2382,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: 2383
      start: 2375
    functionDepth: 6
    functionLinenumber: 2375
    functionLinenumberEnd: 2383
    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:2397,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2397,1
    - Dst: smp_fetch_gpc0_rate
      Src: /src/haproxy/src/stick_table.c:2399,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: 2400
      start: 2392
    functionDepth: 6
    functionLinenumber: 2392
    functionLinenumberEnd: 2400
    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:2414,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2414,1
    - Dst: smp_fetch_get_gpc1
      Src: /src/haproxy/src/stick_table.c:2416,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: 2417
      start: 2409
    functionDepth: 6
    functionLinenumber: 2409
    functionLinenumberEnd: 2417
    functionName: sample_conv_table_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_get_gpc1
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2431,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2431,1
    - Dst: smp_fetch_gpc1_rate
      Src: /src/haproxy/src/stick_table.c:2433,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: 2434
      start: 2426
    functionDepth: 6
    functionLinenumber: 2426
    functionLinenumberEnd: 2434
    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:2448,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2448,1
    - Dst: smp_fetch_http_err_cnt
      Src: /src/haproxy/src/stick_table.c:2450,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: 2451
      start: 2443
    functionDepth: 6
    functionLinenumber: 2443
    functionLinenumberEnd: 2451
    functionName: sample_conv_table_http_err_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_http_err_cnt
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2465,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2465,1
    - Dst: smp_fetch_http_err_rate
      Src: /src/haproxy/src/stick_table.c:2467,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: 2468
      start: 2460
    functionDepth: 6
    functionLinenumber: 2460
    functionLinenumberEnd: 2468
    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:2482,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2482,1
    - Dst: smp_fetch_http_fail_cnt
      Src: /src/haproxy/src/stick_table.c:2484,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: 2485
      start: 2477
    functionDepth: 6
    functionLinenumber: 2477
    functionLinenumberEnd: 2485
    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:2499,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2499,1
    - Dst: smp_fetch_http_fail_rate
      Src: /src/haproxy/src/stick_table.c:2501,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: 2502
      start: 2494
    functionDepth: 6
    functionLinenumber: 2494
    functionLinenumberEnd: 2502
    functionName: sample_conv_table_http_fail_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_http_fail_rate
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2516,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2516,1
    - Dst: smp_fetch_http_req_cnt
      Src: /src/haproxy/src/stick_table.c:2518,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: 2519
      start: 2511
    functionDepth: 6
    functionLinenumber: 2511
    functionLinenumberEnd: 2519
    functionName: sample_conv_table_http_req_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - smp_fetch_http_req_cnt
    - stkctr_set_entry
    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:2533,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2533,1
    - Dst: smp_fetch_http_req_rate
      Src: /src/haproxy/src/stick_table.c:2535,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: 2536
      start: 2528
    functionDepth: 6
    functionLinenumber: 2528
    functionLinenumberEnd: 2536
    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:2550,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2550,1
    - Dst: smp_fetch_kbytes_in
      Src: /src/haproxy/src/stick_table.c:2552,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: 2553
      start: 2545
    functionDepth: 6
    functionLinenumber: 2545
    functionLinenumberEnd: 2553
    functionName: sample_conv_table_kbytes_in
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_kbytes_in
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2567,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2567,1
    - Dst: smp_fetch_kbytes_out
      Src: /src/haproxy/src/stick_table.c:2569,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: 2570
      start: 2562
    functionDepth: 6
    functionLinenumber: 2562
    functionLinenumberEnd: 2570
    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:2586,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2595,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:2597,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2599,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:2601,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2604,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: 2606
      start: 2578
    functionDepth: 6
    functionLinenumber: 2578
    functionLinenumberEnd: 2606
    functionName: sample_conv_table_server_id
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - smp_fetch_stksess
    - HA_RWLOCK_RDLOCK
    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:2620,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2620,1
    - Dst: smp_fetch_sess_cnt
      Src: /src/haproxy/src/stick_table.c:2622,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: 2623
      start: 2615
    functionDepth: 6
    functionLinenumber: 2615
    functionLinenumberEnd: 2623
    functionName: sample_conv_table_sess_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sess_cnt
    - smp_fetch_stksess
    - stkctr_set_entry
    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:2637,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:2637,1
    - Dst: smp_fetch_sess_rate
      Src: /src/haproxy/src/stick_table.c:2639,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: 2640
      start: 2632
    functionDepth: 6
    functionLinenumber: 2632
    functionLinenumberEnd: 2640
    functionName: sample_conv_table_sess_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - smp_fetch_sess_rate
    - stkctr_set_entry
    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:2655,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:2664,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:2666,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: 2668
      start: 2648
    functionDepth: 6
    functionLinenumber: 2648
    functionLinenumberEnd: 2668
    functionName: sample_conv_table_trackers
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_stksess
    - stktable_release
    - HA_ATOMIC_LOAD
    linkageType: ''
    returnType: int
    signature: int sample_conv_table_trackers(const struct arg *arg_p, struct sample
      *smp, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:2688,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2693,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2694,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:2697,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:2700,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2700,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2704,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:2706,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:2709,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2713
      start: 2676
    functionDepth: 3
    functionLinenumber: 2676
    functionLinenumberEnd: 2713
    functionName: action_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_cast
    - update_freq_ctr_period
    - stktable_data_ptr_idx
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:2729,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2734,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2740,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2745,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2748,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:2752,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:2755,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2755,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2759,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:2761,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:2764,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    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: 2768
      start: 2716
    functionDepth: 3
    functionLinenumber: 2716
    functionLinenumberEnd: 2768
    functionName: action_inc_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    - stktable_data_ptr_idx
    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:2786,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2791,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2797,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:2802,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2805,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:2809,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:2812,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2812,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2816,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:2818,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:2821,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: 2825
      start: 2771
    functionDepth: 3
    functionLinenumber: 2771
    functionLinenumberEnd: 2825
    functionName: action_inc_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    - stktable_data_ptr_idx
    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:2844,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:2848,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:2851,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2853,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:2858,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2860,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2865,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2882,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:2886,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2888,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2893,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:2905,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: 2910
      start: 2837
    functionDepth: 5
    functionLinenumber: 2837
    functionLinenumberEnd: 2910
    functionName: parse_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - strlen
    - strtoul
    - memprintf
    - strtol
    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:2938,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:2943,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:2957,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:2959,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/stick_table.c:2964,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:2966,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:2968,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:2974,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:2976,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:2978,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:2980,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: 2984
      start: 2920
    functionDepth: 10
    functionLinenumber: 2920
    functionLinenumberEnd: 2984
    functionName: action_set_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - sample_fetch_as_type
    - send_log
    - stktable_data_cast
    - ha_alert
    - stktable_data_ptr_idx
    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:3005,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3010,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3012,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:3026,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:3028,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/stick_table.c:3033,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:3035,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:3037,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:3043,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3045,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:3047,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:3049,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: 3053
      start: 2987
    functionDepth: 10
    functionLinenumber: 2987
    functionLinenumberEnd: 3053
    functionName: action_set_gpt0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - sample_fetch_as_type
    - send_log
    - stktable_data_ptr
    - stktable_data_cast
    - ha_alert
    - stktable_data_ptr_idx
    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:3074,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:3078,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:3081,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3083,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3088,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3090,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3095,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3110,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3114,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3116,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3121,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3130,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3136,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/stick_table.c:3141,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3154,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3158,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/stick_table.c:3159,1
    - Dst: free
      Src: /src/haproxy/src/stick_table.c:3160,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: 3168
      start: 3066
    functionDepth: 7
    functionLinenumber: 3066
    functionLinenumberEnd: 3168
    functionName: parse_set_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - strlen
    - free
    - sample_src_names
    - memprintf
    - strtoul
    - strtol
    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:3194,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3199,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3200,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:3214,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:3216,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/stick_table.c:3221,1
    - Dst: send_log
      Src: /src/haproxy/src/stick_table.c:3223,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:3225,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:3233,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3236,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3236,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3240,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:3242,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:3245,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: 3249
      start: 3178
    functionDepth: 10
    functionLinenumber: 3178
    functionLinenumberEnd: 3249
    functionName: action_add_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - sample_fetch_as_type
    - send_log
    - stktable_data_cast
    - ha_alert
    - update_freq_ctr_period
    - stktable_data_ptr_idx
    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:3268,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3270,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:3274,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3276,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3281,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3283,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3288,1
    - Dst: strtol
      Src: /src/haproxy/src/stick_table.c:3297,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/stick_table.c:3302,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3315,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:3320,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/stick_table.c:3321,1
    - Dst: free
      Src: /src/haproxy/src/stick_table.c:3322,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: 3330
      start: 3261
    functionDepth: 7
    functionLinenumber: 3261
    functionLinenumberEnd: 3330
    functionName: parse_add_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - strlen
    - free
    - sample_src_names
    - memprintf
    - strtoul
    - strtol
    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: 3342
      start: 3335
    functionDepth: 0
    functionLinenumber: 3335
    functionLinenumberEnd: 3342
    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: 3357
      start: 3347
    functionDepth: 0
    functionLinenumber: 3347
    functionLinenumberEnd: 3357
    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:3386,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3400,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3405,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3409,1
    - Dst: unlikely
      Src: /src/haproxy/src/stick_table.c:3413,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:3421,1
    - Dst: stktable_lookup
      Src: /src/haproxy/src/stick_table.c:3421,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: 3425
      start: 3373
    functionDepth: 4
    functionLinenumber: 3373
    functionLinenumberEnd: 3425
    functionName: smp_fetch_sc_stkctr
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - unlikely
    - 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:3435,1
    - Dst: smp_fetch_src
      Src: /src/haproxy/src/stick_table.c:3445,1
    - Dst: smp_fetch_stksess
      Src: /src/haproxy/src/stick_table.c:3448,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/src/stick_table.c:3451,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: 3453
      start: 3430
    functionDepth: 6
    functionLinenumber: 3430
    functionLinenumberEnd: 3453
    functionName: smp_fetch_src_stkctr
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_src
    - smp_fetch_stksess
    - objt_conn
    - stkctr_set_entry
    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:3467,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3472,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3472,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: 3475
      start: 3459
    functionDepth: 5
    functionLinenumber: 3459
    functionLinenumberEnd: 3475
    functionName: smp_fetch_sc_tracked
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - stkctr_entry
    - stktable_release
    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:3483,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3486,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3486,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
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3493,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3493,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3495,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3497,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3497,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3500,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3500,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: 3503
      start: 3477
    functionDepth: 2
    functionLinenumber: 3477
    functionLinenumberEnd: 3503
    functionName: smp_fetch_get_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_cast
    - stktable_data_ptr_idx
    - 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:3520,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3521,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3523,1
    - Dst: smp_fetch_get_gpt
      Src: /src/haproxy/src/stick_table.c:3528,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: 3529
      start: 3511
    functionDepth: 7
    functionLinenumber: 3511
    functionLinenumberEnd: 3529
    functionName: smp_fetch_sc_get_gpt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_get_gpt
    - smp_fetch_src_stkctr
    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:3537,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3540,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3540,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3542,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3542,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3546,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3546,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3550,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3550,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3552,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3554,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3554,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3557,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3531
    functionDepth: 2
    functionLinenumber: 3531
    functionLinenumberEnd: 3560
    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
    - stktable_data_cast
    - stktable_data_ptr_idx
    - 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:3573,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3574,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3576,1
    - Dst: smp_fetch_get_gpt0
      Src: /src/haproxy/src/stick_table.c:3581,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: 3582
      start: 3567
    functionDepth: 7
    functionLinenumber: 3567
    functionLinenumberEnd: 3582
    functionName: smp_fetch_sc_get_gpt0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_get_gpt0
    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:3590,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3593,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3593,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3596,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3596,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3600,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3600,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3602,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3604,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3604,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3607,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3607,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: 3610
      start: 3584
    functionDepth: 2
    functionLinenumber: 3584
    functionLinenumberEnd: 3610
    functionName: smp_fetch_get_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_cast
    - stktable_data_ptr_idx
    - 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:3627,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3628,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3630,1
    - Dst: smp_fetch_get_gpc
      Src: /src/haproxy/src/stick_table.c:3635,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: 3636
      start: 3618
    functionDepth: 7
    functionLinenumber: 3618
    functionLinenumberEnd: 3636
    functionName: smp_fetch_sc_get_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_get_gpc
    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:3644,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3647,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3647,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3650,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3650,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3655,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3655,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3659,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3659,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3661,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3663,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3663,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3666,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3666,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3669
      start: 3638
    functionDepth: 2
    functionLinenumber: 3638
    functionLinenumberEnd: 3669
    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
    - stktable_data_cast
    - stktable_data_ptr_idx
    - 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:3682,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3683,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3685,1
    - Dst: smp_fetch_get_gpc0
      Src: /src/haproxy/src/stick_table.c:3690,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: 3691
      start: 3676
    functionDepth: 7
    functionLinenumber: 3676
    functionLinenumberEnd: 3691
    functionName: smp_fetch_sc_get_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_get_gpc0
    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:3699,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3702,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3702,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3705,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3705,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3710,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3710,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3714,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3714,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3716,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3718,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3718,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3721,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3724
      start: 3693
    functionDepth: 2
    functionLinenumber: 3693
    functionLinenumberEnd: 3724
    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
    - stktable_data_cast
    - stktable_data_ptr_idx
    - 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:3737,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3738,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3740,1
    - Dst: smp_fetch_get_gpc1
      Src: /src/haproxy/src/stick_table.c:3745,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: 3746
      start: 3731
    functionDepth: 7
    functionLinenumber: 3731
    functionLinenumberEnd: 3746
    functionName: smp_fetch_sc_get_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_get_gpc1
    - smp_fetch_src_stkctr
    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:3753,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3756,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3756,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3759,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3759,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3763,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3763,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3765,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3765,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3768,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3768,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3771,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3771,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: 3774
      start: 3748
    functionDepth: 2
    functionLinenumber: 3748
    functionLinenumberEnd: 3774
    functionName: smp_fetch_gpc_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_cast
    - stktable_data_ptr_idx
    - 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:3791,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3792,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3794,1
    - Dst: smp_fetch_gpc_rate
      Src: /src/haproxy/src/stick_table.c:3799,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: 3800
      start: 3782
    functionDepth: 7
    functionLinenumber: 3782
    functionLinenumberEnd: 3800
    functionName: smp_fetch_sc_gpc_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_gpc_rate
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:3809,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3812,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3812,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3818,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3818,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3825,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3825,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3829,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3829,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3831,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3831,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3833,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3833,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3836,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3836,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3802
    functionDepth: 2
    functionLinenumber: 3802
    functionLinenumberEnd: 3839
    functionName: smp_fetch_gpc0_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_cast
    - stktable_data_ptr_idx
    - 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:3852,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3853,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3855,1
    - Dst: smp_fetch_gpc0_rate
      Src: /src/haproxy/src/stick_table.c:3860,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: 3861
      start: 3846
    functionDepth: 7
    functionLinenumber: 3846
    functionLinenumberEnd: 3861
    functionName: smp_fetch_sc_gpc0_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_gpc0_rate
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:3870,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:3873,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3873,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3879,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3879,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3886,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3886,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:3890,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3890,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3892,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3892,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:3894,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3894,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3897,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3897,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3900
      start: 3863
    functionDepth: 2
    functionLinenumber: 3863
    functionLinenumberEnd: 3900
    functionName: smp_fetch_gpc1_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_cast
    - stktable_data_ptr_idx
    - 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:3913,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3914,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3916,1
    - Dst: smp_fetch_gpc1_rate
      Src: /src/haproxy/src/stick_table.c:3921,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: 3922
      start: 3907
    functionDepth: 7
    functionLinenumber: 3907
    functionLinenumberEnd: 3922
    functionName: smp_fetch_sc_gpc1_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_gpc1_rate
    - smp_fetch_src_stkctr
    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:3930,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3937,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3937,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:3938,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3938,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:3940,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3940,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:3943,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3943,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3945,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:3949,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:3951,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3951,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:3954,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3954,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:3957,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:3957,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: 3960
      start: 3924
    functionDepth: 3
    functionLinenumber: 3924
    functionLinenumberEnd: 3960
    functionName: smp_fetch_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_release
    - stktable_data_cast
    - update_freq_ctr_period
    - stktable_data_ptr_idx
    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:3976,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:3977,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:3979,1
    - Dst: smp_fetch_inc_gpc
      Src: /src/haproxy/src/stick_table.c:3984,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: 3985
      start: 3967
    functionDepth: 7
    functionLinenumber: 3967
    functionLinenumberEnd: 3985
    functionName: smp_fetch_sc_inc_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_inc_gpc
    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:3996,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4003,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4003,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4009,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4009,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4014,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4014,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4017,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4017,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4021,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4021,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4024,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4024,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4026,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4030,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4032,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4032,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4035,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4035,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4038,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4038,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4041
      start: 3988
    functionDepth: 3
    functionLinenumber: 3988
    functionLinenumberEnd: 4041
    functionName: smp_fetch_inc_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_release
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    - stktable_data_ptr_idx
    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:4053,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4054,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4056,1
    - Dst: smp_fetch_inc_gpc0
      Src: /src/haproxy/src/stick_table.c:4061,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: 4062
      start: 4047
    functionDepth: 7
    functionLinenumber: 4047
    functionLinenumberEnd: 4062
    functionName: smp_fetch_sc_inc_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_inc_gpc0
    - smp_fetch_src_stkctr
    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:4072,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4079,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4079,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4085,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4085,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4090,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4090,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4093,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4093,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4097,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4097,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4100,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4100,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4102,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4106,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4108,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4108,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4111,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4111,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4114,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4114,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4117
      start: 4064
    functionDepth: 3
    functionLinenumber: 4064
    functionLinenumberEnd: 4117
    functionName: smp_fetch_inc_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_release
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    - stktable_data_ptr_idx
    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:4129,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4130,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4132,1
    - Dst: smp_fetch_inc_gpc1
      Src: /src/haproxy/src/stick_table.c:4137,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: 4138
      start: 4123
    functionDepth: 7
    functionLinenumber: 4123
    functionLinenumberEnd: 4138
    functionName: smp_fetch_sc_inc_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_inc_gpc1
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:4146,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4149,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4149,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4152,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4152,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4156,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4156,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4158,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4161,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4161,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4164,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4164,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: 4167
      start: 4140
    functionDepth: 3
    functionLinenumber: 4140
    functionLinenumberEnd: 4167
    functionName: smp_fetch_clr_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_release
    - stktable_data_cast
    - stktable_data_ptr_idx
    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: 4159
      start: 4159
    functionDepth: 0
    functionLinenumber: 4159
    functionLinenumberEnd: 4159
    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:4183,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4184,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4186,1
    - Dst: smp_fetch_clr_gpc
      Src: /src/haproxy/src/stick_table.c:4191,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: 4192
      start: 4174
    functionDepth: 7
    functionLinenumber: 4174
    functionLinenumberEnd: 4192
    functionName: smp_fetch_sc_clr_gpc
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_clr_gpc
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:4200,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4203,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4203,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4206,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4206,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4211,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4211,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4215,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4215,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4217,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4220,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4220,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4223,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4223,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4226
      start: 4194
    functionDepth: 3
    functionLinenumber: 4194
    functionLinenumberEnd: 4226
    functionName: smp_fetch_clr_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_release
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_data_ptr_idx
    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: 4218
      start: 4218
    functionDepth: 0
    functionLinenumber: 4218
    functionLinenumberEnd: 4218
    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:4238,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4239,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4241,1
    - Dst: smp_fetch_clr_gpc0
      Src: /src/haproxy/src/stick_table.c:4246,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: 4247
      start: 4232
    functionDepth: 7
    functionLinenumber: 4232
    functionLinenumberEnd: 4247
    functionName: smp_fetch_sc_clr_gpc0
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_clr_gpc0
    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:4255,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4258,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4258,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:4261,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4261,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4266,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4266,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4270,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4270,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4272,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4275,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4275,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4278,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4278,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4281
      start: 4249
    functionDepth: 3
    functionLinenumber: 4249
    functionLinenumberEnd: 4281
    functionName: smp_fetch_clr_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_release
    - stktable_data_ptr
    - stktable_data_cast
    - stktable_data_ptr_idx
    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: 4273
      start: 4273
    functionDepth: 0
    functionLinenumber: 4273
    functionLinenumberEnd: 4273
    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:4293,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4294,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4296,1
    - Dst: smp_fetch_clr_gpc1
      Src: /src/haproxy/src/stick_table.c:4301,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: 4302
      start: 4287
    functionDepth: 7
    functionLinenumber: 4287
    functionLinenumberEnd: 4302
    functionName: smp_fetch_sc_clr_gpc1
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_clr_gpc1
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:4309,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4312,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4312,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4315,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4315,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4319,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4319,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4321,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4323,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4323,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4326,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4326,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4331
      start: 4304
    functionDepth: 2
    functionLinenumber: 4304
    functionLinenumberEnd: 4331
    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:4343,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4344,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4346,1
    - Dst: smp_fetch_conn_cnt
      Src: /src/haproxy/src/stick_table.c:4351,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: 4352
      start: 4337
    functionDepth: 7
    functionLinenumber: 4337
    functionLinenumberEnd: 4352
    functionName: smp_fetch_sc_conn_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_conn_cnt
    - smp_fetch_src_stkctr
    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:4359,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4362,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4362,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4365,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4365,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4369,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4369,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4371,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4371,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4374,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4374,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4377,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4380
      start: 4354
    functionDepth: 2
    functionLinenumber: 4354
    functionLinenumberEnd: 4380
    functionName: smp_fetch_conn_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - 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:4392,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4393,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4395,1
    - Dst: smp_fetch_conn_rate
      Src: /src/haproxy/src/stick_table.c:4400,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: 4401
      start: 4386
    functionDepth: 7
    functionLinenumber: 4386
    functionLinenumberEnd: 4401
    functionName: smp_fetch_sc_conn_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_conn_rate
    - smp_fetch_src_stkctr
    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:4407,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4410,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4410,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:4417,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4417,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4419,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:4421,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4421,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:4425,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4425,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - stkctr
    - smp
    argTypes:
    - struct stkctr*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4429
      start: 4403
    functionDepth: 3
    functionLinenumber: 4403
    functionLinenumberEnd: 4429
    functionName: smp_fetch_updt_conn_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - stktable_data_ptr
    - stktable_data_cast
    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:4441,1
    - Dst: smp_fetch_updt_conn_cnt
      Src: /src/haproxy/src/stick_table.c:4446,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: 4447
      start: 4435
    functionDepth: 7
    functionLinenumber: 4435
    functionLinenumberEnd: 4447
    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:4454,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4457,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4457,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4460,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4460,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4464,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4464,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4466,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4468,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4468,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4471,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4474
      start: 4449
    functionDepth: 2
    functionLinenumber: 4449
    functionLinenumberEnd: 4474
    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:4486,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4487,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4489,1
    - Dst: smp_fetch_conn_cur
      Src: /src/haproxy/src/stick_table.c:4494,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: 4495
      start: 4480
    functionDepth: 7
    functionLinenumber: 4480
    functionLinenumberEnd: 4495
    functionName: smp_fetch_sc_conn_cur
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_conn_cur
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:4502,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4505,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4505,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4508,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4508,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4512,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4512,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4514,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4516,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4516,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4519,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4522
      start: 4497
    functionDepth: 2
    functionLinenumber: 4497
    functionLinenumberEnd: 4522
    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:4534,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4535,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4537,1
    - Dst: smp_fetch_glitch_cnt
      Src: /src/haproxy/src/stick_table.c:4542,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: 4543
      start: 4528
    functionDepth: 7
    functionLinenumber: 4528
    functionLinenumberEnd: 4543
    functionName: smp_fetch_sc_glitch_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_glitch_cnt
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:4550,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4553,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4553,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4556,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4556,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4560,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4560,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4562,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4562,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4565,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4565,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4568,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4571
      start: 4545
    functionDepth: 2
    functionLinenumber: 4545
    functionLinenumberEnd: 4571
    functionName: smp_fetch_glitch_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - 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:4583,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4584,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4586,1
    - Dst: smp_fetch_glitch_rate
      Src: /src/haproxy/src/stick_table.c:4591,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: 4592
      start: 4577
    functionDepth: 7
    functionLinenumber: 4577
    functionLinenumberEnd: 4592
    functionName: smp_fetch_sc_glitch_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_glitch_rate
    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:4599,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4602,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4602,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4605,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4605,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4609,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4609,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4611,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4613,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4613,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4616,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4616,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4619
      start: 4594
    functionDepth: 2
    functionLinenumber: 4594
    functionLinenumberEnd: 4619
    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:4631,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4632,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4634,1
    - Dst: smp_fetch_sess_cnt
      Src: /src/haproxy/src/stick_table.c:4639,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: 4640
      start: 4625
    functionDepth: 7
    functionLinenumber: 4625
    functionLinenumberEnd: 4640
    functionName: smp_fetch_sc_sess_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sess_cnt
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:4647,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4650,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4650,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4653,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4653,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4657,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4657,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4659,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4659,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4662,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4662,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4665,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4665,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4668
      start: 4642
    functionDepth: 2
    functionLinenumber: 4642
    functionLinenumberEnd: 4668
    functionName: smp_fetch_sess_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - 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:4679,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4680,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4682,1
    - Dst: smp_fetch_sess_rate
      Src: /src/haproxy/src/stick_table.c:4687,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: 4688
      start: 4673
    functionDepth: 7
    functionLinenumber: 4673
    functionLinenumberEnd: 4688
    functionName: smp_fetch_sc_sess_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_sess_rate
    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:4695,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4698,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4698,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4701,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4701,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4705,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4705,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4707,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4709,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4709,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4712,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4712,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4715
      start: 4690
    functionDepth: 2
    functionLinenumber: 4690
    functionLinenumberEnd: 4715
    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:4727,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4728,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4730,1
    - Dst: smp_fetch_http_req_cnt
      Src: /src/haproxy/src/stick_table.c:4735,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: 4736
      start: 4721
    functionDepth: 7
    functionLinenumber: 4721
    functionLinenumberEnd: 4736
    functionName: smp_fetch_sc_http_req_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_http_req_cnt
    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:4743,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4746,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4746,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4749,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4749,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4753,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4753,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4755,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4755,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4758,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4758,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4761,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4761,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4764
      start: 4738
    functionDepth: 2
    functionLinenumber: 4738
    functionLinenumberEnd: 4764
    functionName: smp_fetch_http_req_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - 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:4776,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4777,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4779,1
    - Dst: smp_fetch_http_req_rate
      Src: /src/haproxy/src/stick_table.c:4784,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: 4785
      start: 4770
    functionDepth: 7
    functionLinenumber: 4770
    functionLinenumberEnd: 4785
    functionName: smp_fetch_sc_http_req_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_http_req_rate
    - smp_fetch_src_stkctr
    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:4792,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4795,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4795,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4798,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4798,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4802,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4802,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4804,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4806,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4806,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4809,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4809,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4812
      start: 4787
    functionDepth: 2
    functionLinenumber: 4787
    functionLinenumberEnd: 4812
    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:4824,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4825,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4827,1
    - Dst: smp_fetch_http_err_cnt
      Src: /src/haproxy/src/stick_table.c:4832,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: 4833
      start: 4818
    functionDepth: 7
    functionLinenumber: 4818
    functionLinenumberEnd: 4833
    functionName: smp_fetch_sc_http_err_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_http_err_cnt
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:4840,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4843,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4843,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4846,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4846,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4850,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4850,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4852,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4852,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4855,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4855,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4858,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4858,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4861
      start: 4835
    functionDepth: 2
    functionLinenumber: 4835
    functionLinenumberEnd: 4861
    functionName: smp_fetch_http_err_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - 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:4873,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4874,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4876,1
    - Dst: smp_fetch_http_err_rate
      Src: /src/haproxy/src/stick_table.c:4881,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: 4882
      start: 4867
    functionDepth: 7
    functionLinenumber: 4867
    functionLinenumberEnd: 4882
    functionName: smp_fetch_sc_http_err_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_http_err_rate
    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:4889,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4892,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4892,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4895,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4895,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4899,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4899,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4901,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4903,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4903,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4906,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4906,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4909
      start: 4884
    functionDepth: 2
    functionLinenumber: 4884
    functionLinenumberEnd: 4909
    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:4921,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4922,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4924,1
    - Dst: smp_fetch_http_fail_cnt
      Src: /src/haproxy/src/stick_table.c:4929,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: 4930
      start: 4915
    functionDepth: 7
    functionLinenumber: 4915
    functionLinenumberEnd: 4930
    functionName: smp_fetch_sc_http_fail_cnt
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_http_fail_cnt
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:4937,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4940,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4940,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4943,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4943,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4947,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4947,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:4949,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4949,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:4952,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4952,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4955,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4955,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4959
      start: 4932
    functionDepth: 2
    functionLinenumber: 4932
    functionLinenumberEnd: 4959
    functionName: smp_fetch_http_fail_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - 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:4971,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:4972,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:4974,1
    - Dst: smp_fetch_http_fail_rate
      Src: /src/haproxy/src/stick_table.c:4979,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: 4980
      start: 4965
    functionDepth: 7
    functionLinenumber: 4965
    functionLinenumberEnd: 4980
    functionName: smp_fetch_sc_http_fail_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_http_fail_rate
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:4987,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:4990,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4990,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:4993,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4993,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:4997,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:4997,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:4999,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5001,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5001,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5004,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5004,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5007
      start: 4982
    functionDepth: 2
    functionLinenumber: 4982
    functionLinenumberEnd: 5007
    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:5019,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:5020,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5022,1
    - Dst: smp_fetch_kbytes_in
      Src: /src/haproxy/src/stick_table.c:5027,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: 5028
      start: 5013
    functionDepth: 7
    functionLinenumber: 5013
    functionLinenumberEnd: 5028
    functionName: smp_fetch_sc_kbytes_in
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_kbytes_in
    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:5035,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5038,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5038,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5041,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5041,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5045,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5045,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5047,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5047,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5050,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5050,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5053,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5053,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5056
      start: 5030
    functionDepth: 2
    functionLinenumber: 5030
    functionLinenumberEnd: 5056
    functionName: smp_fetch_bytes_in_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - 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:5068,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:5069,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5071,1
    - Dst: smp_fetch_bytes_in_rate
      Src: /src/haproxy/src/stick_table.c:5076,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: 5077
      start: 5062
    functionDepth: 7
    functionLinenumber: 5062
    functionLinenumberEnd: 5077
    functionName: smp_fetch_sc_bytes_in_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    - smp_fetch_bytes_in_rate
    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:5084,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5087,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5087,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5090,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5090,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5094,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5094,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5096,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5098,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5098,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5101,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5104
      start: 5079
    functionDepth: 2
    functionLinenumber: 5079
    functionLinenumberEnd: 5104
    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:5116,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:5117,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5119,1
    - Dst: smp_fetch_kbytes_out
      Src: /src/haproxy/src/stick_table.c:5124,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: 5125
      start: 5110
    functionDepth: 7
    functionLinenumber: 5110
    functionLinenumberEnd: 5125
    functionName: smp_fetch_sc_kbytes_out
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_kbytes_out
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:5137,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5141,1
    - Dst: stkey_to_smp
      Src: /src/haproxy/src/stick_table.c:5143,1
    - Dst: stksess_getkey
      Src: /src/haproxy/src/stick_table.c:5143,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5146,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: 5151
      start: 5130
    functionDepth: 5
    functionLinenumber: 5130
    functionLinenumberEnd: 5151
    functionName: smp_fetch_sc_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - smp_fetch_sc_stkctr
    - stktable_release
    - stksess_getkey
    - stkey_to_smp
    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:5158,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5161,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5161,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5164,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5164,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5168,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5168,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5170,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5170,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5173,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5173,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5176,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - stkctr
    - smp
    - decrefcnt
    argTypes:
    - struct stkctr*
    - struct sample*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5179
      start: 5153
    functionDepth: 2
    functionLinenumber: 5153
    functionLinenumberEnd: 5179
    functionName: smp_fetch_bytes_out_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_release
    - read_freq_ctr_period
    - stktable_data_ptr
    - HA_RWLOCK_RDUNLOCK
    - 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:5191,1
    - Dst: smp_fetch_src_stkctr
      Src: /src/haproxy/src/stick_table.c:5192,1
    - Dst: smp_fetch_sc_stkctr
      Src: /src/haproxy/src/stick_table.c:5194,1
    - Dst: smp_fetch_bytes_out_rate
      Src: /src/haproxy/src/stick_table.c:5199,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: 5200
      start: 5185
    functionDepth: 7
    functionLinenumber: 5185
    functionLinenumberEnd: 5200
    functionName: smp_fetch_sc_bytes_out_rate
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_bytes_out_rate
    - smp_fetch_sc_stkctr
    - strncmp
    - smp_fetch_src_stkctr
    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:5211,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5218,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:5218,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5218,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5219,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5219,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5222,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:5222,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/stick_table.c:5222,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: 5226
      start: 5205
    functionDepth: 5
    functionLinenumber: 5205
    functionLinenumberEnd: 5226
    functionName: smp_fetch_sc_trackers
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - smp_fetch_sc_stkctr
    - stkctr_entry
    - stktable_release
    - HA_ATOMIC_LOAD
    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:5250,1
    - Dst: appctx_sc
      Src: /src/haproxy/src/stick_table.c:5250,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5252,1
    - Dst: strm_li
      Src: /src/haproxy/src/stick_table.c:5257,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5258,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stick_table.c:5260,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: 5264
      start: 5246
    functionDepth: 1
    functionLinenumber: 5246
    functionLinenumberEnd: 5264
    functionName: table_dump_head_to_buffer
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - __sc_strm
    - chunk_appendf
    - strm_li
    - appctx_sc
    - 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:5276,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/stick_table.c:5280,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5281,1
    - Dst: inet_ntop
      Src: /src/haproxy/src/stick_table.c:5285,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5286,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5289,1
    - Dst: read_u32
      Src: /src/haproxy/src/stick_table.c:5289,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5292,1
    - Dst: dump_text
      Src: /src/haproxy/src/stick_table.c:5293,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5296,1
    - Dst: dump_binary
      Src: /src/haproxy/src/stick_table.c:5297,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5300,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:5300,1
    - Dst: tick_remain
      Src: /src/haproxy/src/stick_table.c:5300,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:5329,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5332,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5334,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5337,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5337,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5340,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5340,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5343,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5343,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5346,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5346,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5350,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:5353,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5358,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5360,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5362,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5365,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5365,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5368,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5368,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5371,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5371,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5374,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5374,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5378,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5382,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5383,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stick_table.c:5388,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stick_table.c:5390,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: 5394
      start: 5270
    functionDepth: 1
    functionLinenumber: 5270
    functionLinenumberEnd: 5394
    functionName: table_dump_entry_to_buffer
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - inet_ntop
    - chunk_appendf
    - dump_text
    - dump_binary
    - HA_ATOMIC_LOAD
    - tick_remain
    - read_freq_ctr_period
    - stktable_data_ptr
    - stktable_data_cast
    - applet_putchk
    - read_u32
    - stktable_data_ptr_idx
    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:5437,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5439,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5441,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5443,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/stick_table.c:5448,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stick_table.c:5456,1
    - Dst: table_dump_head_to_buffer
      Src: /src/haproxy/src/stick_table.c:5457,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5460,1
    - Dst: table_dump_entry_to_buffer
      Src: /src/haproxy/src/stick_table.c:5461,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5462,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5465,1
    - Dst: stksess_kill
      Src: /src/haproxy/src/stick_table.c:5474,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5476,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:5481,1
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:5485,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5486,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5487,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5488,1
    - Dst: stktable_get_data_type_idx
      Src: /src/haproxy/src/stick_table.c:5492,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5494,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5495,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5496,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5501,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5502,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5503,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/stick_table.c:5507,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:5507,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5508,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5509,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5510,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:5515,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5517,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5518,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5519,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5524,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5528,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5531,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5534,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5542,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5553,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stick_table.c:5554,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5558,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 105
    argCount: 3
    argNames:
    - appctx
    - tsptr
    - args
    argTypes:
    - struct appctx*
    - struct stksess**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5562
      start: 5417
    functionDepth: 4
    functionLinenumber: 5417
    functionLinenumberEnd: 5562
    functionName: table_process_entry
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stksess_kill
    - stktable_data_ptr_idx
    - __stktable_data_ptr
    - stktable_touch_local
    - table_dump_head_to_buffer
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - chunk_reset
    - cli_err
    - strncmp
    - HA_RWLOCK_RDUNLOCK
    - stktable_get_data_type_idx
    - strl2llrc
    - strlen
    - stktable_data_cast
    - table_dump_entry_to_buffer
    - cli_has_level
    - 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:5576,1
    - Dst: memset
      Src: /src/haproxy/src/stick_table.c:5578,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:5581,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stick_table.c:5589,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5591,1
    - Dst: smp_to_stkey
      Src: /src/haproxy/src/stick_table.c:5601,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5602,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/stick_table.c:5605,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5607,1
    - Dst: stktable_lookup_key
      Src: /src/haproxy/src/stick_table.c:5609,1
    - Dst: table_process_entry
      Src: /src/haproxy/src/stick_table.c:5611,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5613,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - appctx
    - args
    argTypes:
    - struct appctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5615
      start: 5567
    functionDepth: 5
    functionLinenumber: 5567
    functionLinenumberEnd: 5615
    functionName: table_process_entry_per_key
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - memset
    - stktable_get_entry
    - cli_err
    - BUG_ON
    - stktable_release
    - table_process_entry
    - strlen
    - smp_to_stkey
    - stktable_lookup_key
    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:5630,1
    - Dst: strtoul
      Src: /src/haproxy/src/stick_table.c:5633,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5635,1
    - Dst: stktable_lookup_ptr
      Src: /src/haproxy/src/stick_table.c:5637,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5639,1
    - Dst: table_process_entry
      Src: /src/haproxy/src/stick_table.c:5641,1
    - Dst: stktable_release
      Src: /src/haproxy/src/stick_table.c:5643,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - appctx
    - args
    argTypes:
    - struct appctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5645
      start: 5620
    functionDepth: 5
    functionLinenumber: 5620
    functionLinenumberEnd: 5645
    functionName: table_process_entry_per_ptr
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stktable_lookup_ptr
    - cli_err
    - stktable_release
    - table_process_entry
    - strtoul
    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:5657,1
    - Dst: stktable_get_data_type_idx
      Src: /src/haproxy/src/stick_table.c:5663,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5665,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5665,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5668,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5668,1
    - Dst: get_std_op
      Src: /src/haproxy/src/stick_table.c:5670,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5672,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5672,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/stick_table.c:5674,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:5674,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5675,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5675,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/stick_table.c:5679,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5679,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 21
    argCount: 2
    argNames:
    - appctx
    - args
    argTypes:
    - struct appctx*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5684
      start: 5650
    functionDepth: 5
    functionLinenumber: 5650
    functionLinenumberEnd: 5684
    functionName: table_prepare_data_request
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - get_std_op
    - cli_err
    - cli_dynerr
    - stktable_get_data_type_idx
    - strl2llrc
    - strlen
    - memprintf
    linkageType: ''
    returnType: int
    signature: int table_prepare_data_request(struct appctx *appctx, char **args)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/stick_table.c:5689,1
    - Dst: stktable_find_by_name
      Src: /src/haproxy/src/stick_table.c:5699,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5701,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:5710,1
    - Dst: table_process_entry_per_key
      Src: /src/haproxy/src/stick_table.c:5711,1
    - Dst: strcmp
      Src: /src/haproxy/src/stick_table.c:5712,1
    - Dst: table_process_entry_per_ptr
      Src: /src/haproxy/src/stick_table.c:5713,1
    - Dst: strncmp
      Src: /src/haproxy/src/stick_table.c:5714,1
    - Dst: table_prepare_data_request
      Src: /src/haproxy/src/stick_table.c:5715,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5724,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5726,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5728,1
    - Dst: cli_err
      Src: /src/haproxy/src/stick_table.c:5730,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 39
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5732
      start: 5687
    functionDepth: 6
    functionLinenumber: 5687
    functionLinenumberEnd: 5732
    functionName: cli_parse_table_req
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - table_prepare_data_request
    - strcmp
    - table_process_entry_per_ptr
    - stktable_find_by_name
    - strncmp
    - cli_err
    - table_process_entry_per_key
    - applet_reserve_svcctx
    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:5741,1
    - Dst: __sc_strm
      Src: /src/haproxy/src/stick_table.c:5742,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stick_table.c:5759,1
    - Dst: table_dump_head_to_buffer
      Src: /src/haproxy/src/stick_table.c:5772,1
    - Dst: strm_li
      Src: /src/haproxy/src/stick_table.c:5776,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:5778,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/stick_table.c:5779,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:5781,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:5782,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5784,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5787,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stick_table.c:5804,1
    - Dst: stktable_data_ptr_idx
      Src: /src/haproxy/src/stick_table.c:5819,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/stick_table.c:5829,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stick_table.c:5835,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5841,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5844,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5847,1
    - Dst: read_freq_ctr_period
      Src: /src/haproxy/src/stick_table.c:5850,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stick_table.c:5850,1
    - Dst: table_dump_entry_to_buffer
      Src: /src/haproxy/src/stick_table.c:5874,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5875,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stick_table.c:5879,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stick_table.c:5881,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/stick_table.c:5882,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/stick_table.c:5884,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stick_table.c:5887,1
    - Dst: __stksess_kill_if_expired
      Src: /src/haproxy/src/stick_table.c:5889,1
    - Dst: __stksess_kill
      Src: /src/haproxy/src/stick_table.c:5891,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/stick_table.c:5892,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5893,1
    - Dst: __stksess_kill_if_expired
      Src: /src/haproxy/src/stick_table.c:5899,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stick_table.c:5900,1
    - Dst: __stksess_kill
      Src: /src/haproxy/src/stick_table.c:5901,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stick_table.c:5903,1
    CyclomaticComplexity: 58
    EdgeCount: 58
    ICount: 109
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5918
      start: 5738
    functionDepth: 3
    functionLinenumber: 5738
    functionLinenumberEnd: 5918
    functionName: cli_io_handler_table
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - table_dump_head_to_buffer
    - __stksess_kill_if_expired
    - ebmb_entry
    - stktable_data_ptr_idx
    - HA_RWLOCK_WRLOCK
    - ebmb_first
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - appctx_sc
    - table_dump_entry_to_buffer
    - __stksess_kill
    - __sc_strm
    - strm_li
    - BUG_ON
    - HA_ATOMIC_LOAD
    - read_freq_ctr_period
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_cast
    - HA_RWLOCK_RDLOCK
    - ebmb_next
    - chunk_reset
    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:5925,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5927
      start: 5920
    functionDepth: 1
    functionLinenumber: 5920
    functionLinenumberEnd: 5927
    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:5936,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5938,1
    - Dst: memprintf
      Src: /src/haproxy/src/stick_table.c:5943,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: 5949
      start: 5929
    functionDepth: 5
    functionLinenumber: 5929
    functionLinenumberEnd: 5949
    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:5960,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:5962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5966
      start: 5955
    functionDepth: 1
    functionLinenumber: 5955
    functionLinenumberEnd: 5966
    functionName: stkt_create_stk_ctr_pool
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - create_pool
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int stkt_create_stk_ctr_pool(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find_sample_fetch
      Src: /src/haproxy/src/stick_table.c:5973,1
    - Dst: strlen
      Src: /src/haproxy/src/stick_table.c:5973,1
    - Dst: stkt_create_stk_ctr_pool
      Src: /src/haproxy/src/stick_table.c:5976,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/stick_table.c:5979,1
    - Dst: task_new_on
      Src: /src/haproxy/src/stick_table.c:5981,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stick_table.c:5983,1
    - Dst: exit
      Src: /src/haproxy/src/stick_table.c:5984,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/stick_table.c:5988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5990
      start: 5968
    functionDepth: 2
    functionLinenumber: 5968
    functionLinenumberEnd: 5990
    functionName: stkt_late_init
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - stkt_create_stk_ctr_pool
    - exit
    - task_new_on
    - strlen
    - HA_SPIN_INIT
    - MT_LIST_INIT
    - ha_alert
    - find_sample_fetch
    linkageType: ''
    returnType: void
    signature: void stkt_late_init(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6310,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6311,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6314,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - id
    - metric
    - desc
    argTypes:
    - unsigned int
    - struct promex_metric*
    - struct ist*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6321
      start: 6306
    functionDepth: 1
    functionLinenumber: 6306
    functionLinenumberEnd: 6321
    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: 6326
      start: 6323
    functionDepth: 0
    functionLinenumber: 6323
    functionLinenumberEnd: 6326
    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: 6333
      start: 6328
    functionDepth: 0
    functionLinenumber: 6328
    functionLinenumberEnd: 6333
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6342,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6343,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6344,1
    - Dst: ist
      Src: /src/haproxy/src/stick_table.c:6345,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stick_table.c:6349,1
    - Dst: mkf_u32
      Src: /src/haproxy/src/stick_table.c:6352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - unused
    - metric_ctx
    - id
    - labels
    - field
    argTypes:
    - void*
    - void*
    - unsigned int
    - struct promex_label*
    - struct field*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6358
      start: 6335
    functionDepth: 1
    functionLinenumber: 6335
    functionLinenumberEnd: 6358
    functionName: stk_promex_fill_ts
    functionSourceFile: /src/haproxy/src/stick_table.c
    functionUses: 0
    functionsReached:
    - mkf_u32
    - ist
    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:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    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: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    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:149,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/pool.c:152,1
    - Dst: malloc_trim
      Src: /src/haproxy/src/pool.c:154,1
    - Dst: thread_release
      Src: /src/haproxy/src/pool.c:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 158
    functionName: trim_all_pools
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - thread_isolated
    - thread_release
    - malloc_trim
    - thread_isolate
    linkageType: ''
    returnType: void
    signature: void trim_all_pools(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sym_curr_addr
      Src: /src/haproxy/src/pool.c:183,1
    - Dst: mallinfo2
      Src: /src/haproxy/src/pool.c:197,1
    - Dst: mallinfo
      Src: /src/haproxy/src/pool.c:199,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/pool.c:201,1
    - Dst: malloc
      Src: /src/haproxy/src/pool.c:201,1
    - Dst: mallinfo2
      Src: /src/haproxy/src/pool.c:203,1
    - Dst: mallinfo
      Src: /src/haproxy/src/pool.c:205,1
    - Dst: free
      Src: /src/haproxy/src/pool.c:207,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/pool.c:207,1
    - Dst: memcmp
      Src: /src/haproxy/src/pool.c:209,1
    - Dst: malloc_default_zone
      Src: /src/haproxy/src/pool.c:211,1
    - Dst: get_sym_next_addr
      Src: /src/haproxy/src/pool.c:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 217
    functionName: detect_allocator
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - get_sym_curr_addr
    - mallinfo2
    - malloc_default_zone
    - get_sym_next_addr
    - memcmp
    - mallinfo
    - free
    - DISGUISE
    - malloc
    linkageType: ''
    returnType: void
    signature: void detect_allocator(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/pool.c:229,1
    - Dst: my_mallctl
      Src: /src/haproxy/src/pool.c:240,1
    - Dst: snprintf
      Src: /src/haproxy/src/pool.c:243,1
    - Dst: my_mallctl
      Src: /src/haproxy/src/pool.c:244,1
    - Dst: _malloc_trim
      Src: /src/haproxy/src/pool.c:255,1
    - Dst: malloc_get_all_zones
      Src: /src/haproxy/src/pool.c:263,1
    - Dst: malloc_zone_pressure_relief
      Src: /src/haproxy/src/pool.c:269,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:276,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - pad
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 280
    functionName: malloc_trim
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - _malloc_trim
    - snprintf
    - malloc_get_all_zones
    - my_mallctl
    - malloc_zone_pressure_relief
    linkageType: ''
    returnType: int
    signature: int malloc_trim(size_t pad)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/pool.c:287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 293
    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:312,1
    - Dst: create_pool_from_reg
      Src: /src/haproxy/src/pool.c:323,1
    - Dst: free
      Src: /src/haproxy/src/pool.c:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 6
    argNames:
    - name
    - size
    - align
    - flags
    - file
    - line
    argTypes:
    - char*
    - unsigned int
    - unsigned int
    - unsigned int
    - char*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 305
    functionDepth: 3
    functionLinenumber: 305
    functionLinenumberEnd: 327
    functionName: create_pool_with_loc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - free
    - calloc
    - create_pool_from_reg
    linkageType: ''
    returnType: struct pool_head
    signature: "struct pool_head *create_pool_with_loc(const char *name, unsigned
      int size,\n\t\t\t\t       unsigned int align, unsigned int flags,\n\t\t\t\t
      \      const char *file, unsigned int line)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/pool.c:367,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:410,1
    - Dst: pool_allocated
      Src: /src/haproxy/src/pool.c:412,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:426,1
    - Dst: abs
      Src: /src/haproxy/src/pool.c:428,1
    - Dst: calloc
      Src: /src/haproxy/src/pool.c:456,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/pool.c:465,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pool.c:470,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pool.c:471,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/pool.c:476,1
    - Dst: DPRINTF
      Src: /src/haproxy/src/pool.c:490,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/pool.c:493,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 82
    argCount: 2
    argNames:
    - name
    - reg
    argTypes:
    - char*
    - struct pool_registration*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 499
    functionName: create_pool_from_reg
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - strcmp
    - abs
    - DPRINTF
    - LIST_APPEND
    - strlcpy2
    - LIST_INIT
    - ha_alert
    - pool_allocated
    - calloc
    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:507,1
    - Dst: pool_alloc_area_uaf
      Src: /src/haproxy/src/pool.c:511,1
    - Dst: pool_alloc_area
      Src: /src/haproxy/src/pool.c:513,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/pool.c:516,1
    - Dst: pool_tbucket
      Src: /src/haproxy/src/pool.c:516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 505
    functionDepth: 1
    functionLinenumber: 505
    functionLinenumberEnd: 521
    functionName: pool_get_from_os_noinc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - pool_allocated
    - pool_alloc_area
    - _HA_ATOMIC_INC
    - pool_tbucket
    - pool_alloc_area_uaf
    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:530,1
    - Dst: pool_free_area
      Src: /src/haproxy/src/pool.c:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - pool
    - ptr
    argTypes:
    - struct pool_head*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 533
    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:545,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:549,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/pool.c:551,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/pool.c:552,1
    - Dst: swrate_add_scaled_opportunistic
      Src: /src/haproxy/src/pool.c:553,1
    - Dst: POOL_DEBUG_SET_MARK
      Src: /src/haproxy/src/pool.c:556,1
    - Dst: POOL_DEBUG_TRACE_CALLER
      Src: /src/haproxy/src/pool.c:557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - caller
    argTypes:
    - struct pool_head*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 539
    functionDepth: 2
    functionLinenumber: 539
    functionLinenumberEnd: 559
    functionName: pool_alloc_nocache
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_FETCH_ADD
    - POOL_DEBUG_SET_MARK
    - swrate_add_scaled_opportunistic
    - pool_get_from_os_noinc
    - pool_pbucket
    - POOL_DEBUG_TRACE_CALLER
    - _HA_ATOMIC_INC
    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:567,1
    - Dst: _HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/pool.c:570,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:571,1
    - Dst: swrate_add_opportunistic
      Src: /src/haproxy/src/pool.c:572,1
    - Dst: pool_put_to_os_nodec
      Src: /src/haproxy/src/pool.c:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - ptr
    argTypes:
    - struct pool_head*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 565
    functionDepth: 2
    functionLinenumber: 565
    functionLinenumberEnd: 575
    functionName: pool_free_nocache
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_DEC
    - swrate_add_opportunistic
    - _HA_ATOMIC_SUB_FETCH
    - pool_put_to_os_nodec
    - pool_pbucket
    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:589,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: 590
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 590
    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: 611
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 611
    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:633,1
    - Dst: pool_inspect_item
      Src: /src/haproxy/src/pool.c:634,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/pool.c:635,1
    - 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
    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: 651
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 651
    functionName: pool_check_pattern
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - pool_inspect_item
    - ABORT_NOW
    - unlikely
    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:664,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:671,1
    - Dst: pool_releasable
      Src: /src/haproxy/src/pool.c:674,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/pool.c:676,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/pool.c:677,1
    - Dst: typeof
      Src: /src/haproxy/src/pool.c:677,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:678,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:679,1
    - Dst: pool_check_pattern
      Src: /src/haproxy/src/pool.c:680,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pool.c:681,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pool.c:682,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:684,1
    - Dst: _HA_ATOMIC_SUB_FETCH
      Src: /src/haproxy/src/pool.c:685,1
    - Dst: swrate_add_opportunistic
      Src: /src/haproxy/src/pool.c:686,1
    - Dst: pool_put_to_shared_cache
      Src: /src/haproxy/src/pool.c:697,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:703,1
    - Dst: pool_put_to_os_nodec
      Src: /src/haproxy/src/pool.c:704,1
    - Dst: pool_put_to_shared_cache
      Src: /src/haproxy/src/pool.c:712,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: 717
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 717
    functionName: pool_evict_last_items
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - LIST_PREV
    - _HA_ATOMIC_DEC
    - swrate_add_opportunistic
    - LIST_DELETE
    - unlikely
    - _HA_ATOMIC_SUB_FETCH
    - pool_releasable
    - pool_put_to_os_nodec
    - BUG_ON
    - pool_pbucket
    - pool_put_to_shared_cache
    - __builtin_return_address
    - typeof
    - LIST_ISEMPTY
    - pool_check_pattern
    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:730,1
    - Dst: pool_evict_last_items
      Src: /src/haproxy/src/pool.c:736,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - pool
    - full
    argTypes:
    - struct pool_head*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 726
    functionDepth: 3
    functionLinenumber: 726
    functionLinenumberEnd: 738
    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:749,1
    - Dst: LIST_PREV
      Src: /src/haproxy/src/pool.c:752,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:753,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/pool.c:757,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:758,1
    - Dst: container_of
      Src: /src/haproxy/src/pool.c:760,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:761,1
    - Dst: pool_evict_last_items
      Src: /src/haproxy/src/pool.c:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 743
    functionDepth: 3
    functionLinenumber: 743
    functionLinenumberEnd: 765
    functionName: pool_evict_from_local_caches
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - pool_evict_last_items
    - LIST_PREV
    - container_of
    - BUG_ON
    - LIST_NEXT
    linkageType: ''
    returnType: void
    signature: void pool_evict_from_local_caches()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/pool.c:779,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pool.c:781,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pool.c:782,1
    - Dst: POOL_DEBUG_TRACE_CALLER
      Src: /src/haproxy/src/pool.c:783,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:785,1
    - Dst: pool_copy_pattern
      Src: /src/haproxy/src/pool.c:786,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:788,1
    - Dst: pool_fill_pattern
      Src: /src/haproxy/src/pool.c:789,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:794,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:797,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:798,1
    - Dst: pool_evict_from_local_cache
      Src: /src/haproxy/src/pool.c:801,1
    - Dst: pool_evict_from_local_caches
      Src: /src/haproxy/src/pool.c:803,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:805,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:806,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - pool
    - ptr
    - caller
    argTypes:
    - struct pool_head*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 774
    functionDepth: 4
    functionLinenumber: 774
    functionLinenumberEnd: 808
    functionName: pool_put_to_cache
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - unlikely
    - LIST_INSERT
    - now_mono_time
    - pool_copy_pattern
    - pool_fill_pattern
    - BUG_ON
    - pool_evict_from_local_cache
    - POOL_DEBUG_TRACE_CALLER
    - pool_evict_from_local_caches
    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:824,1
    - Dst: pool_tbucket
      Src: /src/haproxy/src/pool.c:832,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/pool.c:833,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:841,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/pool.c:842,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/pool.c:843,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:847,1
    - Dst: _HA_ATOMIC_XCHG
      Src: /src/haproxy/src/pool.c:847,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:849,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:850,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:855,1
    - Dst: POOL_DEBUG_TRACE_CALLER
      Src: /src/haproxy/src/pool.c:865,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pool.c:866,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/pool.c:867,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/pool.c:868,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:868,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:870,1
    - Dst: pool_fill_pattern
      Src: /src/haproxy/src/pool.c:871,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: 877
      start: 817
    functionDepth: 2
    functionLinenumber: 817
    functionLinenumberEnd: 877
    functionName: pool_refill_local_from_shared
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    - unlikely
    - LIST_INSERT
    - HA_ATOMIC_STORE
    - statistical_prng
    - pool_fill_pattern
    - BUG_ON
    - pool_pbucket
    - POOL_DEBUG_TRACE_CALLER
    - _HA_ATOMIC_XCHG
    - _HA_ATOMIC_INC
    - pool_tbucket
    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:887,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/pool.c:893,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:896,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/pool.c:898,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:900,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/pool.c:901,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/pool.c:902,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/pool.c:903,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - item
    argTypes:
    - struct pool_head*
    - struct pool_item*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 904
    functionName: pool_put_to_shared_cache
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - unlikely
    - __ha_barrier_atomic_store
    - pool_pbucket
    - _HA_ATOMIC_STORE
    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:923,1
    - Dst: pl_wait_new_long
      Src: /src/haproxy/src/pool.c:924,1
    - Dst: _HA_ATOMIC_XCHG
      Src: /src/haproxy/src/pool.c:929,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:931,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:941,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:941,1
    - Dst: pool_put_to_os_nodec
      Src: /src/haproxy/src/pool.c:942,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 947
    functionName: pool_flush
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_DEC
    - unlikely
    - HA_ATOMIC_STORE
    - pool_put_to_os_nodec
    - pool_pbucket
    - _HA_ATOMIC_XCHG
    - pl_wait_new_long
    linkageType: ''
    returnType: void
    signature: void pool_flush(struct pool_head *pool)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: thread_isolated
      Src: /src/haproxy/src/pool.c:958,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:960,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:961,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/pool.c:964,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:966,1
    - Dst: pool_allocated
      Src: /src/haproxy/src/pool.c:968,1
    - Dst: pool_used
      Src: /src/haproxy/src/pool.c:969,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/pool.c:985,1
    - Dst: pool_pbucket
      Src: /src/haproxy/src/pool.c:985,1
    - Dst: pool_put_to_os_nodec
      Src: /src/haproxy/src/pool.c:986,1
    - Dst: trim_all_pools
      Src: /src/haproxy/src/pool.c:991,1
    - Dst: thread_release
      Src: /src/haproxy/src/pool.c:994,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:997,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 1
    argNames:
    - pool_ctx
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 954
    functionDepth: 2
    functionLinenumber: 954
    functionLinenumberEnd: 998
    functionName: pool_gc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 3
    functionsReached:
    - _HA_ATOMIC_DEC
    - thread_release
    - list_for_each_entry
    - unlikely
    - thread_isolate
    - now_mono_time
    - trim_all_pools
    - pool_used
    - pool_pbucket
    - pool_put_to_os_nodec
    - pool_allocated
    - thread_isolated
    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:1009,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1011,1
    - Dst: mem_should_fail
      Src: /src/haproxy/src/pool.c:1012,1
    - Dst: likely
      Src: /src/haproxy/src/pool.c:1015,1
    - Dst: pool_get_from_cache
      Src: /src/haproxy/src/pool.c:1016,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1018,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1022,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:1023,1
    - Dst: pool_alloc_nocache
      Src: /src/haproxy/src/pool.c:1025,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1027,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:1028,1
    - Dst: likely
      Src: /src/haproxy/src/pool.c:1031,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1033,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/pool.c:1037,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/pool.c:1037,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1038,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1039,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1040,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1041,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:1042,1
    - Dst: POOL_DEBUG_TRACE_CALLER
      Src: /src/haproxy/src/pool.c:1049,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1052,1
    - Dst: memset
      Src: /src/haproxy/src/pool.c:1053,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1054,1
    - Dst: memset
      Src: /src/haproxy/src/pool.c:1055,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 30
    argCount: 2
    argNames:
    - pool
    - flags
    argTypes:
    - struct pool_head*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1006
    functionDepth: 3
    functionLinenumber: 1006
    functionLinenumberEnd: 1058
    functionName: __pool_alloc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - mem_should_fail
    - memset
    - unlikely
    - now_mono_time
    - memprof_get_bin
    - _HA_ATOMIC_ADD
    - _HA_ATOMIC_STORE
    - pool_get_from_cache
    - __builtin_return_address
    - likely
    - pool_alloc_nocache
    - 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:1066,1
    - Dst: POOL_DEBUG_CHECK_MARK
      Src: /src/haproxy/src/pool.c:1069,1
    - Dst: POOL_DEBUG_RESET_MARK
      Src: /src/haproxy/src/pool.c:1070,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1073,1
    - Dst: memprof_get_bin
      Src: /src/haproxy/src/pool.c:1077,1
    - Dst: __builtin_return_address
      Src: /src/haproxy/src/pool.c:1077,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1078,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1079,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1080,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1081,1
    - Dst: _HA_ATOMIC_STORE
      Src: /src/haproxy/src/pool.c:1082,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1089,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/pool.c:1090,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1095,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1100,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:1101,1
    - Dst: pool_free_nocache
      Src: /src/haproxy/src/pool.c:1103,1
    - Dst: unlikely
      Src: /src/haproxy/src/pool.c:1105,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/pool.c:1106,1
    - Dst: pool_put_to_cache
      Src: /src/haproxy/src/pool.c:1110,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - pool
    - ptr
    argTypes:
    - struct pool_head*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1064
    functionDepth: 5
    functionLinenumber: 1064
    functionLinenumberEnd: 1112
    functionName: __pool_free
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - POOL_DEBUG_RESET_MARK
    - pool_put_to_cache
    - unlikely
    - now_mono_time
    - memprof_get_bin
    - pool_free_nocache
    - _HA_ATOMIC_ADD
    - _HA_ATOMIC_STORE
    - POOL_DEBUG_CHECK_MARK
    - __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:1125,1
    - Dst: pool_flush
      Src: /src/haproxy/src/pool.c:1127,1
    - Dst: pool_used
      Src: /src/haproxy/src/pool.c:1128,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/pool.c:1135,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pool.c:1136,1
    - Dst: free
      Src: /src/haproxy/src/pool.c:1138,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/pool.c:1141,1
    - Dst: free
      Src: /src/haproxy/src/pool.c:1144,1
    - Dst: memprof_remove_stale_info
      Src: /src/haproxy/src/pool.c:1148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - pool
    argTypes:
    - struct pool_head*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1121
    functionDepth: 4
    functionLinenumber: 1121
    functionLinenumberEnd: 1151
    functionName: pool_destroy
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 2
    functionsReached:
    - pool_flush
    - LIST_DELETE
    - memprof_remove_stale_info
    - list_for_each_entry_safe
    - pool_used
    - pool_evict_from_local_cache
    - free
    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:1158,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/pool.c:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1154
    functionDepth: 5
    functionLinenumber: 1154
    functionLinenumberEnd: 1166
    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:1177,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/pool.c:1182,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1184,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1191,1
    - Dst: dump_area_with_syms
      Src: /src/haproxy/src/pool.c:1192,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1201,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1203,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1207,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1208,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1210,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1212,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1214,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1220,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1222,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1230,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/pool.c:1234,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1235,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1237,1
    - Dst: dump_area_with_syms
      Src: /src/haproxy/src/pool.c:1239,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/pool.c:1245,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1252,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/pool.c:1254,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1255,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1262,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1263,1
    - Dst: may_access
      Src: /src/haproxy/src/pool.c:1267,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1274,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/pool.c:1275,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1276,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1277,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1285,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/pool.c:1286,1
    - Dst: write
      Src: /src/haproxy/src/pool.c:1286,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: 1287
      start: 1173
    functionDepth: 6
    functionLinenumber: 1173
    functionLinenumberEnd: 1287
    functionName: pool_inspect_item
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - resolve_sym_name
    - list_for_each_entry
    - get_trash_chunk
    - chunk_printf
    - chunk_appendf
    - DISGUISE
    - dump_area_with_syms
    - may_access
    - write
    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:1295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1296
      start: 1290
    functionDepth: 0
    functionLinenumber: 1290
    functionLinenumberEnd: 1296
    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: 1310
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1310
    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: 1324
      start: 1313
    functionDepth: 0
    functionLinenumber: 1313
    functionLinenumberEnd: 1324
    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:1341,1
    - Dst: calloc
      Src: /src/haproxy/src/pool.c:1344,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1348,1
    - Dst: pool_allocated
      Src: /src/haproxy/src/pool.c:1352,1
    - Dst: strncmp
      Src: /src/haproxy/src/pool.c:1358,1
    - Dst: strlen
      Src: /src/haproxy/src/pool.c:1358,1
    - Dst: pool_used
      Src: /src/haproxy/src/pool.c:1370,1
    - Dst: swrate_avg
      Src: /src/haproxy/src/pool.c:1372,1
    - Dst: pool_needed_avg
      Src: /src/haproxy/src/pool.c:1372,1
    - Dst: pool_failed
      Src: /src/haproxy/src/pool.c:1373,1
    - Dst: qsort
      Src: /src/haproxy/src/pool.c:1385,1
    - Dst: qsort
      Src: /src/haproxy/src/pool.c:1387,1
    - Dst: qsort
      Src: /src/haproxy/src/pool.c:1389,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 39
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct show_pools_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1334
    functionDepth: 1
    functionLinenumber: 1334
    functionLinenumberEnd: 1395
    functionName: get_show_pools_info
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - swrate_avg
    - list_for_each_entry
    - pool_failed
    - pool_needed_avg
    - strncmp
    - pool_used
    - strlen
    - pool_allocated
    - calloc
    - qsort
    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:1405,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1407,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1408,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/pool.c:1410,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1417,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1430,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1431,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1433,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/pool.c:1434,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/pool.c:1438,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/pool.c:1444,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/pool.c:1449,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1453
    functionName: dump_pools_info
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - chunk_appendf
    - applet_putchk
    - list_for_each_entry
    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:1461,1
    - Dst: pool_failed
      Src: /src/haproxy/src/pool.c:1462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1464
      start: 1456
    functionDepth: 1
    functionLinenumber: 1456
    functionLinenumberEnd: 1464
    functionName: pool_total_failures
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - pool_failed
    linkageType: ''
    returnType: int
    signature: int pool_total_failures()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/pool.c:1472,1
    - Dst: pool_allocated
      Src: /src/haproxy/src/pool.c:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1475
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1475
    functionName: pool_total_allocated
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - pool_allocated
    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:1483,1
    - Dst: pool_used
      Src: /src/haproxy/src/pool.c:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1486
    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:1506,1
    - Dst: ist
      Src: /src/haproxy/src/pool.c:1518,1
    - Dst: istlen
      Src: /src/haproxy/src/pool.c:1518,1
    - Dst: istadv
      Src: /src/haproxy/src/pool.c:1518,1
    - Dst: istfind
      Src: /src/haproxy/src/pool.c:1518,1
    - Dst: iststop
      Src: /src/haproxy/src/pool.c:1519,1
    - Dst: istlen
      Src: /src/haproxy/src/pool.c:1521,1
    - Dst: isteq
      Src: /src/haproxy/src/pool.c:1524,1
    - Dst: ist
      Src: /src/haproxy/src/pool.c:1524,1
    - Dst: ha_free
      Src: /src/haproxy/src/pool.c:1525,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1526,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1535,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1544,1
    - Dst: isteq
      Src: /src/haproxy/src/pool.c:1560,1
    - Dst: ist
      Src: /src/haproxy/src/pool.c:1560,1
    - Dst: isteq
      Src: /src/haproxy/src/pool.c:1572,1
    - Dst: ist
      Src: /src/haproxy/src/pool.c:1572,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1582,1
    - Dst: istlen
      Src: /src/haproxy/src/pool.c:1582,1
    - Dst: istptr
      Src: /src/haproxy/src/pool.c:1582,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 2
    argNames:
    - str
    - err
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1497
    functionDepth: 5
    functionLinenumber: 1497
    functionLinenumberEnd: 1589
    functionName: pool_parse_debugging
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - isteq
    - istlen
    - istadv
    - ha_free
    - istptr
    - iststop
    - memprintf
    - istfind
    - strtol
    - ist
    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:1594,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1598,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1601,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1604,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1607,1
    - Dst: strcmp
      Src: /src/haproxy/src/pool.c:1610,1
    - Dst: strdup
      Src: /src/haproxy/src/pool.c:1611,1
    - Dst: cli_err
      Src: /src/haproxy/src/pool.c:1613,1
    - Dst: isdigit
      Src: /src/haproxy/src/pool.c:1616,1
    - Dst: atoi
      Src: /src/haproxy/src/pool.c:1617,1
    - Dst: cli_err
      Src: /src/haproxy/src/pool.c:1620,1
    - Dst: get_show_pools_info
      Src: /src/haproxy/src/pool.c:1623,1
    - Dst: cli_err
      Src: /src/haproxy/src/pool.c:1624,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: 1626
      start: 1592
    functionDepth: 2
    functionLinenumber: 1592
    functionLinenumberEnd: 1626
    functionName: cli_parse_show_pools
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - strdup
    - get_show_pools_info
    - strcmp
    - cli_err
    - atoi
    - isdigit
    - applet_reserve_svcctx
    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:1633,1
    - Dst: ha_free
      Src: /src/haproxy/src/pool.c:1634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1629
    functionDepth: 1
    functionLinenumber: 1629
    functionLinenumberEnd: 1635
    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:1643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1641
    functionDepth: 2
    functionLinenumber: 1641
    functionLinenumberEnd: 1644
    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:1652,1
    - Dst: ha_alert
      Src: /src/haproxy/src/pool.c:1654,1
    - Dst: strerror
      Src: /src/haproxy/src/pool.c:1655,1
    - Dst: exit
      Src: /src/haproxy/src/pool.c:1656,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: 1658
      start: 1650
    functionDepth: 2
    functionLinenumber: 1650
    functionLinenumberEnd: 1658
    functionName: create_pool_callback
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - exit
    - strerror
    - create_pool_from_reg
    - ha_alert
    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:1666,1
    - Dst: detect_allocator
      Src: /src/haproxy/src/pool.c:1669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1670
      start: 1661
    functionDepth: 4
    functionLinenumber: 1661
    functionLinenumberEnd: 1670
    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:1679,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/pool.c:1680,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/pool.c:1681,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1675
    functionDepth: 5
    functionLinenumber: 1675
    functionLinenumberEnd: 1683
    functionName: pools_register_build_options
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - hap_register_build_opts
    - memprintf
    - 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:1700,1
    - Dst: atoi
      Src: /src/haproxy/src/pool.c:1702,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1704,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: 1708
      start: 1696
    functionDepth: 7
    functionLinenumber: 1696
    functionLinenumberEnd: 1708
    functionName: mem_parse_global_fail_alloc
    functionSourceFile: /src/haproxy/src/pool.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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:1717,1
    - Dst: atol
      Src: /src/haproxy/src/pool.c:1720,1
    - Dst: memprintf
      Src: /src/haproxy/src/pool.c:1722,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: 1728
      start: 1711
    functionDepth: 7
    functionLinenumber: 1711
    functionLinenumberEnd: 1728
    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:1735,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: 1739
      start: 1731
    functionDepth: 7
    functionLinenumber: 1731
    functionLinenumberEnd: 1739
    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:
    - NODEK
    - _ceb_next_unique
    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:
    - NODEK
    - _ceb_prev_unique
    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:
    - NODEK
    - _ceb_prev_dup
    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:
    - NODEK
    - _ceb_prev
    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:
    - NODEK
    - _ceb_next_unique
    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:
    - NODEK
    - _ceb_prev_unique
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/qmux_http.c:21,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/qmux_http.c:24,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/qmux_http.c:25,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qmux_http.c:27,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/qmux_http.c:33,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/qmux_http.c:34,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/qmux_http.c:34,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qmux_http.c:41,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qmux_http.c:42,1
    - Dst: b_xfer
      Src: /src/haproxy/src/qmux_http.c:43,1
    - Dst: b_data
      Src: /src/haproxy/src/qmux_http.c:43,1
    - Dst: htx_xfer_blks
      Src: /src/haproxy/src/qmux_http.c:47,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/qmux_http.c:48,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/qmux_http.c:51,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qmux_http.c:57,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qmux_http.c:58,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/qmux_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: 3
    functionLinenumber: 14
    functionLinenumberEnd: 65
    functionName: qcs_http_rcv_buf
    functionSourceFile: /src/haproxy/src/qmux_http.c
    functionUses: 0
    functionsReached:
    - b_xfer
    - b_data
    - BUG_ON
    - TRACE_ENTER
    - htx_xfer_blks
    - htx_from_buf
    - TRACE_LEAVE
    - htx_used_space
    - htx_to_buf
    - htx_is_empty
    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/qmux_http.c:73,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/qmux_http.c:76,1
    - Dst: htx_set_eom
      Src: /src/haproxy/src/qmux_http.c:77,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/qmux_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/qmux_http.c
    functionUses: 0
    functionsReached:
    - htx_set_eom
    - htx_to_buf
    - htx_from_buf
    - qcc_get_stream_rxbuf
    linkageType: ''
    returnType: int
    signature: int qcs_http_handle_standalone_fin(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/qmux_http.c:99,1
    - Dst: struct qcs*::qcc::app_ops::snd_buf
      Src: /src/haproxy/src/qmux_http.c:100,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/qmux_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/qmux_http.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - struct qcs*::qcc::app_ops::snd_buf
    - TRACE_ENTER
    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: []
    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: struct xprt_handshake_ctx*::conn::mux::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_proxy
    - tasklet_wakeup
    - tasklet_free
    - struct connection*::xprt::remove_xprt
    - struct xprt_handshake_ctx*::xprt::subscribe
    - conn_send_proxy
    - conn_send_socks4_proxy_request
    - pool_free
    - conn_create_mux
    - conn_recv_netscaler_cip
    - conn_recv_socks4_proxy_response
    - struct xprt_handshake_ctx*::xprt::unsubscribe
    - struct xprt_handshake_ctx*::conn::mux::wake
    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_free
    - pool_alloc
    - 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
    - tasklet_free
    - pool_free
    - struct xprt_handshake_ctx*::xprt::unsubscribe
    - xprt_get
    - struct xprt_handshake_ctx*::xprt::close
    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:153,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: quic_peer_validated_addr
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - qc_is_back
    - BUG_ON
    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:167,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:168,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/quic_conn.c:173,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_conn.c:175,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: qc_kill_conn
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - task_wakeup
    - TRACE_ENTER
    - qc_notify_err
    - TRACE_PROTO
    - TRACE_LEAVE
    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:189,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:190,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:194,1
    - Dst: quic_loss_pktns
      Src: /src/haproxy/src/quic_conn.c:198,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_conn.c:199,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_conn.c:207,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:209,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_conn.c:214,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:215,1
    - Dst: quic_pto_pktns
      Src: /src/haproxy/src/quic_conn.c:222,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_conn.c:223,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/quic_conn.c:229,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:230,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/quic_conn.c:231,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:234,1
    - Dst: task_schedule
      Src: /src/haproxy/src/quic_conn.c:235,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:238,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:239,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 240
    functionName: qc_set_timer
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_peer_validated_addr
    - tick_is_expired
    - task_wakeup
    - tick_isset
    - TRACE_ENTER
    - TRACE_PROTO
    - quic_pto_pktns
    - task_schedule
    - quic_loss_pktns
    - TRACE_LEAVE
    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:247,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:251,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - qc
    - err
    argTypes:
    - struct quic_conn*
    - struct quic_err
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 258
    functionName: quic_set_connection_close
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 2
    functionsReached:
    - TRACE_LEAVE
    - TRACE_STATE
    - TRACE_ENTER
    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:263,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_conn.c:265,1
    - Dst: quic_err_tls
      Src: /src/haproxy/src/quic_conn.c:265,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:267,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - qc
    - alert
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: quic_set_tls_alert
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 6
    functionsReached:
    - TRACE_STATE
    - TRACE_ENTER
    - quic_err_tls
    - quic_set_connection_close
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void quic_set_tls_alert(struct quic_conn *qc, int alert)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/haproxy/src/quic_conn.c:277,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_conn.c:279,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - qc
    - alpn
    - alpn_len
    argTypes:
    - struct quic_conn*
    - unsigned char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 285
    functionName: quic_set_app_ops
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int quic_set_app_ops(struct quic_conn *qc, const unsigned char *alpn,
      size_t alpn_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:295,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_conn.c:297,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_conn.c:299,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:300,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 304
    functionName: qc_check_close_on_released_mux
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - tasklet_wakeup
    - eb_is_empty
    - TRACE_ENTER
    - quic_set_connection_close
    - TRACE_LEAVE
    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:318,1
    - Dst: quic_tls_finalize
      Src: /src/haproxy/src/quic_conn.c:323,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - qc
    - server
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 334
    functionName: qc_conn_finalize
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - quic_tls_finalize
    - TRACE_ENTER
    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:338,1
    - Dst: quic_stats_transp_err_count_inc
      Src: /src/haproxy/src/quic_conn.c:341,1
    - Dst: struct quic_conn*::qcc::app_ops::inc_err_cnt
      Src: /src/haproxy/src/quic_conn.c:346,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - qc
    - frm
    argTypes:
    - struct quic_conn*
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 351
    functionName: quic_conn_closed_err_count_inc
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - quic_stats_transp_err_count_inc
    - struct quic_conn*::qcc::app_ops::inc_err_cnt
    - TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void quic_conn_closed_err_count_inc(struct quic_conn *qc, struct quic_frame
      *frm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:369,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/quic_conn.c:375,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_conn.c:380,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:382,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_conn.c:389,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:391,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_conn.c:392,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:400,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:401,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - qc
    - id
    argTypes:
    - struct quic_conn*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 406
    functionName: qc_h3_request_reject
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_uni
    - TRACE_ENTER
    - LIST_APPEND
    - TRACE_ERROR
    - qc_frm_free
    - qc_frm_alloc
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qc_h3_request_reject(struct quic_conn *qc, uint64_t id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_conn.c:418,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_conn.c:420,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_conn.c:425,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:428,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/quic_conn.c:431,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_conn.c:435,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:438,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - qc
    - closing
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 439
    functionName: qc_detach_th_ctx_list
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - LIST_DEL_INIT
    - LIST_APPEND
    - LIST_NEXT
    - __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:458,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/quic_conn.c:458,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: 461
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: quic_stateless_reset_token_cpy
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - quic_hkdf_extract_and_expand
    - EVP_sha256
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_conn.c:473,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:476,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:480,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_conn.c:483,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:485,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:489,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_conn.c:491,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:493,1
    - Dst: quic_generate_token
      Src: /src/haproxy/src/quic_conn.c:498,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:501,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:505,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:507,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_conn.c:517,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_conn.c:521,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:523,1
    - Dst: new_quic_cid
      Src: /src/haproxy/src/quic_conn.c:527,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_conn.c:529,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:530,1
    - Dst: _quic_cid_insert
      Src: /src/haproxy/src/quic_conn.c:537,1
    - Dst: quic_connection_id_to_frm_cpy
      Src: /src/haproxy/src/quic_conn.c:539,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:540,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/quic_conn.c:543,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:548,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_conn.c:553,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_conn.c:554,1
    - Dst: eb64_lookup_ge
      Src: /src/haproxy/src/quic_conn.c:559,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_conn.c:563,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_conn.c:567,1
    - Dst: quic_cid_delete
      Src: /src/haproxy/src/quic_conn.c:568,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_conn.c:570,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:571,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 468
    functionDepth: 3
    functionLinenumber: 468
    functionLinenumberEnd: 574
    functionName: quic_build_post_handshake_frames
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - eb64_lookup_ge
    - eb64_next
    - pool_free
    - eb64_entry
    - qc_frm_alloc
    - quic_generate_token
    - TRACE_LEAVE
    - quic_connection_id_to_frm_cpy
    - list_for_each_entry_safe
    - _quic_cid_insert
    - QUIC_MIN
    - BUG_ON
    - LIST_APPEND
    - qc_frm_free
    - quic_cid_delete
    - LIST_SPLICE
    - eb64_delete
    - qc_is_back
    - new_quic_cid
    - TRACE_ENTER
    - TRACE_ERROR
    - LIST_HEAD_INIT
    linkageType: ''
    returnType: int
    signature: int quic_build_post_handshake_frames(struct quic_conn *qc)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_conn.c:579,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:582,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:583,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:585,1
    - Dst: qc_rcv_buf
      Src: /src/haproxy/src/quic_conn.c:586,1
    - Dst: quic_build_post_handshake_frames
      Src: /src/haproxy/src/quic_conn.c:594,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:599,1
    - Dst: qc_dgrams_retransmit
      Src: /src/haproxy/src/quic_conn.c:601,1
    - Dst: qc_treat_rx_pkts
      Src: /src/haproxy/src/quic_conn.c:605,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:606,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:611,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:617,1
    - Dst: qel_need_sending
      Src: /src/haproxy/src/quic_conn.c:622,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_conn.c:623,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_conn.c:625,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:626,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/quic_conn.c:632,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:637,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 46
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 577
    functionDepth: 4
    functionLinenumber: 577
    functionLinenumberEnd: 639
    functionName: quic_conn_app_io_cb
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qc_rcv_buf
    - quic_conn_release
    - qel_need_sending
    - TRACE_STATE
    - qc_test_fd
    - TRACE_ENTER
    - qel_register_send
    - qc_send
    - quic_build_post_handshake_frames
    - qc_dgrams_retransmit
    - LIST_HEAD_INIT
    - TRACE_LEAVE
    - qc_treat_rx_pkts
    linkageType: ''
    returnType: struct task
    signature: struct task *quic_conn_app_io_cb(struct task *t, void *context, unsigned
      int state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:645,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:647,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/quic_conn.c:649,1
    - Dst: free_quic_conn_cids
      Src: /src/haproxy/src/quic_conn.c:650,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:651,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:653,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:656,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - cc_qc
    argTypes:
    - struct quic_conn_closed*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 659
    functionName: quic_release_cc_conn
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - tasklet_free
    - pool_free
    - TRACE_ENTER
    - free_quic_conn_cids
    - task_destroy
    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:671,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:673,1
    - Dst: qc_rcv_buf
      Src: /src/haproxy/src/quic_conn.c:674,1
    - Dst: quic_may_send_bytes
      Src: /src/haproxy/src/quic_conn.c:679,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_conn.c:682,1
    - Dst: qc_snd_buf
      Src: /src/haproxy/src/quic_conn.c:684,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:685,1
    - Dst: quic_release_cc_conn
      Src: /src/haproxy/src/quic_conn.c:686,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 662
    functionDepth: 4
    functionLinenumber: 662
    functionLinenumberEnd: 699
    functionName: quic_conn_closed_io_cb
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - qc_rcv_buf
    - qc_snd_buf
    - qc_test_fd
    - quic_may_send_bytes
    - TRACE_ENTER
    - TRACE_ERROR
    - quic_release_cc_conn
    - b_make
    - TRACE_LEAVE
    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:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 709
    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:721,1
    - Dst: quic_conn_mv_cids_to_cc_conn
      Src: /src/haproxy/src/quic_conn.c:725,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:727,1
    - Dst: qc_init_fd
      Src: /src/haproxy/src/quic_conn.c:730,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_conn.c:770,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 39
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 774
    functionName: qc_new_cc_conn
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_PRINTF
    - qc_is_back
    - pool_alloc
    - quic_conn_mv_cids_to_cc_conn
    - qc_init_fd
    linkageType: ''
    returnType: struct quic_conn_closed
    signature: struct quic_conn_closed *qc_new_cc_conn(struct quic_conn *qc)
  - BBCount: 24
    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:815,1
    - Dst: qc_treat_rx_pkts
      Src: /src/haproxy/src/quic_conn.c:817,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:825,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:826,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:836,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_conn.c:837,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_conn.c:841,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:847,1
    - Dst: quic_pktns_discard
      Src: /src/haproxy/src/quic_conn.c:848,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_conn.c:849,1
    - Dst: qc_el_rx_pkts_del
      Src: /src/haproxy/src/quic_conn.c:850,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_conn.c:851,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:852,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:858,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_conn.c:871,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_conn.c:874,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_conn.c:875,1
    - Dst: quic_rx_packet_refdec
      Src: /src/haproxy/src/quic_conn.c:876,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:897,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:898,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/quic_conn.c:906,1
    - Dst: qel_need_sending
      Src: /src/haproxy/src/quic_conn.c:907,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_conn.c:908,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_conn.c:911,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:912,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:924,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_conn.c:924,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:927,1
    - Dst: quic_pktns_discard
      Src: /src/haproxy/src/quic_conn.c:928,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_conn.c:929,1
    - Dst: qc_el_rx_pkts_del
      Src: /src/haproxy/src/quic_conn.c:930,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_conn.c:931,1
    - Dst: qc_txb_release
      Src: /src/haproxy/src/quic_conn.c:934,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_conn.c:941,1
    - Dst: qc_need_sending
      Src: /src/haproxy/src/quic_conn.c:942,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:946,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:947,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:948,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:949,1
    - Dst: quic_nictx_free
      Src: /src/haproxy/src/quic_conn.c:951,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/quic_conn.c:955,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:960,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:961,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 101
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 777
    functionDepth: 5
    functionLinenumber: 777
    functionLinenumberEnd: 963
    functionName: quic_conn_io_cb
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_conn_release
    - qel_need_sending
    - qc_test_fd
    - quic_pktns_discard
    - qc_treat_rx_pkts
    - TRACE_LEAVE
    - qc_enc_level_free
    - list_for_each_entry_safe
    - quic_rx_packet_refdec
    - qel_register_send
    - quic_nictx_free
    - qc_ssl_provide_all_quic_data
    - LIST_ISEMPTY
    - qc_el_rx_pkts_del
    - tasklet_wakeup
    - qc_txb_release
    - qc_rcv_buf
    - quic_pktns_release
    - LIST_DEL_INIT
    - HA_ATOMIC_LOAD
    - TRACE_PROTO
    - quic_tls_pktns_is_dcd
    - qc_release_pktns_frms
    - HA_ATOMIC_AND
    - list_for_each_entry
    - qc_is_back
    - TRACE_STATE
    - qc_send
    - TRACE_ENTER
    - qc_dgrams_retransmit
    - qc_ssl_do_hanshake
    - LIST_HEAD_INIT
    - qc_need_sending
    - qc_set_timer
    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:971,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:972,1
    - Dst: quic_loss_pktns
      Src: /src/haproxy/src/quic_conn.c:976,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:979,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_conn.c:983,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_conn.c:984,1
    - Dst: qc_packet_loss_lookup
      Src: /src/haproxy/src/quic_conn.c:986,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_conn.c:987,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:988,1
    - Dst: qc_release_lost_pkts
      Src: /src/haproxy/src/quic_conn.c:989,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_conn.c:990,1
    - Dst: quic_pto_pktns
      Src: /src/haproxy/src/quic_conn.c:995,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:997,1
    - Dst: qc_may_probe_ipktns
      Src: /src/haproxy/src/quic_conn.c:1002,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1005,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1008,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1013,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1017,1
    - Dst: qc_may_probe_ipktns
      Src: /src/haproxy/src/quic_conn.c:1021,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1023,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1026,1
    - Dst: qc_notify_send
      Src: /src/haproxy/src/quic_conn.c:1033,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1034,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:1040,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_conn.c:1041,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_conn.c:1043,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:1047,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1051,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1052,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 75
    argCount: 3
    argNames:
    - task
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 966
    functionDepth: 3
    functionLinenumber: 966
    functionLinenumberEnd: 1055
    functionName: qc_process_timer
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - qc_packet_loss_lookup
    - tasklet_wakeup
    - qc_set_timer
    - qc_may_probe_ipktns
    - TRACE_STATE
    - qc_is_back
    - tick_isset
    - TRACE_ENTER
    - qc_release_lost_pkts
    - quic_tls_has_tx_sec
    - TRACE_PROTO
    - quic_pto_pktns
    - qc_notify_send
    - LIST_HEAD_INIT
    - LIST_ISEMPTY
    - quic_loss_pktns
    - TRACE_LEAVE
    linkageType: ''
    returnType: struct task
    signature: struct task *qc_process_timer(struct task *task, void *ctx, unsigned
      int state)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/src/quic_conn.c:1086,1
    - Dst: objt_server
      Src: /src/haproxy/src/quic_conn.c:1087,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_conn.c:1088,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1092,1
    - Dst: increment_actconn
      Src: /src/haproxy/src/quic_conn.c:1094,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_conn.c:1096,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1097,1
    - Dst: increment_sslconn
      Src: /src/haproxy/src/quic_conn.c:1101,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1103,1
    - Dst: quic_increment_curr_handshake
      Src: /src/haproxy/src/quic_conn.c:1108,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1110,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_conn.c:1115,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1117,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1132,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1134,1
    - Dst: qc_init_fd
      Src: /src/haproxy/src/quic_conn.c:1141,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1144,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1145,1
    - Dst: quic_tls_ku_reset
      Src: /src/haproxy/src/quic_conn.c:1163,1
    - Dst: quic_tls_ku_reset
      Src: /src/haproxy/src/quic_conn.c:1164,1
    - Dst: quic_tls_ku_reset
      Src: /src/haproxy/src/quic_conn.c:1165,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1174,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_conn.c:1177,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_conn.c:1178,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:1187,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:1206,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_conn.c:1214,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_conn.c:1219,1
    - Dst: new_quic_cid
      Src: /src/haproxy/src/quic_conn.c:1222,1
    - Dst: _quic_cid_insert
      Src: /src/haproxy/src/quic_conn.c:1226,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_conn.c:1234,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1241,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_conn.c:1246,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_conn.c:1251,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1253,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_conn.c:1257,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1259,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_conn.c:1266,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:1268,1
    - Dst: is_addr
      Src: /src/haproxy/src/quic_conn.c:1270,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/quic_conn.c:1272,1
    - Dst: qc_alloc_fd
      Src: /src/haproxy/src/quic_conn.c:1273,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:1278,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_conn.c:1279,1
    - Dst: qc_enc_level_alloc
      Src: /src/haproxy/src/quic_conn.c:1285,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1286,1
    - Dst: memset
      Src: /src/haproxy/src/quic_conn.c:1297,1
    - Dst: memset
      Src: /src/haproxy/src/quic_conn.c:1304,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_conn.c:1305,1
    - Dst: quic_tls_ku_init
      Src: /src/haproxy/src/quic_conn.c:1315,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1316,1
    - Dst: quic_cc_path_init
      Src: /src/haproxy/src/quic_conn.c:1323,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_conn.c:1328,1
    - Dst: memset
      Src: /src/haproxy/src/quic_conn.c:1330,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_conn.c:1331,1
    - Dst: qc_lstnr_params_init
      Src: /src/haproxy/src/quic_conn.c:1334,1
    - Dst: qc_srv_params_init
      Src: /src/haproxy/src/quic_conn.c:1340,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/quic_conn.c:1347,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1349,1
    - Dst: qc_alloc_ssl_sock_ctx
      Src: /src/haproxy/src/quic_conn.c:1362,1
    - Dst: quic_conn_init_timer
      Src: /src/haproxy/src/quic_conn.c:1363,1
    - Dst: quic_conn_init_idle_timer_task
      Src: /src/haproxy/src/quic_conn.c:1364,1
    - Dst: qc_new_isecs
      Src: /src/haproxy/src/quic_conn.c:1367,1
    - Dst: memset
      Src: /src/haproxy/src/quic_conn.c:1372,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:1374,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:1375,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1377,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1388,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/quic_conn.c:1391,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1398,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1400,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1402,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1404,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 203
    argCount: 11
    argNames:
    - qv
    - ipv4
    - dcid
    - scid
    - token_odcid
    - conn_id
    - local_addr
    - peer_addr
    - token
    - target
    - conn
    argTypes:
    - struct quic_version*
    - int
    - struct quic_cid*
    - struct quic_cid*
    - struct quic_cid*
    - struct quic_connection_id*
    - struct sockaddr_storage*
    - struct sockaddr_storage*
    - int
    - void*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1076
    functionDepth: 6
    functionLinenumber: 1076
    functionLinenumberEnd: 1406
    functionName: qc_new_conn
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_INC
    - quic_tls_ku_reset
    - pool_free
    - quic_conn_release
    - qc_test_fd
    - EXTRA_COUNTERS_GET
    - pool_alloc
    - increment_sslconn
    - MT_LIST_INIT
    - _HA_ATOMIC_INC
    - qc_init_fd
    - quic_tls_ku_init
    - TRACE_LEAVE
    - qc_new_isecs
    - qc_alloc_fd
    - TRACE_USER
    - RAND_bytes
    - LIST_INIT
    - _quic_cid_insert
    - b_make
    - is_addr
    - quic_conn_init_idle_timer_task
    - _HA_ATOMIC_DEC
    - memset
    - quic_conn_init_timer
    - __objt_server
    - eb64_insert
    - HA_ATOMIC_LOAD
    - LIST_APPEND
    - qc_alloc_ssl_sock_ctx
    - increment_actconn
    - quic_err_transport
    - tasklet_new
    - qc_srv_params_init
    - objt_server
    - TRACE_STATE
    - new_quic_cid
    - TRACE_ENTER
    - objt_listener
    - TRACE_ERROR
    - qc_enc_level_alloc
    - quic_cc_path_init
    - qc_lstnr_params_init
    - quic_increment_curr_handshake
    - memcpy
    linkageType: ''
    returnType: struct quic_conn
    signature: "struct quic_conn *qc_new_conn(const struct quic_version *qv, int ipv4,\n
      \                             struct quic_cid *dcid, struct quic_cid *scid,\n
      \                             const struct quic_cid *token_odcid,\n                              struct
      quic_connection_id *conn_id,\n                              struct sockaddr_storage
      *local_addr,\n                              struct sockaddr_storage *peer_addr,\n
      \                             int token, void *target,\n                              struct
      connection *conn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1417,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1428,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1440,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:1455,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1457,1
    - Dst: qc_release_fd
      Src: /src/haproxy/src/quic_conn.c:1458,1
    - Dst: qc_alloc_fd
      Src: /src/haproxy/src/quic_conn.c:1460,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1467,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1471,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: 1473
      start: 1413
    functionDepth: 2
    functionLinenumber: 1413
    functionLinenumberEnd: 1473
    functionName: qc_handle_conn_migration
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - qc_alloc_fd
    - TRACE_STATE
    - qc_test_fd
    - TRACE_ENTER
    - TRACE_ERROR
    - qc_release_fd
    - TRACE_LEAVE
    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:1482,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1483,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1484,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1485,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:1488,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1493,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1494,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1496,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1497,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1498,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/quic_conn.c:1499,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1477
    functionDepth: 1
    functionLinenumber: 1477
    functionLinenumberEnd: 1500
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1517,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1523,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1526,1
    - Dst: qc_new_cc_conn
      Src: /src/haproxy/src/quic_conn.c:1531,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_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_release_fd
      Src: /src/haproxy/src/quic_conn.c:1550,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/quic_conn.c:1555,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/quic_conn.c:1556,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1557,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1558,1
    - Dst: cshared_add
      Src: /src/haproxy/src/quic_conn.c:1563,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_conn.c:1568,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_conn.c:1572,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_conn.c:1573,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1578,1
    - Dst: qc_stream_desc_free
      Src: /src/haproxy/src/quic_conn.c:1579,1
    - Dst: qc_free_ssl_sock_ctx
      Src: /src/haproxy/src/quic_conn.c:1583,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_conn.c:1585,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/quic_conn.c:1586,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1587,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:1590,1
    - Dst: quic_tls_ku_free
      Src: /src/haproxy/src/quic_conn.c:1593,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1598,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1599,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1602,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:1605,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:1606,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:1607,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_conn.c:1608,1
    - Dst: quic_tls_ctx_free
      Src: /src/haproxy/src/quic_conn.c:1610,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:1612,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:1613,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_conn.c:1614,1
    - Dst: qc_detach_th_ctx_list
      Src: /src/haproxy/src/quic_conn.c:1616,1
    - Dst: quic_conn_prx_cntrs_update
      Src: /src/haproxy/src/quic_conn.c:1618,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1619,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_conn.c:1623,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1624,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1625,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_conn.c:1629,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_conn.c:1630,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:1631,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1632,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_conn.c:1636,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1643,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_conn.c:1644,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1646,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1648,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 86
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1510
    functionDepth: 4
    functionLinenumber: 1510
    functionLinenumberEnd: 1650
    functionName: quic_conn_release
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 4
    functionsReached:
    - HA_ATOMIC_DEC
    - unlikely
    - pool_free
    - eb64_next
    - qc_new_cc_conn
    - eb64_entry
    - qc_test_fd
    - task_destroy
    - qc_stream_desc_free
    - TRACE_LEAVE
    - tasklet_free
    - qc_enc_level_free
    - list_for_each_entry_safe
    - eb64_first
    - quic_tls_ku_free
    - _HA_ATOMIC_DEC
    - MT_LIST_INLIST
    - quic_tls_ctx_free
    - quic_pktns_release
    - qc_detach_th_ctx_list
    - BUG_ON
    - free_quic_conn_cids
    - TRACE_PROTO
    - cshared_add
    - MT_LIST_DELETE
    - LIST_DELETE
    - qc_is_back
    - TRACE_ENTER
    - qc_release_fd
    - qc_free_ssl_sock_ctx
    - quic_conn_prx_cntrs_update
    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:1659,1
    - Dst: task_new_here
      Src: /src/haproxy/src/quic_conn.c:1661,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1663,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1655
    functionDepth: 1
    functionLinenumber: 1655
    functionLinenumberEnd: 1675
    functionName: quic_conn_init_timer
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_LEAVE
    - task_new_here
    - TRACE_ERROR
    - TRACE_ENTER
    linkageType: ''
    returnType: int
    signature: int quic_conn_init_timer(struct quic_conn *qc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: MIN
      Src: /src/haproxy/src/quic_conn.c:1700,1
    - Dst: quic_pto
      Src: /src/haproxy/src/quic_conn.c:1700,1
    - Dst: QUIC_MAX
      Src: /src/haproxy/src/quic_conn.c:1711,1
    - Dst: quic_pto
      Src: /src/haproxy/src/quic_conn.c:1711,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_conn.c:1714,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_conn.c:1714,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_conn.c:1721,1
    - Dst: tick_add
      Src: /src/haproxy/src/quic_conn.c:1722,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_conn.c:1722,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_conn.c:1724,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1725,1
    - Dst: tick_first
      Src: /src/haproxy/src/quic_conn.c:1729,1
    - Dst: tick_first
      Src: /src/haproxy/src/quic_conn.c:1731,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_conn.c:1732,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1733,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - qc
    - arm_ack
    argTypes:
    - struct quic_conn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1735
    functionName: qc_idle_timer_do_rearm
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - quic_pto
    - tick_add
    - MIN
    - QUIC_MAX
    - tick_isset
    - task_queue
    - TRACE_PROTO
    - tick_first
    - MS_TO_TICKS
    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:1744,1
    - Dst: qc_idle_timer_do_rearm
      Src: /src/haproxy/src/quic_conn.c:1752,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1755,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: 1756
      start: 1742
    functionDepth: 2
    functionLinenumber: 1742
    functionLinenumberEnd: 1756
    functionName: qc_idle_timer_rearm
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - qc_idle_timer_do_rearm
    - TRACE_ENTER
    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:1763,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/quic_conn.c:1765,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/quic_conn.c:1768,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1769,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:1778,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_conn.c:1784,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_conn.c:1788,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/quic_conn.c:1795,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:1799,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1810,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1812
      start: 1759
    functionDepth: 5
    functionLinenumber: 1759
    functionLinenumberEnd: 1812
    functionName: qc_idle_timer_task
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - tick_is_expired
    - quic_conn_release
    - TRACE_ENTER
    - qc_notify_err
    - TRACE_PROTO
    - task_destroy
    - TRACE_LEAVE
    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:1823,1
    - Dst: task_new_here
      Src: /src/haproxy/src/quic_conn.c:1827,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_conn.c:1829,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/quic_conn.c:1836,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_conn.c:1836,1
    - Dst: qc_idle_timer_rearm
      Src: /src/haproxy/src/quic_conn.c:1837,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_conn.c:1838,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 2
    argNames:
    - qc
    - px
    argTypes:
    - struct quic_conn*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1817
    functionDepth: 3
    functionLinenumber: 1817
    functionLinenumberEnd: 1844
    functionName: quic_conn_init_idle_timer_task
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - MS_TO_TICKS
    - qc_idle_timer_rearm
    - TRACE_ENTER
    - TRACE_ERROR
    - task_queue
    - tick_add_ifset
    - task_new_here
    - TRACE_LEAVE
    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:1853,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1861
    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:1873,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_conn.c:1875,1
    - Dst: quic_cmp_cid_conn
      Src: /src/haproxy/src/quic_conn.c:1886,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: 1887
      start: 1869
    functionDepth: 2
    functionLinenumber: 1869
    functionLinenumberEnd: 1887
    functionName: qc_check_dcid
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - quic_cmp_cid_conn
    - memcmp
    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:1899,1
    - Dst: quic_cc_path_prep_data
      Src: /src/haproxy/src/quic_conn.c:1909,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:1910,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/quic_conn.c:1910,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:1911,1
    - Dst: qcc_notify_buf
      Src: /src/haproxy/src/quic_conn.c:1924,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1895
    functionDepth: 1
    functionLinenumber: 1895
    functionLinenumberEnd: 1927
    functionName: qc_notify_send
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 2
    functionsReached:
    - quic_cc_path_prep_data
    - tasklet_wakeup
    - fd_send_active
    - qcc_notify_buf
    - TRACE_STATE
    - qc_test_fd
    linkageType: ''
    returnType: int
    signature: int qc_notify_send(struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_conn.c:1932,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_conn.c:1935,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:1946,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:1949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1930
    functionDepth: 1
    functionLinenumber: 1930
    functionLinenumberEnd: 1950
    functionName: qc_notify_err
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 2
    functionsReached:
    - TRACE_LEAVE
    - tasklet_wakeup
    - TRACE_STATE
    - TRACE_ENTER
    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:1963,1
    - Dst: task_new_on
      Src: /src/haproxy/src/quic_conn.c:1968,1
    - Dst: task_new_on
      Src: /src/haproxy/src/quic_conn.c:1969,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/quic_conn.c:1970,1
    - Dst: task_kill
      Src: /src/haproxy/src/quic_conn.c:1975,1
    - Dst: task_kill
      Src: /src/haproxy/src/quic_conn.c:1983,1
    - Dst: tasklet_kill
      Src: /src/haproxy/src/quic_conn.c:1992,1
    - Dst: qc_detach_th_ctx_list
      Src: /src/haproxy/src/quic_conn.c:2003,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:2007,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:2011,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_conn.c:2012,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/quic_conn.c:2013,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_conn.c:2015,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - qc
    - new_tid
    argTypes:
    - struct quic_conn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1958
    functionDepth: 2
    functionLinenumber: 1958
    functionLinenumberEnd: 2017
    functionName: qc_bind_tid_prep
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - tasklet_kill
    - tasklet_free
    - tasklet_new
    - task_new_on
    - qc_detach_th_ctx_list
    - TRACE_ENTER
    - task_destroy
    - task_kill
    - TRACE_LEAVE
    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:2032,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2035,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:2044,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_conn.c:2051,1
    - Dst: fd_migrate_on
      Src: /src/haproxy/src/quic_conn.c:2053,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_conn.c:2056,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2064,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_conn.c:2064,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_conn.c:2065,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/quic_conn.c:2070,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:2073,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - qc
    - new_li
    argTypes:
    - struct quic_conn*
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2026
    functionDepth: 2
    functionLinenumber: 2026
    functionLinenumberEnd: 2074
    functionName: qc_bind_tid_commit
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - eb64_next
    - HA_ATOMIC_STORE
    - fd_migrate_on
    - qc_test_fd
    - BUG_ON
    - HA_ATOMIC_LOAD
    - TRACE_ENTER
    - eb64_first
    - eb64_entry
    - TRACE_LEAVE
    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:2081,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2084,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/quic_conn.c:2089,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/quic_conn.c:2091,1
    - Dst: tasklet_set_tid
      Src: /src/haproxy/src/quic_conn.c:2092,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:2094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2079
    functionDepth: 1
    functionLinenumber: 2079
    functionLinenumberEnd: 2095
    functionName: qc_bind_tid_reset
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - task_set_thread
    - tasklet_set_tid
    - BUG_ON
    - TRACE_ENTER
    - TRACE_LEAVE
    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:2100,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2103,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_conn.c:2112,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_conn.c:2115,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_conn.c:2116,1
    - Dst: qc_want_recv
      Src: /src/haproxy/src/quic_conn.c:2119,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_conn.c:2122,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_conn.c:2125,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_conn.c:2129,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_conn.c:2133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2134
      start: 2098
    functionDepth: 3
    functionLinenumber: 2098
    functionLinenumberEnd: 2134
    functionName: qc_finalize_tid_rebind
    functionSourceFile: /src/haproxy/src/quic_conn.c
    functionUses: 1
    functionsReached:
    - tasklet_wakeup
    - BUG_ON
    - HA_ATOMIC_LOAD
    - LIST_APPEND
    - qc_want_recv
    - TRACE_ENTER
    - task_queue
    - qc_set_timer
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qc_finalize_tid_rebind(struct quic_conn *qc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:53,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - frm
    argTypes:
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 65
    functionName: qmux_trace_frm
    functionSourceFile: /src/haproxy/src/qmux_trace.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void qmux_trace_frm(const struct quic_frame *frm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: qmux_dump_qcc_info
      Src: /src/haproxy/src/qmux_trace.c:81,1
    - Dst: qmux_dump_qcs_info
      Src: /src/haproxy/src/qmux_trace.c:84,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:88,1
    - Dst: qmux_trace_frm
      Src: /src/haproxy/src/qmux_trace.c:92,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:96,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:102,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: 106
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 106
    functionName: qmux_trace
    functionSourceFile: /src/haproxy/src/qmux_trace.c
    functionUses: 0
    functionsReached:
    - qmux_trace_frm
    - qmux_dump_qcc_info
    - chunk_appendf
    - qmux_dump_qcs_info
    linkageType: ''
    returnType: void
    signature: "void qmux_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/qmux_trace.c:126,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: 128
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 128
    functionName: qmux_trace_fill_ctx
    functionSourceFile: /src/haproxy/src/qmux_trace.c
    functionUses: 0
    functionsReached:
    - sc_strm
    linkageType: ''
    returnType: void
    signature: "void qmux_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: 142
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 142
    functionName: qcc_app_st_to_str
    functionSourceFile: /src/haproxy/src/qmux_trace.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *qcc_app_st_to_str(const enum qcc_app_st st)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:148,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:150,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:151,1
    - Dst: qcc_app_st_to_str
      Src: /src/haproxy/src/qmux_trace.c:152,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - msg
    - qcc
    argTypes:
    - struct buffer*
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 158
    functionName: qmux_dump_qcc_info
    functionSourceFile: /src/haproxy/src/qmux_trace.c
    functionUses: 1
    functionsReached:
    - qcc_app_st_to_str
    - chunk_appendf
    linkageType: ''
    returnType: void
    signature: void qmux_dump_qcc_info(struct buffer *msg, const struct qcc *qcc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:162,1
    - Dst: qcs_st_to_str
      Src: /src/haproxy/src/qmux_trace.c:163,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:165,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:168,1
    - Dst: bdata_ctr_print
      Src: /src/haproxy/src/qmux_trace.c:173,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/qmux_trace.c:175,1
    - Dst: tot_time_read
      Src: /src/haproxy/src/qmux_trace.c:176,1
    - Dst: tot_time_read
      Src: /src/haproxy/src/qmux_trace.c:177,1
    - Dst: tot_time_read
      Src: /src/haproxy/src/qmux_trace.c:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - qcs
    argTypes:
    - struct buffer*
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: qmux_dump_qcs_info
    functionSourceFile: /src/haproxy/src/qmux_trace.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    - bdata_ctr_print
    - tot_time_read
    - qcs_st_to_str
    linkageType: ''
    returnType: void
    signature: void qmux_dump_qcs_info(struct buffer *msg, const struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:78,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:79,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: thread_harmless_till_end
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_LOAD
    - ha_thread_relax
    - _HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void thread_harmless_till_end()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:94,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/thread.c:95,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:96,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:112,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:113,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:117,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:126,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/thread.c:131,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:132,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 143
    functionName: thread_isolate
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 15
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - __ha_barrier_atomic_store
    - ha_thread_relax
    - _HA_ATOMIC_OR
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void thread_isolate()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:163,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:164,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/thread.c:165,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:166,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_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:184,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:188,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/thread.c:197,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/thread.c:201,1
    - Dst: ha_thread_relax
      Src: /src/haproxy/src/thread.c:202,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:209,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:210,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 217
    functionName: thread_isolate_full
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - __ha_barrier_atomic_store
    - ha_thread_relax
    - _HA_ATOMIC_OR
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void thread_isolate_full()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/thread.c:227,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/thread.c:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 230
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigfillset
      Src: /src/haproxy/src/thread.c:241,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:242,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:243,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:244,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:245,1
    - Dst: sigdelset
      Src: /src/haproxy/src/thread.c:246,1
    - Dst: pthread_sigmask
      Src: /src/haproxy/src/thread.c:247,1
    - Dst: pthread_self
      Src: /src/haproxy/src/thread.c:250,1
    - Dst: pthread_create
      Src: /src/haproxy/src/thread.c:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - (*handler)(void *)
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 253
    functionName: setup_extra_threads
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - sigfillset
    - pthread_self
    - pthread_create
    - pthread_sigmask
    - sigdelset
    linkageType: ''
    returnType: void
    signature: void setup_extra_threads(void *(*handler)(void *))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_join
      Src: /src/haproxy/src/thread.c:264,1
    - Dst: show_lock_stats
      Src: /src/haproxy/src/thread.c:267,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 269
    functionName: wait_for_threads_completion
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pthread_join
    - show_lock_stats
    linkageType: ''
    returnType: void
    signature: void wait_for_threads_completion()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:280,1
    - Dst: ffsl
      Src: /src/haproxy/src/thread.c:286,1
    - Dst: pthread_mach_thread_np
      Src: /src/haproxy/src/thread.c:290,1
    - Dst: pthread_self
      Src: /src/haproxy/src/thread.c:290,1
    - Dst: thread_policy_set
      Src: /src/haproxy/src/thread.c:291,1
    - Dst: pthread_setaffinity_np
      Src: /src/haproxy/src/thread.c:297,1
    - Dst: pthread_self
      Src: /src/haproxy/src/thread.c:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 301
    functionName: set_thread_cpu_affinity
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pthread_self
    - thread_policy_set
    - ffsl
    - pthread_setaffinity_np
    - pthread_mach_thread_np
    - 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: 331
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 331
    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:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - thr
    - sig
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 337
    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:351,1
    - Dst: raise
      Src: /src/haproxy/src/thread.c:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 354
    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:359,1
    - Dst: pl_cpu_relax
      Src: /src/haproxy/src/thread.c:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: ha_thread_relax
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 7
    functionsReached:
    - pl_cpu_relax
    - sched_yield
    linkageType: ''
    returnType: void
    signature: void ha_thread_relax(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/thread.c:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - HA_SPINLOCK_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 369
    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:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - l
    argTypes:
    - HA_RWLOCK_T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 375
    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:386,1
    - Dst: sysconf
      Src: /src/haproxy/src/thread.c:389,1
    - Dst: MAX
      Src: /src/haproxy/src/thread.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 394
    functionName: thread_cpus_enabled
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_detect_bound
    - sysconf
    - MAX
    linkageType: ''
    returnType: int
    signature: int thread_cpus_enabled()
  - BBCount: 48
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:452,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 99
    argCount: 1
    argNames:
    - label
    argTypes:
    - enum lock_label
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 453
    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:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lbl
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 471
    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:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lbl
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 481
    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:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - lbl
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 491
    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:499,1
    - Dst: get_lock_stat_num_seek
      Src: /src/haproxy/src/thread.c:500,1
    - Dst: get_lock_stat_num_read
      Src: /src/haproxy/src/thread.c:501,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:504,1
    - Dst: lock_label
      Src: /src/haproxy/src/thread.c:506,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:510,1
    - Dst: lock_label
      Src: /src/haproxy/src/thread.c:512,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:515,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:529,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:530,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:534,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:548,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:549,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:553,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:567,1
    - Dst: fprintf
      Src: /src/haproxy/src/thread.c:568,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 493
    functionDepth: 2
    functionLinenumber: 493
    functionLinenumberEnd: 571
    functionName: show_lock_stats
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached:
    - get_lock_stat_num_write
    - get_lock_stat_num_seek
    - lock_label
    - fprintf
    - get_lock_stat_num_read
    linkageType: ''
    returnType: void
    signature: void show_lock_stats()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/thread.c:575,1
    - Dst: __RWLOCK_INIT
      Src: /src/haproxy/src/thread.c:576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 577
    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:581,1
    - Dst: memset
      Src: /src/haproxy/src/thread.c:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 583
    functionName: __ha_rwlock_destroy
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - memset
    - __RWLOCK_DESTROY
    linkageType: ''
    returnType: void
    signature: void __ha_rwlock_destroy(struct ha_rwlock *l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/haproxy/src/thread.c:595,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:597,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:599,1
    - Dst: __RWLOCK_WRLOCK
      Src: /src/haproxy/src/thread.c:600,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:601,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:602,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:605,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:606,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:613,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: 614
      start: 586
    functionDepth: 2
    functionLinenumber: 586
    functionLinenumberEnd: 614
    functionName: __ha_rwlock_wrlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - __RWLOCK_WRLOCK
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - now_mono_time
    - abort
    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:626,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:629,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:631,1
    - Dst: __RWLOCK_TRYWRLOCK
      Src: /src/haproxy/src/thread.c:632,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:633,1
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:634,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:635,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:638,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:641,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:642,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:649,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: 652
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 652
    functionName: __ha_rwlock_trywrlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - unlikely
    - now_mono_time
    - __RWLOCK_TRYWRLOCK
    - abort
    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:660,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:662,1
    - Dst: __RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/thread.c:670,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:672,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: 673
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 673
    functionName: __ha_rwlock_wrunlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - abort
    - unlikely
    - __RWLOCK_WRUNLOCK
    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:683,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:685,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:687,1
    - Dst: __RWLOCK_RDLOCK
      Src: /src/haproxy/src/thread.c:688,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:689,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:690,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:693,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:694,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:696,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - lbl
    - l
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 699
    functionName: __ha_rwlock_rdlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - __RWLOCK_RDLOCK
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - now_mono_time
    - abort
    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:710,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:713,1
    - Dst: __RWLOCK_TRYRDLOCK
      Src: /src/haproxy/src/thread.c:714,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:715,1
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:717,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:720,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:723,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:724,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - lbl
    - l
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 701
    functionDepth: 2
    functionLinenumber: 701
    functionLinenumberEnd: 729
    functionName: __ha_rwlock_tryrdlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_INC
    - HA_ATOMIC_OR
    - unlikely
    - now_mono_time
    - __RWLOCK_TRYRDLOCK
    - abort
    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:736,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:738,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:741,1
    - Dst: __RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/thread.c:743,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - lbl
    - l
    argTypes:
    - enum lock_label
    - struct ha_rwlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 746
    functionName: __ha_rwlock_rdunlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - unlikely
    - __RWLOCK_RDUNLOCK
    - abort
    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:757,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:760,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:762,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:764,1
    - Dst: __RWLOCK_WRTORD
      Src: /src/haproxy/src/thread.c:765,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:766,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:767,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:770,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:771,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:773,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:774,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:779,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: 780
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 780
    functionName: __ha_rwlock_wrtord
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - now_mono_time
    - __RWLOCK_WRTORD
    - abort
    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: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_WRTOSK
      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_wrtosk
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - now_mono_time
    - __RWLOCK_WRTOSK
    - abort
    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:825,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:827,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:829,1
    - Dst: __RWLOCK_SKLOCK
      Src: /src/haproxy/src/thread.c:830,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:831,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:832,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:835,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:836,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:838,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:843,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: 844
      start: 816
    functionDepth: 2
    functionLinenumber: 816
    functionLinenumberEnd: 844
    functionName: __ha_rwlock_sklock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - now_mono_time
    - __RWLOCK_SKLOCK
    - abort
    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:855,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:858,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:860,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:862,1
    - Dst: __RWLOCK_SKTOWR
      Src: /src/haproxy/src/thread.c:863,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:864,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:865,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:868,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:869,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:871,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:872,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:877,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: 878
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 878
    functionName: __ha_rwlock_sktowr
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - __RWLOCK_SKTOWR
    - now_mono_time
    - abort
    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: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_SKTORD
      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_sktord
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - __RWLOCK_SKTORD
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - now_mono_time
    - abort
    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:920,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:922,1
    - Dst: __RWLOCK_SKUNLOCK
      Src: /src/haproxy/src/thread.c:927,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:929,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: 930
      start: 914
    functionDepth: 1
    functionLinenumber: 914
    functionLinenumberEnd: 930
    functionName: __ha_rwlock_skunlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - __RWLOCK_SKUNLOCK
    - HA_ATOMIC_INC
    - abort
    - HA_ATOMIC_AND
    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:942,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:944,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:946,1
    - Dst: __RWLOCK_TRYSKLOCK
      Src: /src/haproxy/src/thread.c:947,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:948,1
    - Dst: likely
      Src: /src/haproxy/src/thread.c:950,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:952,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:955,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:956,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:957,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:963,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: 965
      start: 932
    functionDepth: 2
    functionLinenumber: 932
    functionLinenumberEnd: 965
    functionName: __ha_rwlock_trysklock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - now_mono_time
    - likely
    - abort
    - __RWLOCK_TRYSKLOCK
    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:977,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:980,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:982,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:984,1
    - Dst: __RWLOCK_TRYRDTOSK
      Src: /src/haproxy/src/thread.c:985,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:986,1
    - Dst: likely
      Src: /src/haproxy/src/thread.c:988,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:990,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:993,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:994,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:995,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:996,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:1002,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: 1004
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 1004
    functionName: __ha_rwlock_tryrdtosk
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - now_mono_time
    - __RWLOCK_TRYRDTOSK
    - likely
    - abort
    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:1016,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1019,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:1021,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1023,1
    - Dst: __RWLOCK_TRYRDTOWR
      Src: /src/haproxy/src/thread.c:1024,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1025,1
    - Dst: likely
      Src: /src/haproxy/src/thread.c:1027,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:1029,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:1032,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:1033,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:1034,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:1035,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:1041,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: 1043
      start: 1006
    functionDepth: 2
    functionLinenumber: 1006
    functionLinenumberEnd: 1043
    functionName: __ha_rwlock_tryrdtowr
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - __RWLOCK_TRYRDTOWR
    - now_mono_time
    - likely
    - abort
    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:1048,1
    - Dst: __SPIN_INIT
      Src: /src/haproxy/src/thread.c:1049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct ha_spinlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1050
    functionName: __spin_init
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - __SPIN_INIT
    - memset
    linkageType: ''
    returnType: void
    signature: void __spin_init(struct ha_spinlock *l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __SPIN_DESTROY
      Src: /src/haproxy/src/thread.c:1054,1
    - Dst: memset
      Src: /src/haproxy/src/thread.c:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct ha_spinlock*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1056
    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:1066,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1068,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/thread.c:1071,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1073,1
    - Dst: __SPIN_LOCK
      Src: /src/haproxy/src/thread.c:1074,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1075,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:1076,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:1079,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:1080,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/thread.c:1088,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: 1089
      start: 1058
    functionDepth: 2
    functionLinenumber: 1058
    functionLinenumberEnd: 1089
    functionName: __spin_lock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - __SPIN_LOCK
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_OR
    - HA_ATOMIC_INC
    - HA_ATOMIC_AND
    - unlikely
    - now_mono_time
    - abort
    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:1100,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1102,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1106,1
    - Dst: __SPIN_TRYLOCK
      Src: /src/haproxy/src/thread.c:1107,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/thread.c:1108,1
    - Dst: unlikely
      Src: /src/haproxy/src/thread.c:1110,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/thread.c:1113,1
    - Dst: flsnz
      Src: /src/haproxy/src/thread.c:1116,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:1117,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: 1125
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1125
    functionName: __spin_trylock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - flsnz
    - HA_ATOMIC_ADD
    - HA_ATOMIC_INC
    - unlikely
    - __SPIN_TRYLOCK
    - now_mono_time
    - abort
    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:1133,1
    - Dst: abort
      Src: /src/haproxy/src/thread.c:1135,1
    - Dst: __SPIN_UNLOCK
      Src: /src/haproxy/src/thread.c:1143,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/thread.c:1144,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: 1145
      start: 1127
    functionDepth: 1
    functionLinenumber: 1127
    functionLinenumberEnd: 1145
    functionName: __spin_unlock
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - abort
    - unlikely
    - __SPIN_UNLOCK
    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: 1169
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1169
    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: 1177
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1177
    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:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1183
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1183
    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:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1185
    functionDepth: 1
    functionLinenumber: 1185
    functionLinenumberEnd: 1188
    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:1192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rwlock
    - abstime
    argTypes:
    - pthread_rwlock_t*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1193
      start: 1190
    functionDepth: 2
    functionLinenumber: 1190
    functionLinenumberEnd: 1193
    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:1197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1199
      start: 1195
    functionDepth: 1
    functionLinenumber: 1195
    functionLinenumberEnd: 1199
    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:1203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1204
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1204
    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:1208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rwlock
    - abstime
    argTypes:
    - pthread_rwlock_t*
    - struct timespec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1206
    functionDepth: 2
    functionLinenumber: 1206
    functionLinenumberEnd: 1209
    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:1213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rwlock
    argTypes:
    - pthread_rwlock_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1215
    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:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1231
    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:1236,1
    - Dst: pthread_join
      Src: /src/haproxy/src/thread.c:1237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1238
    functionName: preload_libgcc_s
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - pthread_create
    - pthread_join
    linkageType: ''
    returnType: void
    signature: void preload_libgcc_s(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: preload_libgcc_s
      Src: /src/haproxy/src/thread.c:1246,1
    - Dst: thread_cpus_enabled
      Src: /src/haproxy/src/thread.c:1249,1
    - Dst: MIN
      Src: /src/haproxy/src/thread.c:1250,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1252,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/src/thread.c:1254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1241
    functionDepth: 5
    functionLinenumber: 1241
    functionLinenumberEnd: 1255
    functionName: __thread_init
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - thread_cpus_enabled
    - MIN
    - memprintf
    - hap_register_build_opts
    - preload_libgcc_s
    linkageType: ''
    returnType: void
    signature: void __thread_init(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raise
      Src: /src/haproxy/src/thread.c:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - thr
    - sig
    argTypes:
    - unsigned int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1264
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1264
    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:1269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1267
    functionDepth: 0
    functionLinenumber: 1267
    functionLinenumberEnd: 1270
    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:1275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1272
    functionDepth: 0
    functionLinenumber: 1272
    functionLinenumberEnd: 1277
    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:1299,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1287
    functionDepth: 2
    functionLinenumber: 1287
    functionLinenumberEnd: 1321
    functionName: thread_detect_binding_discrepancies
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - ha_cpuset_count
    linkageType: ''
    returnType: int
    signature: int thread_detect_binding_discrepancies(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/thread.c:1336,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/thread.c:1337,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/thread.c:1338,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:1343,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/thread.c:1344,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/thread.c:1349,1
    - Dst: ha_cpuset_detect_bound
      Src: /src/haproxy/src/thread.c:1351,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/thread.c:1352,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:1355,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:1356,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1359,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1367,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1376
    functionName: thread_detect_more_than_cpus
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_detect_bound
    - ha_warning
    - ha_cpuset_zero
    - ha_cpuset_assign
    - ha_cpuset_count
    - ha_cpuset_or
    linkageType: ''
    returnType: int
    signature: int thread_detect_more_than_cpus(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/thread.c:1402,1
    - Dst: ha_alert
      Src: /src/haproxy/src/thread.c:1419,1
    - Dst: ha_alert
      Src: /src/haproxy/src/thread.c:1452,1
    - Dst: ha_alert
      Src: /src/haproxy/src/thread.c:1465,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1471,1
    - Dst: nbits
      Src: /src/haproxy/src/thread.c:1481,1
    - Dst: cpu_reorder_by_index
      Src: /src/haproxy/src/thread.c:1504,1
    - Dst: cpu_topo_debug
      Src: /src/haproxy/src/thread.c:1505,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/thread.c:1506,1
    - Dst: cpu_topo_dump_summary
      Src: /src/haproxy/src/thread.c:1507,1
    - Dst: printf
      Src: /src/haproxy/src/thread.c:1508,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1512
    functionName: thread_map_to_groups
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached:
    - ha_warning
    - printf
    - chunk_reset
    - cpu_topo_dump_summary
    - ha_alert
    - cpu_reorder_by_index
    - cpu_topo_debug
    - nbits
    linkageType: ''
    returnType: int
    signature: int thread_map_to_groups()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: thread_set_is_empty
      Src: /src/haproxy/src/thread.c:1533,1
    - Dst: nbits
      Src: /src/haproxy/src/thread.c:1557,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1576,1
    - Dst: nbits
      Src: /src/haproxy/src/thread.c:1581,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1596,1
    - Dst: thread_set_nth_group
      Src: /src/haproxy/src/thread.c:1608,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1609,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 3
    argNames:
    - ts
    - defgrp
    - err
    argTypes:
    - struct thread_set*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1525
    functionDepth: 5
    functionLinenumber: 1525
    functionLinenumberEnd: 1615
    functionName: thread_resolve_group_mask
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached:
    - thread_set_nth_group
    - thread_set_is_empty
    - memprintf
    - nbits
    linkageType: ''
    returnType: int
    signature: int thread_resolve_group_mask(struct thread_set *ts, int defgrp, char
      **err)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1635,1
    - Dst: cpu_map_configured
      Src: /src/haproxy/src/thread.c:1682,1
    - Dst: cpu_apply_policy
      Src: /src/haproxy/src/thread.c:1697,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:1699,1
    - Dst: ha_free
      Src: /src/haproxy/src/thread.c:1700,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/thread.c:1704,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/thread.c:1711,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/thread.c:1717,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/thread.c:1724,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/thread.c:1742,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1621
    functionDepth: 2
    functionLinenumber: 1621
    functionLinenumberEnd: 1747
    functionName: thread_detect_count
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - ha_diag_warning
    - ha_warning
    - ha_cpuset_zero
    - ha_free
    - ha_cpuset_assign
    - cpu_apply_policy
    - cpu_map_configured
    - ha_cpuset_count
    - ha_cpuset_set
    linkageType: ''
    returnType: void
    signature: void thread_detect_count(void)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/thread.c:1797,1
    - Dst: isdigit
      Src: /src/haproxy/src/thread.c:1812,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1816,1
    - Dst: atoi
      Src: /src/haproxy/src/thread.c:1820,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1833,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1835,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1841,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1846,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1851,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1879,1
    - Dst: isteq
      Src: /src/haproxy/src/thread.c:1890,1
    - Dst: ist2
      Src: /src/haproxy/src/thread.c:1890,1
    - Dst: ist
      Src: /src/haproxy/src/thread.c:1890,1
    - Dst: isteq
      Src: /src/haproxy/src/thread.c:1892,1
    - Dst: ist2
      Src: /src/haproxy/src/thread.c:1892,1
    - Dst: ist
      Src: /src/haproxy/src/thread.c:1892,1
    - Dst: isteq
      Src: /src/haproxy/src/thread.c:1894,1
    - Dst: ist2
      Src: /src/haproxy/src/thread.c:1894,1
    - Dst: ist
      Src: /src/haproxy/src/thread.c:1894,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1903,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1911,1
    - Dst: isdigit
      Src: /src/haproxy/src/thread.c:1916,1
    - Dst: atoi
      Src: /src/haproxy/src/thread.c:1918,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1928,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1938,1
    - Dst: memset
      Src: /src/haproxy/src/thread.c:1953,1
    - Dst: memset
      Src: /src/haproxy/src/thread.c:1963,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 110
    argCount: 3
    argNames:
    - arg
    - ts
    - err
    argTypes:
    - char*
    - struct thread_set*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1786
    functionDepth: 5
    functionLinenumber: 1786
    functionLinenumberEnd: 1974
    functionName: parse_thread_set
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 1
    functionsReached:
    - isteq
    - memset
    - atoi
    - isdigit
    - ist2
    - memprintf
    - ist
    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:1986,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1990,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:1994,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:1996,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2002,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2007,1
    - Dst: HA_DIAG_WARNING_COND
      Src: /src/haproxy/src/thread.c:2012,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: 2018
      start: 1979
    functionDepth: 7
    functionLinenumber: 1979
    functionLinenumberEnd: 2018
    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:2031,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2034,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2036,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2041,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: 2047
      start: 2024
    functionDepth: 7
    functionLinenumber: 2024
    functionLinenumberEnd: 2047
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2061,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2065,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2067,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2072,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:2080,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2097,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2100,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2103,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:2109,1
    - Dst: ha_warning
      Src: /src/haproxy/src/thread.c:2112,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2137,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2142,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 67
    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: 2147
      start: 2052
    functionDepth: 5
    functionLinenumber: 2052
    functionLinenumberEnd: 2147
    functionName: cfg_parse_thread_group
    functionSourceFile: /src/haproxy/src/thread.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - memprintf
    - strtol
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/thread.c:2159,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2163,1
    - Dst: strtol
      Src: /src/haproxy/src/thread.c:2167,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2169,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2175,1
    - Dst: memprintf
      Src: /src/haproxy/src/thread.c:2180,1
    - Dst: HA_DIAG_WARNING_COND
      Src: /src/haproxy/src/thread.c:2185,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: 2191
      start: 2152
    functionDepth: 7
    functionLinenumber: 2152
    functionLinenumberEnd: 2191
    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:
    - fd_cant_recv
    - splice
    - unlikely
    - BUG_ON
    - conn_set_errcode
    - conn_ctrl_ready
    - increment_send_rate
    - conn_set_errno
    - fd_recv_ready
    - conn_sock_read0
    - conn_report_term_evt
    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
    - fd_cant_send
    - BUG_ON
    - conn_ctrl_ready
    - conn_set_errno
    - splice
    - conn_report_term_evt
    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:
    - recv
    - fd_cant_recv
    - recvmsg
    - memset
    - b_contig_space
    - unlikely
    - BUG_ON
    - b_tail
    - conn_set_errcode
    - conn_ctrl_ready
    - conn_set_errno
    - fd_recv_ready
    - conn_sock_read0
    - conn_report_term_evt
    - b_add
    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:
    - memset
    - unlikely
    - fd_send_ready
    - b_contig_data
    - fd_cant_send
    - BUG_ON
    - conn_set_errcode
    - conn_ctrl_ready
    - fd_stop_send
    - increment_send_rate
    - b_peek
    - conn_set_errno
    - conn_report_term_evt
    - sendmsg
    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: 3
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: tcp_action_attach_srv
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - b_data
    - sample_fetch_as_type
    - b_ncat
    - conn_set_reverse
    - malloc
    - b_make
    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: 3
    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: 3
    functionLinenumber: 103
    functionLinenumberEnd: 152
    functionName: tcp_action_req_set_src
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - get_net_port
    - objt_conn
    - sc_get_src
    - sample_fetch_as_type
    - conn_get_src
    - memcpy
    - sess_get_src
    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: 3
    functionLinenumber: 159
    functionLinenumberEnd: 208
    functionName: tcp_action_req_set_dst
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - get_net_port
    - sc_get_dst
    - objt_conn
    - sess_get_dst
    - sample_fetch_as_type
    - conn_get_dst
    - memcpy
    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: 3
    functionLinenumber: 216
    functionLinenumberEnd: 263
    functionName: tcp_action_req_set_src_port
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - htons
    - objt_conn
    - sc_get_src
    - sample_fetch_as_type
    - conn_get_src
    - sess_get_src
    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: 3
    functionLinenumber: 271
    functionLinenumberEnd: 318
    functionName: tcp_action_req_set_dst_port
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - htons
    - sc_get_dst
    - objt_conn
    - sess_get_dst
    - sample_fetch_as_type
    - conn_get_dst
    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_OR
    - objt_conn
    - _HA_ATOMIC_INC
    - stream_abort
    - conn_ctrl_ready
    - setsockopt
    - 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: 4
    functionLinenumber: 417
    functionLinenumberEnd: 425
    functionName: tcp_action_set_fc_mark
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - conn_set_mark
    - extract_int_from_rule
    - objt_conn
    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: 4
    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: 4
    functionLinenumber: 445
    functionLinenumberEnd: 453
    functionName: tcp_action_set_fc_tos
    functionSourceFile: /src/haproxy/src/tcp_act.c
    functionUses: 0
    functionsReached:
    - conn_set_tos
    - extract_int_from_rule
    - objt_conn
    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: 4
    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:
    - release_sample_expr
    - ha_free
    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:
    - istlen
    - server_find
    - istsplit
    - proxy_be_by_name
    - memprintf
    - ist0
    - ist
    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
    - strcmp
    - sample_parse_expr
    - ha_free
    - strlen
    - memprintf
    - release_sample_expr
    - mark_tainted
    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:
    - strcmp
    - sample_parse_expr
    - free
    - sample_src_names
    - memprintf
    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:
    - strcmp
    - sample_parse_expr
    - free
    - sample_src_names
    - memprintf
    - strtoul
    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:
    - strcmp
    - sample_parse_expr
    - free
    - sample_src_names
    - memprintf
    - strtol
    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:
    - strtoul
    - memprintf
    - strcmp
    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: 1
    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: 1
    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: 1
    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: 1
    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:
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - hap_fd_set
    - hap_fd_clr
    - _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:
    - _HA_ATOMIC_CAS
    - done_update_polling
    - compute_poll_timeout
    - clock_entering_poll
    - thread_harmless_now
    - _HA_ATOMIC_AND
    - fd_update_events
    - select
    - _HA_ATOMIC_INC
    - FD_ISSET
    - fd_leaving_poll
    - _update_fd
    - thread_idle_now
    - clock_update_date
    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
    - free
    - calloc
    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
    - hap_register_per_thread_deinit
    - free
    - hap_register_per_thread_init
    - calloc
    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:
    - bind
    - fd_set_nonblock
    - fd_want_recv
    - fd_insert
    - BUG_ON
    - close
    - send_log
    - socket
    - protocol_lookup
    - connect
    - get_addr_len
    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
    - dns_ring_write
    - fd_cant_send
    - sendto
    - task_wakeup
    - ist2
    - dns_connect_nameserver
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - send
    - get_addr_len
    linkageType: ''
    returnType: int
    signature: int dns_send_nameserver(struct dns_nameserver *ns, void *buf, size_t
      len)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:224,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:227,1
    - Dst: recv
      Src: /src/haproxy/src/dns.c:231,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/dns.c:233,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:234,1
    - Dst: fd_delete
      Src: /src/haproxy/src/dns.c:237,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:239,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:242,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:248,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:250,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/dns.c:251,1
    - Dst: memcpy
      Src: /src/haproxy/src/dns.c:253,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/dns.c:261,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:263,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/dns.c:270,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/dns.c:275,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:279,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/dns.c:291,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/dns.c:297,1
    - Dst: dns_session_free
      Src: /src/haproxy/src/dns.c:311,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:317,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 48
    argCount: 3
    argNames:
    - ns
    - data
    - size
    argTypes:
    - struct dns_nameserver*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 321
    functionName: dns_recv_nameserver
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - recv
    - fd_cant_recv
    - fd_delete
    - appctx_wakeup
    - dns_session_free
    - LIST_INSERT
    - LIST_DEL_INIT
    - LIST_NEXT
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - memcpy
    - __ha_barrier_store
    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:328,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/dns.c:333,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:334,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/dns.c:340,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/dns.c:341,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:342,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:346,1
    - Dst: struct dns_nameserver*::process_responses
      Src: /src/haproxy/src/dns.c:348,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - dgram
    argTypes:
    - struct dgram_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 349
    functionName: dns_resolve_recv
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    - struct dns_nameserver*::process_responses
    - _HA_ATOMIC_AND
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - fd_recv_ready
    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:361,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/dns.c:366,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:367,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/dns.c:373,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/dns.c:374,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:375,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/dns.c:382,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:392,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:393,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:394,1
    - Dst: b_orig
      Src: /src/haproxy/src/dns.c:394,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:400,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:401,1
    - Dst: b_size
      Src: /src/haproxy/src/dns.c:402,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:403,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/dns.c:404,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:404,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:406,1
    - Dst: b_peek_varint
      Src: /src/haproxy/src/dns.c:410,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:414,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:414,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:415,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:421,1
    - Dst: send
      Src: /src/haproxy/src/dns.c:423,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/dns.c:426,1
    - Dst: fd_delete
      Src: /src/haproxy/src/dns.c:430,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/dns.c:441,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:444,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:444,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:445,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/dns.c:446,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:447,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 1
    argNames:
    - dgram
    argTypes:
    - struct dgram_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 352
    functionDepth: 4
    functionLinenumber: 352
    functionLinenumberEnd: 448
    functionName: dns_resolve_send
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - fd_delete
    - unlikely
    - fd_send_ready
    - HA_SPIN_LOCK
    - b_peek
    - b_data
    - HA_SPIN_UNLOCK
    - b_head_ofs
    - send
    - b_peek_varint
    - fd_cant_send
    - BUG_ON
    - HA_RWLOCK_RDUNLOCK
    - b_getblk
    - b_size
    - HA_RWLOCK_RDLOCK
    - b_orig
    - _HA_ATOMIC_AND
    - fd_stop_send
    linkageType: ''
    returnType: void
    signature: void dns_resolve_send(struct dgram_conn *dgram)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/dns.c:460,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/dns.c:469,1
    - Dst: dns_ring_new
      Src: /src/haproxy/src/dns.c:473,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:475,1
    - Dst: dns_ring_attach
      Src: /src/haproxy/src/dns.c:480,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:482,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/dns.c:487,1
    - Dst: free
      Src: /src/haproxy/src/dns.c:489,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - ns
    - sk
    argTypes:
    - struct dns_nameserver*
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 456
    functionDepth: 4
    functionLinenumber: 456
    functionLinenumberEnd: 492
    functionName: dns_dgram_init
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - free
    - dns_ring_new
    - HA_SPIN_INIT
    - ha_alert
    - dns_ring_free
    - calloc
    - dns_ring_attach
    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:508,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/dns.c:508,1
    - Dst: applet_reset_input
      Src: /src/haproxy/src/dns.c:509,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:514,1
    - Dst: __ha_barrier_load
      Src: /src/haproxy/src/dns.c:518,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/dns.c:528,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:529,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:530,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/src/dns.c:534,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:535,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dns.c:539,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/dns.c:540,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dns.c:541,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/dns.c:543,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:553,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:554,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:555,1
    - Dst: b_orig
      Src: /src/haproxy/src/dns.c:555,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:561,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:562,1
    - Dst: b_size
      Src: /src/haproxy/src/dns.c:563,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:565,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/dns.c:566,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:566,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:573,1
    - Dst: b_peek_varint
      Src: /src/haproxy/src/dns.c:579,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:583,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:583,1
    - Dst: applet_output_room
      Src: /src/haproxy/src/dns.c:586,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:594,1
    - Dst: htons
      Src: /src/haproxy/src/dns.c:601,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/dns.c:602,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:606,1
    - Dst: htons
      Src: /src/haproxy/src/dns.c:617,1
    - Dst: applet_putblk
      Src: /src/haproxy/src/dns.c:620,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/dns.c:625,1
    - Dst: tick_add
      Src: /src/haproxy/src/dns.c:629,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:630,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:631,1
    - Dst: task_queue
      Src: /src/haproxy/src/dns.c:638,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/dns.c:640,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/dns.c:641,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/dns.c:643,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:652,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:653,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/dns.c:658,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:662,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:669,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/dns.c:676,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/dns.c:687,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:695,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:695,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:696,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/dns.c:698,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/dns.c:702,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:703,1
    - Dst: MT_LIST_INLIST
      Src: /src/haproxy/src/dns.c:703,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/dns.c:704,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dns.c:705,1
    - Dst: applet_have_no_more_data
      Src: /src/haproxy/src/dns.c:706,1
    - Dst: __ha_barrier_load
      Src: /src/haproxy/src/dns.c:714,1
    - Dst: LIST_INLIST_ATOMIC
      Src: /src/haproxy/src/dns.c:715,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/src/dns.c:716,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:717,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/dns.c:728,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:732,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/dns.c:737,1
    - Dst: ntohs
      Src: /src/haproxy/src/dns.c:740,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/dns.c:745,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/dns.c:749,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/dns.c:749,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:753,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/dns.c:758,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/dns.c:761,1
    - Dst: applet_input_data
      Src: /src/haproxy/src/dns.c:761,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:764,1
    - Dst: applet_getblk
      Src: /src/haproxy/src/dns.c:771,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/dns.c:775,1
    - Dst: applet_skip_input
      Src: /src/haproxy/src/dns.c:780,1
    - Dst: memcpy
      Src: /src/haproxy/src/dns.c:786,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/dns.c:787,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/dns.c:798,1
    - Dst: memcpy
      Src: /src/haproxy/src/dns.c:799,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/dns.c:802,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/dns.c:803,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:804,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:811,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:813,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/dns.c:813,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/dns.c:814,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:816,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/dns.c:819,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/dns.c:829,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/dns.c:833,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/dns.c:834,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 197
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 836
    functionName: dns_session_io_handler
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - unlikely
    - HA_ATOMIC_STORE
    - pool_free
    - task_wakeup
    - applet_have_no_more_data
    - pool_alloc
    - LIST_INLIST_ATOMIC
    - applet_input_data
    - eb32_delete
    - b_peek
    - HA_SPIN_LOCK
    - LIST_INLIST
    - applet_get_inbuf
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - b_data
    - MT_LIST_APPEND
    - ntohs
    - eb32_entry
    - LIST_INIT
    - HA_SPIN_UNLOCK
    - b_head_ofs
    - LIST_ISEMPTY
    - __ha_barrier_load
    - applet_get_outbuf
    - applet_need_more_data
    - MT_LIST_INLIST
    - b_peek_varint
    - applet_getblk
    - se_fl_test
    - eb32_lookup
    - BUG_ON
    - applet_skip_input
    - LIST_APPEND
    - HA_RWLOCK_RDUNLOCK
    - b_getblk
    - eb32_insert
    - applet_output_room
    - applet_reset_input
    - b_size
    - applet_set_eos
    - applet_have_more_data
    - HA_RWLOCK_RDLOCK
    - applet_fl_test
    - MT_LIST_DELETE
    - b_orig
    - htons
    - applet_putblk
    - tick_add
    - LIST_DELETE
    - applet_set_error
    - task_queue
    - applet_putchk
    - memcpy
    - chunk_reset
    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:842,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/dns.c:843,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/dns.c:844,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ds
    argTypes:
    - struct dns_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 838
    functionDepth: 1
    functionLinenumber: 838
    functionLinenumberEnd: 847
    functionName: dns_queries_flush
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - pool_free
    - list_for_each_entry_safe
    - eb32_delete
    - LIST_DELETE
    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:851,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:852,1
    - Dst: task_destroy
      Src: /src/haproxy/src/dns.c:853,1
    - Dst: dns_queries_flush
      Src: /src/haproxy/src/dns.c:855,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:861,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:862,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:870,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:870,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:871,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:871,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:872,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:872,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:873,1
    - Dst: MT_LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:873,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:874,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/dns.c:874,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - ds
    argTypes:
    - struct dns_session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 849
    functionDepth: 2
    functionLinenumber: 849
    functionLinenumberEnd: 876
    functionName: dns_session_free
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 1
    functionsReached:
    - pool_free
    - dns_queries_flush
    - MT_LIST_ISEMPTY
    - BUG_ON
    - LIST_DEL_INIT
    - task_destroy
    - eb_is_empty
    - LIST_ISEMPTY
    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:886,1
    - Dst: appctx_finalize_startup
      Src: /src/haproxy/src/dns.c:889,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/dns.c:892,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/dns.c:895,1
    - Dst: se_need_remote_conn
      Src: /src/haproxy/src/dns.c:901,1
    - Dst: applet_expect_no_data
      Src: /src/haproxy/src/dns.c:902,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 880
    functionDepth: 8
    functionLinenumber: 880
    functionLinenumberEnd: 909
    functionName: dns_session_init
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - sockaddr_alloc
    - stream_set_srv_target
    - appctx_finalize_startup
    - se_need_remote_conn
    - applet_expect_no_data
    - appctx_strm
    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:927,1
    - Dst: MT_LIST_DELETE
      Src: /src/haproxy/src/dns.c:928,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/dns.c:929,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/dns.c:933,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:934,1
    - Dst: dns_session_free
      Src: /src/haproxy/src/dns.c:937,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:938,1
    - Dst: dns_session_free
      Src: /src/haproxy/src/dns.c:950,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:951,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: LIST_INLIST
      Src: /src/haproxy/src/dns.c:969,1
    - Dst: dns_queries_flush
      Src: /src/haproxy/src/dns.c:976,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/dns.c:981,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/dns.c:988,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/dns.c:990,1
    - Dst: dns_session_create
      Src: /src/haproxy/src/dns.c:998,1
    - Dst: dns_session_free
      Src: /src/haproxy/src/dns.c:1000,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:1001,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/dns.c:1006,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:1008,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 914
    functionDepth: 3
    functionLinenumber: 914
    functionLinenumberEnd: 1009
    functionName: dns_session_release
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - MT_LIST_DELETE
    - dns_session_free
    - LIST_INSERT
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - dns_queries_flush
    - __ha_cpu_relax
    - LIST_DEL_INIT
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_CAS
    - HA_SPIN_LOCK
    - dns_session_create
    - HA_SPIN_UNLOCK
    - LIST_INLIST
    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:1033,1
    - Dst: appctx_init
      Src: /src/haproxy/src/dns.c:1039,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1040,1
    - Dst: appctx_schedule
      Src: /src/haproxy/src/dns.c:1045,1
    - Dst: tick_add
      Src: /src/haproxy/src/dns.c:1045,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/dns.c:1045,1
    - Dst: appctx_free_on_early_error
      Src: /src/haproxy/src/dns.c:1051,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 2
    argNames:
    - ds
    - tempo
    argTypes:
    - struct dns_session*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1029
    functionDepth: 2
    functionLinenumber: 1029
    functionLinenumberEnd: 1054
    functionName: dns_session_create
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 1
    functionsReached:
    - tick_add
    - appctx_schedule
    - appctx_init
    - ha_alert
    - MS_TO_TICKS
    - appctx_new_here
    - appctx_free_on_early_error
    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:1066,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/dns.c:1067,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/dns.c:1068,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/dns.c:1069,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:1070,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1080
    functionName: dns_process_query_exp
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - tick_is_expired
    - pool_free
    - list_for_each_entry_safe
    - eb32_delete
    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:1090,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/dns.c:1098,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:1103,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/dns.c:1109,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/dns.c:1112,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:1118,1
    - Dst: tick_add
      Src: /src/haproxy/src/dns.c:1120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1123
    functionName: dns_process_idle_exp
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - tick_add
    - list_for_each_entry_safe
    - LIST_DEL_INIT
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - __ha_barrier_store
    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:1132,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/dns.c:1135,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1141,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1142,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1143,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/dns.c:1152,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/dns.c:1156,1
    - Dst: dns_ring_init
      Src: /src/haproxy/src/dns.c:1160,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/dns.c:1162,1
    - Dst: dns_ring_attach
      Src: /src/haproxy/src/dns.c:1162,1
    - Dst: task_new_here
      Src: /src/haproxy/src/dns.c:1164,1
    - Dst: dns_session_create
      Src: /src/haproxy/src/dns.c:1170,1
    - Dst: task_destroy
      Src: /src/haproxy/src/dns.c:1179,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:1180,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:1181,1
    - Dst: pool_free
      Src: /src/haproxy/src/dns.c:1183,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - dss
    argTypes:
    - struct dns_stream_server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1125
    functionDepth: 3
    functionLinenumber: 1125
    functionLinenumberEnd: 1186
    functionName: dns_session_new
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - pool_free
    - task_new_here
    - pool_zalloc
    - HA_ATOMIC_LOAD
    - pool_alloc
    - LIST_INIT
    - DISGUISE
    - task_destroy
    - dns_session_create
    - dns_ring_init
    - dns_ring_attach
    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:1202,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/dns.c:1204,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:1214,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:1215,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:1216,1
    - Dst: b_orig
      Src: /src/haproxy/src/dns.c:1216,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:1222,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dns.c:1223,1
    - Dst: b_size
      Src: /src/haproxy/src/dns.c:1224,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:1226,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/dns.c:1227,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:1227,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:1229,1
    - Dst: b_peek_varint
      Src: /src/haproxy/src/dns.c:1233,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dns.c:1237,1
    - Dst: b_data
      Src: /src/haproxy/src/dns.c:1237,1
    - Dst: unlikely
      Src: /src/haproxy/src/dns.c:1238,1
    - Dst: b_getblk
      Src: /src/haproxy/src/dns.c:1244,1
    - Dst: ist2
      Src: /src/haproxy/src/dns.c:1246,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:1250,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/dns.c:1251,1
    - Dst: dns_ring_write
      Src: /src/haproxy/src/dns.c:1253,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:1256,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:1263,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/dns.c:1264,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dns.c:1270,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/dns.c:1271,1
    - Dst: dns_ring_write
      Src: /src/haproxy/src/dns.c:1274,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dns.c:1276,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/dns.c:1288,1
    - Dst: dns_session_new
      Src: /src/haproxy/src/dns.c:1296,1
    - Dst: dns_ring_write
      Src: /src/haproxy/src/dns.c:1299,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/dns.c:1301,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/dns.c:1313,1
    - Dst: b_peek
      Src: /src/haproxy/src/dns.c:1313,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/dns.c:1314,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/dns.c:1315,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/dns.c:1318,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1320
      start: 1193
    functionDepth: 4
    functionLinenumber: 1193
    functionLinenumberEnd: 1320
    functionName: dns_process_req
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - HA_ATOMIC_DEC
    - HA_ATOMIC_INC
    - unlikely
    - dns_ring_write
    - HA_SPIN_LOCK
    - b_peek
    - b_data
    - ist2
    - LIST_NEXT
    - HA_SPIN_UNLOCK
    - b_head_ofs
    - LIST_ISEMPTY
    - LIST_INSERT
    - b_peek_varint
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_APPEND
    - HA_RWLOCK_RDUNLOCK
    - b_getblk
    - b_size
    - HA_RWLOCK_RDLOCK
    - b_orig
    - dns_session_new
    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:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1333
    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:1340,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1342,1
    - Dst: dns_ring_new
      Src: /src/haproxy/src/dns.c:1350,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1352,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/dns.c:1356,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1357,1
    - Dst: dns_ring_attach
      Src: /src/haproxy/src/dns.c:1366,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1368,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/dns.c:1373,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1374,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/dns.c:1383,1
    - Dst: ha_alert
      Src: /src/haproxy/src/dns.c:1384,1
    - Dst: tick_add
      Src: /src/haproxy/src/dns.c:1391,1
    - Dst: task_queue
      Src: /src/haproxy/src/dns.c:1394,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1396,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1397,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dns.c:1398,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/dns.c:1399,1
    - Dst: task_destroy
      Src: /src/haproxy/src/dns.c:1404,1
    - Dst: task_destroy
      Src: /src/haproxy/src/dns.c:1406,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/dns.c:1408,1
    - Dst: free
      Src: /src/haproxy/src/dns.c:1410,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 2
    argNames:
    - ns
    - srv
    argTypes:
    - struct dns_nameserver*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1336
    functionDepth: 4
    functionLinenumber: 1336
    functionLinenumberEnd: 1412
    functionName: dns_stream_init
    functionSourceFile: /src/haproxy/src/dns.c
    functionUses: 0
    functionsReached:
    - tick_add
    - dns_ring_free
    - task_new_anywhere
    - dns_ring_new
    - task_queue
    - LIST_INIT
    - HA_SPIN_INIT
    - ha_alert
    - task_destroy
    - free
    - calloc
    - dns_ring_attach
    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:1416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1414
    functionDepth: 0
    functionLinenumber: 1414
    functionLinenumberEnd: 1421
    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:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1426
    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:
    - HTTP_IS_SPHT
    - htx_add_stline
    - b_head
    - htx_from_buf
    - htx_add_endof
    - b_free
    - quic_stream_is_bidi
    - b_data
    - find_http_meth
    - fprintf
    - qcs_attach_sc
    - HTTP_IS_LWS
    - b_contig_data
    - BUG_ON
    - HTTP_IS_TOKEN
    - ist
    - qcs_http_handle_standalone_fin
    - b_alloc
    - htx_to_buf
    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:
    - quic_stream_is_bidi
    - htx_free_data_space
    - __sc_strm
    - qcs_http_handle_standalone_fin
    - b_data
    - htx_add_stline
    - BUG_ON
    - htx_add_data
    - ist2
    - b_wrap
    - htx_from_buf
    - qcc_get_stream_rxbuf
    - b_head
    - htx_add_endof
    - ist
    - htx_to_buf
    - htx_is_empty
    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
    - hq_interop_rcv_buf_req
    - b_data
    - b_contig_data
    - BUG_ON
    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:
    - htx_get_head
    - unlikely
    - TRACE_DATA
    - htx_get_blk_ptr
    - htx_from_buf
    - ABORT_NOW
    - qcc_stream_can_send
    - b_data
    - htx_cut_data_blk
    - htx_get_blk_type
    - qcc_release_stream_txbuf
    - htx_get_blk
    - b_make
    - b_putblk
    - htx_nbblks
    - BUG_ON
    - htx_remove_blk
    - b_putist
    - b_contig_space
    - qcc_get_stream_txbuf
    - ist
    - htx_is_empty
    - htx_get_blksz
    - BUG_ON_HOT
    - htx_sl_req_uri
    - htx_to_buf
    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:
    - MIN
    - b_room
    - qcc_release_stream_txbuf
    - ABORT_NOW
    - 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: 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:
    - LIST_APPEND
    - list::list
    - arg_list_clone::arg_list_clone
    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
    - arg_list_add
    - str2mask6
    - parse_dotted_uints
    - ha_free
    - parse_time_err
    - parse_size_err
    - inet_pton
    - free
    - read_int64
    - memprintf
    - str2mask
    - free_args
    - calloc
    - chunk_reset
    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:
    - chunk_destroy
    - ha_free
    - 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:
    - EVP_PKEY_free
    - chunk_printf
    - EVP_PKEY_base_id
    - X509_get_pubkey
    - EVP_PKEY_bits
    linkageType: ''
    returnType: int
    signature: int cert_get_pkey_algo(X509 *crt, struct buffer *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: X509_get_serialNumber
      Src: /src/haproxy/src/ssl_utils.c:73,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - crt
    - out
    argTypes:
    - X509*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 83
    functionName: ssl_sock_get_serial
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - memcpy
    - X509_get_serialNumber
    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:94,1
    - Dst: i2d_X509
      Src: /src/haproxy/src/ssl_utils.c:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - crt
    - out
    argTypes:
    - X509*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 104
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:123,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - tm
    - out
    argTypes:
    - ASN1_TIME*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 143
    functionName: ssl_sock_get_time
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - 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:162,1
    - Dst: X509_NAME_get_entry
      Src: /src/haproxy/src/ssl_utils.c:171,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/haproxy/src/ssl_utils.c:172,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/haproxy/src/ssl_utils.c:173,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_utils.c:174,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:175,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_utils.c:176,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_utils.c:177,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/haproxy/src/ssl_utils.c:178,1
    - Dst: chunk_strcasecmp
      Src: /src/haproxy/src/ssl_utils.c:182,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:196,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 4
    argNames:
    - a
    - entry
    - pos
    - out
    argTypes:
    - X509_NAME*
    - struct buffer*
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 203
    functionName: ssl_sock_get_dn_entry
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached:
    - OBJ_obj2nid
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - OBJ_nid2sn
    - i2t_ASN1_OBJECT
    - X509_NAME_ENTRY_get_data
    - X509_NAME_ENTRY_get_object
    - X509_NAME_entry_count
    - X509_NAME_get_entry
    - memcpy
    - chunk_strcasecmp
    linkageType: ''
    returnType: int
    signature: "int ssl_sock_get_dn_entry(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:216,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_utils.c:217,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_utils.c:217,1
    - Dst: X509_NAME_print_ex
      Src: /src/haproxy/src/ssl_utils.c:221,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_utils.c:224,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:233,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 3
    argNames:
    - a
    - format
    - out
    argTypes:
    - X509_NAME*
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 235
    functionName: ssl_sock_get_dn_formatted
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - chunk_strcmp
    - BIO_new
    - X509_NAME_print_ex
    - BIO_read
    - BIO_free
    - BIO_s_mem
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_dn_formatted(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:255,1
    - Dst: X509_NAME_get_entry
      Src: /src/haproxy/src/ssl_utils.c:260,1
    - Dst: X509_NAME_ENTRY_get_object
      Src: /src/haproxy/src/ssl_utils.c:261,1
    - Dst: X509_NAME_ENTRY_get_data
      Src: /src/haproxy/src/ssl_utils.c:262,1
    - Dst: ASN1_STRING_get0_data
      Src: /src/haproxy/src/ssl_utils.c:263,1
    - Dst: ASN1_STRING_length
      Src: /src/haproxy/src/ssl_utils.c:264,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_utils.c:265,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_utils.c:266,1
    - Dst: i2t_ASN1_OBJECT
      Src: /src/haproxy/src/ssl_utils.c:267,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_utils.c:270,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:278,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_utils.c:281,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 2
    argNames:
    - a
    - out
    argTypes:
    - X509_NAME*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 289
    functionName: ssl_sock_get_dn_oneline
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - OBJ_obj2nid
    - ASN1_STRING_length
    - ASN1_STRING_get0_data
    - OBJ_nid2sn
    - i2t_ASN1_OBJECT
    - strlen
    - X509_NAME_ENTRY_get_data
    - X509_NAME_ENTRY_get_object
    - X509_NAME_entry_count
    - X509_NAME_get_entry
    - memcpy
    linkageType: ''
    returnType: int
    signature: int ssl_sock_get_dn_oneline(X509_NAME *a, struct buffer *out)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SSL_get_peer_certificate
      Src: /src/haproxy/src/ssl_utils.c:308,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_utils.c:312,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_utils.c:314,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 318
    functionName: ssl_sock_get_peer_certificate
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - X509_up_ref
    - 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:330,1
    - Dst: SSL_get0_verified_chain
      Src: /src/haproxy/src/ssl_utils.c:334,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_utils.c:338,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_utils.c:339,1
    - Dst: X509_check_issued
      Src: /src/haproxy/src/ssl_utils.c:341,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 346
    functionName: ssl_sock_get_verified_chain_root
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - X509_check_issued
    - STACK_OF
    - SSL_get0_verified_chain
    - sk_X509_value
    - sk_X509_num
    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:380,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_utils.c:385,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_utils.c:390,1
    - Dst: strncmp
      Src: /src/haproxy/src/ssl_utils.c:404,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_utils.c:406,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 429
    functionName: openssl_version_parser
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached:
    - strncmp
    - strtol
    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:439,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 3
    argNames:
    - input
    - len
    - output
    argTypes:
    - char*
    - int
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 448
    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: 463
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 463
    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: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    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:579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 585
    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: 605
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 605
    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:613,1
    - Dst: atoi
      Src: /src/haproxy/src/ssl_utils.c:615,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 617
    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: 20
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 1
    argNames:
    - d
    argTypes:
    - ASN1_GENERALIZEDTIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 629
    functionDepth: 0
    functionLinenumber: 629
    functionLinenumberEnd: 702
    functionName: asn1_generalizedtime_to_epoch
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached: []
    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:713,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_utils.c:715,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_utils.c:715,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_utils.c:717,1
    - Dst: X509_getm_notAfter
      Src: /src/haproxy/src/ssl_utils.c:717,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_utils.c:719,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:721,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:726,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 728
    functionName: x509_get_notafter
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_print
    - memset
    - BIO_new
    - BIO_read
    - BIO_free
    - X509_getm_notAfter
    - 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:739,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_utils.c:741,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_utils.c:741,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_utils.c:743,1
    - Dst: X509_getm_notBefore
      Src: /src/haproxy/src/ssl_utils.c:743,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_utils.c:745,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:747,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_utils.c:752,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 733
    functionDepth: 0
    functionLinenumber: 733
    functionLinenumberEnd: 754
    functionName: x509_get_notbefore
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_print
    - memset
    - X509_getm_notBefore
    - BIO_new
    - BIO_read
    - BIO_free
    - 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:763,1
    - Dst: my_timegm
      Src: /src/haproxy/src/ssl_utils.c:766,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - asn1_time
    argTypes:
    - ASN1_TIME*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 769
    functionName: ASN1_to_time_t
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 0
    functionsReached:
    - ASN1_TIME_to_tm
    - my_timegm
    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:777,1
    - Dst: ASN1_to_time_t
      Src: /src/haproxy/src/ssl_utils.c:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 772
    functionDepth: 3
    functionLinenumber: 772
    functionLinenumberEnd: 784
    functionName: x509_get_notafter_time_t
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 2
    functionsReached:
    - X509_getm_notAfter
    - ASN1_to_time_t
    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:792,1
    - Dst: ASN1_to_time_t
      Src: /src/haproxy/src/ssl_utils.c:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 799
    functionName: x509_get_notbefore_time_t
    functionSourceFile: /src/haproxy/src/ssl_utils.c
    functionUses: 1
    functionsReached:
    - ASN1_to_time_t
    - X509_getm_notBefore
    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: 811
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 811
    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: 910
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 910
    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: 921
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 921
    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: 923
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 923
    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:1003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 1008
    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: 1025
      start: 1013
    functionDepth: 0
    functionLinenumber: 1013
    functionLinenumberEnd: 1025
    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:1033,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_utils.c:1034,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 1
    argNames:
    - curve
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1039
    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:102,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:104,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/http_ana.c:104,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_ana.c:111,1
    - Dst: c_empty
      Src: /src/haproxy/src/http_ana.c:111,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:114,1
    - Dst: stream_abort
      Src: /src/haproxy/src/http_ana.c:122,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:125,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:128,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:132,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:133,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/http_ana.c:134,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:147,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/http_ana.c:148,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_ana.c:150,1
    - Dst: stream_inc_http_req_ctr
      Src: /src/haproxy/src/http_ana.c:161,1
    - Dst: proxy_inc_fe_req_ctr
      Src: /src/haproxy/src/http_ana.c:162,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_ana.c:167,1
    - Dst: htx_get_first_type
      Src: /src/haproxy/src/http_ana.c:167,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:170,1
    - Dst: http_debug_stline
      Src: /src/haproxy/src/http_ana.c:174,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_ana.c:176,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_ana.c:176,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_ana.c:177,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:178,1
    - Dst: http_debug_hdr
      Src: /src/haproxy/src/http_ana.c:185,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_ana.c:186,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_ana.c:187,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:210,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/http_ana.c:210,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:210,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:223,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:223,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:225,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:225,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ana.c:227,1
    - Dst: isteq
      Src: /src/haproxy/src/http_ana.c:228,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:228,1
    - Dst: isteq
      Src: /src/haproxy/src/http_ana.c:229,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:229,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:237,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:240,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:241,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:248,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:256,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:266,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/http_ana.c:267,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:270,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:281,1
    - Dst: http_fmt_req_line
      Src: /src/haproxy/src/http_ana.c:284,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/http_ana.c:288,1
    - Dst: log_orig
      Src: /src/haproxy/src/http_ana.c:288,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:290,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:304,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:304,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:308,1
    - Dst: http_capture_headers
      Src: /src/haproxy/src/http_ana.c:309,1
    - Dst: likely
      Src: /src/haproxy/src/http_ana.c:329,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:339,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:347,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:349,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:350,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:356,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:358,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:359,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:363,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:364,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:364,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:366,1
    CyclomaticComplexity: 60
    EdgeCount: 60
    ICount: 149
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 83
    functionDepth: 10
    functionLinenumber: 83
    functionLinenumberEnd: 369
    functionName: http_wait_for_request
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - isteq
    - unlikely
    - htx_get_blk_value
    - HTX_SL_REQ_VLEN
    - stream_inc_http_err_ctr
    - channel_dont_connect
    - htx_get_blk_name
    - http_get_stline
    - pool_alloc
    - HTX_SL_REQ_UPTR
    - htx_get_first_type
    - _HA_ATOMIC_INC
    - http_fmt_req_line
    - http_set_term_flags
    - log_orig
    - htx_get_blk_type
    - htx_get_next
    - stream_abort
    - likely
    - DBG_TRACE_ENTER
    - htx_get_blk
    - acl_match_cond
    - htxbuf
    - http_parse_path
    - htx_get_first
    - http_error_message
    - http_capture_headers
    - BUG_ON
    - htx_sl_req_meth
    - http_uri_parser_init
    - http_reply_and_close
    - isteqi
    - c_empty
    - ha_alert
    - log_orig_proxy
    - ist
    - IS_HTX_STRM
    - list_for_each_entry
    - struct stream*::do_log
    - DBG_TRACE_LEAVE
    - http_debug_hdr
    - http_debug_stline
    - istptr
    - HTX_SL_REQ_VPTR
    - stream_inc_http_req_ctr
    - proxy_inc_fe_req_ctr
    - stream_report_term_evt
    - htx_sl_req_uri
    - isttest
    - DBG_TRACE_DEVEL
    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:388,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:391,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:393,1
    - Dst: stream_inc_be_http_req_ctr
      Src: /src/haproxy/src/http_ana.c:398,1
    - Dst: http_req_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:410,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/http_ana.c:412,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/http_ana.c:412,1
    - Dst: http_req_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:413,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:434,1
    - Dst: http_req_restrict_header_names
      Src: /src/haproxy/src/http_ana.c:451,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:461,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:461,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:462,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ana.c:462,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:462,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:462,1
    - Dst: http_stats_check_uri
      Src: /src/haproxy/src/http_ana.c:473,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:475,1
    - Dst: sc_applet_create
      Src: /src/haproxy/src/http_ana.c:475,1
    - Dst: objt_applet
      Src: /src/haproxy/src/http_ana.c:475,1
    - Dst: http_handle_stats
      Src: /src/haproxy/src/http_ana.c:483,1
    - Dst: http_req_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:484,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:492,1
    - Dst: objt_applet
      Src: /src/haproxy/src/http_ana.c:492,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:495,1
    - Dst: http_handle_expect_hdr
      Src: /src/haproxy/src/http_ana.c:497,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:502,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/http_ana.c:504,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:518,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:519,1
    - Dst: http_apply_redirect_rule
      Src: /src/haproxy/src/http_ana.c:521,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:524,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:544,1
    - Dst: http_manage_client_side_cookies
      Src: /src/haproxy/src/http_ana.c:551,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/http_ana.c:558,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:563,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/http_ana.c:567,1
    - Dst: tick_add
      Src: /src/haproxy/src/http_ana.c:569,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_ana.c:570,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:572,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:574,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:576,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:577,1
    - Dst: http_manage_client_side_cookies
      Src: /src/haproxy/src/http_ana.c:585,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_ana.c:588,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:590,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:592,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:594,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:595,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:602,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:604,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:606,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:608,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:616,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:618,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:620,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:621,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:627,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:629,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:630,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:634,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:635,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:635,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:639,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:643,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:648,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:649,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:654,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:655,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: 658
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 658
    functionName: http_process_req_common
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - http_handle_expect_hdr
    - unlikely
    - stream_inc_http_err_ctr
    - http_handle_stats
    - channel_dont_connect
    - http_req_get_intercept_rule
    - _HA_ATOMIC_INC
    - http_apply_redirect_rule
    - objt_conn
    - http_set_term_flags
    - http_manage_client_side_cookies
    - tick_add_ifset
    - DBG_TRACE_ENTER
    - LIST_ISEMPTY
    - acl_match_cond
    - htxbuf
    - http_find_header
    - HAS_FILTERS
    - http_error_message
    - http_reply_and_close
    - http_req_restrict_header_names
    - ist
    - http_add_header
    - tick_add
    - sc_applet_create
    - list_for_each_entry
    - objt_applet
    - DBG_TRACE_LEAVE
    - http_stats_check_uri
    - stream_report_term_evt
    - DBG_TRACE_DEVEL
    - channel_htx_erase
    - stream_inc_be_http_req_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:670,1
    - Dst: strm_sess
      Src: /src/haproxy/src/http_ana.c:670,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:672,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:680,1
    - Dst: http_manage_client_side_cookies
      Src: /src/haproxy/src/http_ana.c:689,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/http_ana.c:696,1
    - Dst: stream_generate_unique_id
      Src: /src/haproxy/src/http_ana.c:697,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:699,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:706,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:707,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ana.c:707,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:712,1
    - Dst: http_handle_7239_header
      Src: /src/haproxy/src/http_ana.c:712,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:714,1
    - Dst: http_handle_xff_header
      Src: /src/haproxy/src/http_ana.c:714,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:716,1
    - Dst: http_handle_xot_header
      Src: /src/haproxy/src/http_ana.c:716,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/http_ana.c:722,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:732,1
    - Dst: conn_set_quickack
      Src: /src/haproxy/src/http_ana.c:745,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:756,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:763,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:765,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:767,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:769,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:777,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:779,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:781,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:782,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:784,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:785,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:785,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:787,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: 790
      start: 665
    functionDepth: 3
    functionLinenumber: 665
    functionLinenumberEnd: 790
    functionName: http_process_request
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - http_handle_7239_header
    - unlikely
    - channel_dont_connect
    - _HA_ATOMIC_INC
    - stream_generate_unique_id
    - objt_conn
    - http_set_term_flags
    - http_handle_xot_header
    - http_manage_client_side_cookies
    - strm_sess
    - DBG_TRACE_ENTER
    - http_handle_xff_header
    - htxbuf
    - HAS_FILTERS
    - http_error_message
    - lf_expr_isempty
    - conn_set_quickack
    - http_reply_and_close
    - http_add_header
    - DBG_TRACE_LEAVE
    - stream_report_term_evt
    - isttest
    - DBG_TRACE_DEVEL
    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:800,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:806,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/http_ana.c:808,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/http_ana.c:810,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:810,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:811,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/http_ana.c:823,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:825,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:826,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:827,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:827,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:829,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: 831
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 831
    functionName: http_process_tarpit
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_set_term_flags
    - tick_is_expired
    - ns_to_ms
    - http_error_message
    - DBG_TRACE_LEAVE
    - channel_dont_connect
    - http_reply_and_close
    - stream_report_term_evt
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    - channel_htx_erase
    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:846,1
    - Dst: http_wait_for_msg_body
      Src: /src/haproxy/src/http_ana.c:849,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:863,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:874,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/http_ana.c:878,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:879,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:888,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: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:893,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:899,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:901,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:902,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:906,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:907,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:907,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:911,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:915,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: 918
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 918
    functionName: http_wait_for_request_body
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - http_set_term_flags
    - http_error_message
    - http_wait_for_msg_body
    - DBG_TRACE_LEAVE
    - channel_dont_connect
    - http_reply_and_close
    - stream_report_term_evt
    - _HA_ATOMIC_INC
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    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:939,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:941,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:957,1
    - Dst: HAS_REQ_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:983,1
    - Dst: flt_http_payload
      Src: /src/haproxy/src/http_ana.c:984,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:987,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:990,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:990,1
    - Dst: channel_htx_forward_forever
      Src: /src/haproxy/src/http_ana.c:993,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:996,1
    - Dst: HAS_REQ_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:1015,1
    - Dst: flt_http_end
      Src: /src/haproxy/src/http_ana.c:1016,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:1034,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:1036,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:1043,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:1043,1
    - Dst: http_end_request
      Src: /src/haproxy/src/http_ana.c:1047,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:1049,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:1058,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:1059,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:1062,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:1068,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1070,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:1087,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:1087,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:1100,1
    - Dst: HAS_REQ_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:1110,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1113,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1119,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:1133,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:1149,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: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1156,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1162,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1164,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1165,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1170,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1173,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1176,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1176,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1178,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: 1181
      start: 930
    functionDepth: 2
    functionLinenumber: 930
    functionLinenumberEnd: 1181
    functionName: http_request_forward_body
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - http_end_request
    - co_data
    - _HA_ATOMIC_INC
    - http_set_term_flags
    - proxy_abrt_close_def
    - c_adv
    - DBG_TRACE_ENTER
    - HAS_REQ_DATA_FILTERS
    - htxbuf
    - channel_htx_forward_forever
    - http_error_message
    - channel_dont_close
    - flt_http_payload
    - channel_auto_close
    - http_reply_and_close
    - htx_is_empty
    - channel_auto_read
    - flt_http_end
    - DBG_TRACE_LEAVE
    - stream_report_term_evt
    - DBG_TRACE_DEVEL
    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:1193,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/http_ana.c:1196,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1196,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1199,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1202,1
    - Dst: stream_choose_redispatch
      Src: /src/haproxy/src/http_ana.c:1215,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/http_ana.c:1221,1
    - Dst: b_free
      Src: /src/haproxy/src/http_ana.c:1226,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:1229,1
    - Dst: b_set_data
      Src: /src/haproxy/src/http_ana.c:1230,1
    - Dst: b_size
      Src: /src/haproxy/src/http_ana.c:1230,1
    - Dst: b_xfer
      Src: /src/haproxy/src/http_ana.c:1231,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:1231,1
    - Dst: co_set_data
      Src: /src/haproxy/src/http_ana.c:1232,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1234,1
    - Dst: b_reset
      Src: /src/haproxy/src/http_ana.c:1236,1
    - Dst: co_set_data
      Src: /src/haproxy/src/http_ana.c:1237,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 41
    argCount: 2
    argNames:
    - s
    - sc
    argTypes:
    - struct stream*
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1185
    functionDepth: 8
    functionLinenumber: 1185
    functionLinenumberEnd: 1239
    functionName: do_l7_retry
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_DEC
    - stream_choose_redispatch
    - b_set_data
    - __objt_server
    - b_data
    - b_xfer
    - objt_server
    - sc_reset_endp
    - _HA_ATOMIC_INC
    - b_size
    - DBG_TRACE_DEVEL
    - co_set_data
    - b_free
    - b_reset
    linkageType: ''
    returnType: int
    signature: int do_l7_retry(struct stream *s, struct stconn *sc)
  - BBCount: 86
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:1265,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:1267,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1271,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1272,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1272,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1291,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:1291,1
    - Dst: sc_conn
      Src: /src/haproxy/src/http_ana.c:1294,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1296,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1297,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1297,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:1302,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1302,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1310,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1311,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1320,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1322,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1329,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1336,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1338,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1338,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1339,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1346,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1347,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1347,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:1351,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1351,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1352,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1358,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1360,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1363,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1368,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1370,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1370,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1371,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1380,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1382,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1384,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1386,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1392,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1394,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1394,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1397,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1404,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1405,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1405,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:1409,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1409,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1410,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1420,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1422,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1425,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1430,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1432,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1432,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1433,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/http_ana.c:1439,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1444,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1446,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1451,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1454,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1455,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:1460,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1462,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_ana.c:1471,1
    - Dst: htx_get_first_type
      Src: /src/haproxy/src/http_ana.c:1471,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:1472,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1478,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1480,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1480,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1482,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1482,1
    - Dst: l7_status_match
      Src: /src/haproxy/src/http_ana.c:1487,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1488,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1489,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1497,1
    - Dst: http_debug_stline
      Src: /src/haproxy/src/http_ana.c:1501,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/http_ana.c:1503,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_ana.c:1503,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_ana.c:1504,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:1505,1
    - Dst: http_debug_hdr
      Src: /src/haproxy/src/http_ana.c:1512,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_ana.c:1513,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_ana.c:1514,1
    - Dst: http_status_matches
      Src: /src/haproxy/src/http_ana.c:1539,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_ana.c:1540,1
    - Dst: http_status_matches
      Src: /src/haproxy/src/http_ana.c:1542,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1543,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1550,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1551,1
    - Dst: FLT_STRM_CB
      Src: /src/haproxy/src/http_ana.c:1563,1
    - Dst: flt_http_reset
      Src: /src/haproxy/src/http_ana.c:1563,1
    - Dst: channel_htx_fwd_headers
      Src: /src/haproxy/src/http_ana.c:1564,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1580,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:1581,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1581,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1621,1
    - Dst: http_capture_headers
      Src: /src/haproxy/src/http_ana.c:1622,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1625,1
    - Dst: sc_conn
      Src: /src/haproxy/src/http_ana.c:1647,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/http_ana.c:1649,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_ana.c:1649,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1654,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1656,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:1661,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http_ana.c:1668,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http_ana.c:1669,1
    - Dst: conn_set_owner
      Src: /src/haproxy/src/http_ana.c:1671,1
    - Dst: conn_set_private
      Src: /src/haproxy/src/http_ana.c:1672,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/http_ana.c:1674,1
    - Dst: b_free
      Src: /src/haproxy/src/http_ana.c:1682,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/http_ana.c:1685,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:1690,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:1691,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1696,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1698,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1700,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1702,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1706,1
    - Dst: do_l7_retry
      Src: /src/haproxy/src/http_ana.c:1712,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1713,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1719,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:1721,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:1724,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1725,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:1729,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1730,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:1730,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1733,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:1746,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:1747,1
    CyclomaticComplexity: 131
    EdgeCount: 131
    ICount: 293
    argCount: 3
    argNames:
    - s
    - rep
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1248
    functionDepth: 9
    functionLinenumber: 1248
    functionLinenumberEnd: 1750
    functionName: http_wait_for_response
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - co_data
    - unlikely
    - htx_get_blk_value
    - stream_inc_http_err_ctr
    - htx_get_blk_name
    - http_get_stline
    - session_add_conn
    - _HA_ATOMIC_INC
    - htx_get_first_type
    - LIST_INLIST
    - do_l7_retry
    - conn_set_owner
    - b_free
    - flt_http_reset
    - sc_ep_test
    - http_set_term_flags
    - strcmp
    - conn_set_private
    - strncasecmp
    - ns_to_ms
    - htx_get_blk_type
    - health_adjust
    - htx_get_next
    - DBG_TRACE_ENTER
    - htx_get_blk
    - htxbuf
    - http_find_header
    - stream_inc_http_fail_ctr
    - __objt_server
    - http_error_message
    - channel_dont_close
    - htx_get_first
    - BUG_ON
    - channel_htx_fwd_headers
    - http_capture_headers
    - channel_auto_close
    - http_reply_and_close
    - http_status_matches
    - htx_is_empty
    - ist
    - DBG_TRACE_LEAVE
    - http_debug_hdr
    - objt_server
    - http_debug_stline
    - stream_report_term_evt
    - l7_status_match
    - DBG_TRACE_DEVEL
    - FLT_STRM_CB
    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:1767,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/http_ana.c:1770,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:1772,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1777,1
    - Dst: objt_applet
      Src: /src/haproxy/src/http_ana.c:1777,1
    - Dst: http_res_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:1815,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:1832,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1854,1
    - Dst: http_manage_server_side_cookies
      Src: /src/haproxy/src/http_ana.c:1861,1
    - Dst: http_check_response_for_cacheability
      Src: /src/haproxy/src/http_ana.c:1867,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1872,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1887,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ana.c:1888,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ana.c:1893,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1893,1
    - Dst: s30tob64
      Src: /src/haproxy/src/http_ana.c:1898,1
    - Dst: s30tob64
      Src: /src/haproxy/src/http_ana.c:1907,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1914,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1918,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1921,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1924,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/http_ana.c:1927,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1929,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ana.c:1929,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1929,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:1929,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1933,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:1948,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_ana.c:1948,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1948,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:1948,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:1965,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1966,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1966,1
    - Dst: send_log
      Src: /src/haproxy/src/http_ana.c:1967,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:1969,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:1969,1
    - Dst: http_eval_after_res_rules
      Src: /src/haproxy/src/http_ana.c:1979,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/http_ana.c:1985,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/http_ana.c:1993,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/http_ana.c:1996,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/http_ana.c:2006,1
    - Dst: log_orig
      Src: /src/haproxy/src/http_ana.c:2006,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:2011,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2019,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2021,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2023,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2025,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2026,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2033,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2035,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2037,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2039,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: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2051,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2053,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2054,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:2060,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2062,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:2063,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2065,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:2066,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:2066,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2068,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:2072,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:2073,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:2073,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:2078,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2084,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:2089,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2090,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:2095,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2096,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: 2100
      start: 1757
    functionDepth: 10
    functionLinenumber: 1757
    functionLinenumberEnd: 2100
    functionName: http_process_res_common
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - unlikely
    - _HA_ATOMIC_INC
    - http_eval_after_res_rules
    - http_set_term_flags
    - chunk_printf
    - chunk_appendf
    - log_orig
    - health_adjust
    - ist2
    - DBG_TRACE_ENTER
    - http_manage_server_side_cookies
    - htxbuf
    - HAS_FILTERS
    - stream_inc_http_fail_ctr
    - __objt_server
    - http_error_message
    - lf_expr_isempty
    - channel_dont_close
    - http_reply_and_close
    - ha_alert
    - s30tob64
    - http_res_get_intercept_rule
    - log_orig_proxy
    - ist
    - http_add_header
    - http_check_response_for_cacheability
    - struct stream*::do_log
    - objt_applet
    - DBG_TRACE_LEAVE
    - objt_server
    - send_log
    - stream_report_term_evt
    - DBG_TRACE_DEVEL
    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:2139,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:2141,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:2152,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2170,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2179,1
    - Dst: flt_http_payload
      Src: /src/haproxy/src/http_ana.c:2180,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:2183,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:2186,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:2186,1
    - Dst: channel_htx_forward_forever
      Src: /src/haproxy/src/http_ana.c:2188,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:2191,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2215,1
    - Dst: flt_http_end
      Src: /src/haproxy/src/http_ana.c:2216,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:2235,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:2237,1
    - Dst: http_end_response
      Src: /src/haproxy/src/http_ana.c:2243,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:2245,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2248,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:2265,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2275,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/http_ana.c:2276,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:2286,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2290,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2296,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2298,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2300,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2302,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:2303,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2310,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2312,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2314,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2316,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2323,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2325,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2327,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2329,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2332,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2337,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:2338,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2340,1
    - Dst: health_adjust
      Src: /src/haproxy/src/http_ana.c:2341,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:2341,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:2343,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/http_ana.c:2344,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:2349,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:2350,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:2351,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:2352,1
    CyclomaticComplexity: 75
    EdgeCount: 75
    ICount: 170
    argCount: 3
    argNames:
    - s
    - res
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2355
      start: 2131
    functionDepth: 2
    functionLinenumber: 2131
    functionLinenumberEnd: 2355
    functionName: http_response_forward_body
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - co_data
    - _HA_ATOMIC_INC
    - http_end_response
    - http_set_term_flags
    - health_adjust
    - c_adv
    - DBG_TRACE_ENTER
    - HAS_RSP_DATA_FILTERS
    - htxbuf
    - channel_htx_forward_forever
    - stream_inc_http_fail_ctr
    - __objt_server
    - channel_dont_close
    - flt_http_payload
    - channel_auto_close
    - http_reply_and_close
    - htx_is_empty
    - flt_http_end
    - DBG_TRACE_LEAVE
    - objt_server
    - stream_report_term_evt
    - DBG_TRACE_DEVEL
    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:2373,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:2383,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2390,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:2392,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2392,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:2395,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:2396,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:2396,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:2397,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:2399,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2412,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2416,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:2421,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2426,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2427,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2428,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:2445,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:2446,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:2446,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:2447,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:2449,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2462,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2470,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:2476,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2482,1
    - Dst: memset
      Src: /src/haproxy/src/http_ana.c:2496,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2499,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:2504,1
    - Dst: memchr
      Src: /src/haproxy/src/http_ana.c:2521,1
    - Dst: b_tail
      Src: /src/haproxy/src/http_ana.c:2523,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:2525,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:2526,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:2526,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:2527,1
    - Dst: istptr
      Src: /src/haproxy/src/http_ana.c:2528,1
    - Dst: istend
      Src: /src/haproxy/src/http_ana.c:2529,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2539,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:2541,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2546,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2553,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2554,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2557,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2558,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2561,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2562,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2565,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2566,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2570,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2571,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_ana.c:2575,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:2577,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_ana.c:2579,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2579,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2585,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2585,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2585,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2586,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2586,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2590,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2590,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2590,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:2595,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2596,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2596,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2596,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:2599,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:2600,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2600,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_ana.c:2604,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_ana.c:2608,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:2612,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_ana.c:2614,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:2624,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_ana.c:2628,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:2634,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:2634,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: 2637
      start: 2362
    functionDepth: 4
    functionLinenumber: 2362
    functionLinenumberEnd: 2637
    functionName: http_apply_redirect_rule
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - free_trash_chunk
    - htx_add_stline
    - b_tail
    - http_get_stline
    - htx_from_buf
    - _HA_ATOMIC_INC
    - istend
    - htx_add_endof
    - alloc_trash_chunk
    - http_forward_proxy_resp
    - http_set_term_flags
    - channel_htx_truncate
    - ist2
    - htxbuf
    - http_find_header
    - memset
    - htx_add_header
    - http_parse_path
    - build_logline
    - http_uri_parser_init
    - chunk_memcat
    - ist
    - istptr
    - memchr
    - htx_sl_req_uri
    - isttest
    - htx_to_buf
    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:2651,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:2653,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_ana.c:2656,1
    - Dst: istlen
      Src: /src/haproxy/src/http_ana.c:2657,1
    - Dst: isalnum
      Src: /src/haproxy/src/http_ana.c:2660,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/http_ana.c:2669,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/http_ana.c:2676,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: 2685
      start: 2646
    functionDepth: 1
    functionLinenumber: 2646
    functionLinenumberEnd: 2685
    functionName: http_req_restrict_header_names
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - isalnum
    - istlen
    - htx_get_blk_type
    - htx_get_blk_name
    - htx_remove_blk
    - htx_get_next_blk
    - htx_get_first_blk
    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:2698,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/http_ana.c:2699,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/http_ana.c:2701,1
    - Dst: exp_replace
      Src: /src/haproxy/src/http_ana.c:2704,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_ana.c:2707,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2707,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: 2711
      start: 2692
    functionDepth: 3
    functionLinenumber: 2692
    functionLinenumberEnd: 2711
    functionName: http_replace_hdrs
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - http_find_header
    - get_trash_chunk
    - http_replace_header_value
    - ist2
    - regex_exec_match2
    - exp_replace
    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:2730,1
    - Dst: http_replace_req_meth
      Src: /src/haproxy/src/http_ana.c:2734,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2734,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_ana.c:2739,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2739,1
    - Dst: http_replace_req_query
      Src: /src/haproxy/src/http_ana.c:2744,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2744,1
    - Dst: http_replace_req_uri
      Src: /src/haproxy/src/http_ana.c:2749,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2749,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_ana.c:2754,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2754,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: 2762
      start: 2727
    functionDepth: 5
    functionLinenumber: 2727
    functionLinenumberEnd: 2762
    functionName: http_req_replace_stline
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 8
    functionsReached:
    - htxbuf
    - ist2
    - http_replace_req_path
    - http_replace_req_meth
    - http_replace_req_uri
    - http_replace_req_query
    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:2770,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_ana.c:2773,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/http_ana.c:2774,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:2778,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/http_ana.c:2779,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:2780,1
    - Dst: http_replace_res_status
      Src: /src/haproxy/src/http_ana.c:2783,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:2783,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: 2787
      start: 2768
    functionDepth: 3
    functionLinenumber: 2768
    functionLinenumberEnd: 2787
    functionName: http_res_set_status
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - htxbuf
    - http_replace_res_status
    - http_get_reason
    - ultoa_o
    - ist2
    - isttest
    - ist
    - chunk_reset
    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:2801,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:2809,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:2835,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/http_ana.c:2844,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:2849,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/http_ana.c:2855,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/http_ana.c:2864,1
    - Dst: send_log
      Src: /src/haproxy/src/http_ana.c:2875,1
    - Dst: http_apply_redirect_rule
      Src: /src/haproxy/src/http_ana.c:2944,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 148
    argCount: 4
    argNames:
    - px
    - def_rules
    - rules
    - s
    argTypes:
    - struct proxy*
    - struct list*
    - struct list*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2798
    functionDepth: 10
    functionLinenumber: 2798
    functionLinenumberEnd: 2973
    functionName: http_req_get_intercept_rule
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - acl_match_cond
    - http_apply_redirect_rule
    - list_for_each_entry
    - task_wakeup
    - proxy_abrt_close_def
    - send_log
    - strm_sess
    - struct act_rule*::action_ptr
    - mark_tainted
    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:2987,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:2997,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:3024,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/http_ana.c:3033,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:3038,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/http_ana.c:3044,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/http_ana.c:3053,1
    - Dst: send_log
      Src: /src/haproxy/src/http_ana.c:3064,1
    - Dst: http_apply_redirect_rule
      Src: /src/haproxy/src/http_ana.c:3124,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 141
    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: 3152
      start: 2984
    functionDepth: 10
    functionLinenumber: 2984
    functionLinenumberEnd: 3152
    functionName: http_res_get_intercept_rule
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - acl_match_cond
    - http_apply_redirect_rule
    - list_for_each_entry
    - task_wakeup
    - proxy_abrt_close_def
    - send_log
    - strm_sess
    - struct act_rule*::action_ptr
    - mark_tainted
    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:3171,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/http_ana.c:3172,1
    - Dst: http_res_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:3178,1
    - Dst: http_res_get_intercept_rule
      Src: /src/haproxy/src/http_ana.c:3182,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3188
      start: 3159
    functionDepth: 11
    functionLinenumber: 3159
    functionLinenumberEnd: 3188
    functionName: http_eval_after_res_rules
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - vars_prune
    - http_res_get_intercept_rule
    - vars_init_head
    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:3206,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3208,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3208,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3271,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3281,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3293,1
    - Dst: http_find_cookie_value_end
      Src: /src/haproxy/src/http_ana.c:3297,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3301,1
    - Dst: http_del_hdr_value
      Src: /src/haproxy/src/http_ana.c:3323,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:3338,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3343,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3350,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3369,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:3372,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:3373,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_ana.c:3377,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3392,1
    - Dst: memchr
      Src: /src/haproxy/src/http_ana.c:3426,1
    - Dst: b64tos30
      Src: /src/haproxy/src/http_ana.c:3436,1
    - Dst: memchr
      Src: /src/haproxy/src/http_ana.c:3441,1
    - Dst: b64tos30
      Src: /src/haproxy/src/http_ana.c:3443,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3491,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/http_ana.c:3499,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3532,1
    - Dst: http_del_hdr_value
      Src: /src/haproxy/src/http_ana.c:3553,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/http_ana.c:3582,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_ana.c:3584,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 170
    argCount: 2
    argNames:
    - s
    - req
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3587
      start: 3196
    functionDepth: 2
    functionLinenumber: 3196
    functionLinenumberEnd: 3587
    functionName: http_manage_client_side_cookies
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - HTTP_IS_SPHT
    - htxbuf
    - http_find_header
    - http_find_cookie_value_end
    - stream_set_srv_target
    - unlikely
    - htx_change_blk_value_len
    - memmove
    - memcmp
    - http_del_hdr_value
    - pool_alloc
    - http_remove_header
    - memchr
    - ha_alert
    - b64tos30
    - memcpy
    - ist
    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:3604,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3607,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3607,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3671,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3682,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3695,1
    - Dst: http_find_cookie_value_end
      Src: /src/haproxy/src/http_ana.c:3699,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:3703,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:3729,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3734,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:3741,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/http_ana.c:3751,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3763,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:3765,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:3766,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_ana.c:3771,1
    - Dst: objt_server
      Src: /src/haproxy/src/http_ana.c:3776,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:3780,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_ana.c:3800,1
    - Dst: http_del_hdr_value
      Src: /src/haproxy/src/http_ana.c:3806,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:3820,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_ana.c:3822,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:3822,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:3838,1
    - Dst: http_replace_header_value
      Src: /src/haproxy/src/http_ana.c:3840,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:3840,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 115
    argCount: 2
    argNames:
    - s
    - res
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3859
      start: 3594
    functionDepth: 3
    functionLinenumber: 3594
    functionLinenumberEnd: 3859
    functionName: http_manage_server_side_cookies
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - HTTP_IS_SPHT
    - htxbuf
    - http_find_header
    - http_find_cookie_value_end
    - unlikely
    - memmove
    - memcmp
    - http_del_hdr_value
    - objt_server
    - http_replace_header_value
    - ist2
    - pool_alloc
    - http_remove_header
    - ha_alert
    - htx_change_blk_value_len
    - memcpy
    - ist
    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:3876,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3880,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3880,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3881,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3881,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3889,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3889,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3898,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3898,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3902,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3902,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3903,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3903,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3904,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3904,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3905,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3905,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3909,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3909,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 29
    argCount: 2
    argNames:
    - s
    - req
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3925
      start: 3866
    functionDepth: 1
    functionLinenumber: 3866
    functionLinenumberEnd: 3925
    functionName: http_check_request_for_cacheability
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_find_header
    - istmatchi
    - isteqi
    - ist
    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:3945,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3947,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3947,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3948,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3948,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:3957,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3957,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3958,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3958,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3964,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3964,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3969,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3969,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3970,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3970,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3971,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3971,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:3972,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3972,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3977,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3977,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3982,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3982,1
    - Dst: istmatchi
      Src: /src/haproxy/src/http_ana.c:3987,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:3987,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:4003,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4003,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:4011,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4011,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_ana.c:4013,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4013,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 58
    argCount: 2
    argNames:
    - s
    - res
    argTypes:
    - struct stream*
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4022
      start: 3930
    functionDepth: 1
    functionLinenumber: 3930
    functionLinenumberEnd: 4022
    functionName: http_check_response_for_cacheability
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - htxbuf
    - http_find_header
    - istmatchi
    - isteqi
    - ist
    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:4046,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:4047,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:4048,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:4050,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:4051,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4058,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: 4062
      start: 4033
    functionDepth: 4
    functionLinenumber: 4033
    functionLinenumberEnd: 4062
    functionName: http_stats_check_uri
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - htxbuf
    - http_parse_path
    - memcmp
    - http_uri_parser_init
    - http_get_stline
    - 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:4080,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/http_ana.c:4081,1
    - Dst: watcher_init
      Src: /src/haproxy/src/http_ana.c:4093,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4095,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:4096,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:4097,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:4098,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/src/http_ana.c:4098,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4101,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4108,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4116,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4124,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4131,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4139,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4147,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4155,1
    - Dst: strncmp
      Src: /src/haproxy/src/http_ana.c:4160,1
    - Dst: memcmp
      Src: /src/haproxy/src/http_ana.c:4172,1
    - Dst: strlen
      Src: /src/haproxy/src/http_ana.c:4172,1
    - Dst: strlen
      Src: /src/haproxy/src/http_ana.c:4178,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/src/http_ana.c:4180,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_ana.c:4193,1
    - Dst: invalid_char
      Src: /src/haproxy/src/http_ana.c:4195,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:4206,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/http_ana.c:4207,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 125
    argCount: 3
    argNames:
    - s
    - req
    - px
    argTypes:
    - struct stream*
    - struct channel*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4239
      start: 4072
    functionDepth: 2
    functionLinenumber: 4072
    functionLinenumberEnd: 4239
    functionName: http_handle_stats
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - acl_match_cond
    - htxbuf
    - list_for_each_entry
    - memcmp
    - strncmp
    - invalid_char
    - watcher_init
    - HTX_SL_REQ_ULEN
    - strlen
    - http_get_stline
    - __sc_appctx
    - HTX_SL_REQ_UPTR
    - applet_reserve_svcctx
    - memcpy
    linkageType: ''
    returnType: int
    signature: int http_handle_stats(struct stream *s, struct channel *req, struct
      proxy *px)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4265,1
    - Dst: http_handle_expect_hdr
      Src: /src/haproxy/src/http_ana.c:4281,1
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/http_ana.c:4291,1
    - Dst: channel_htx_full
      Src: /src/haproxy/src/http_ana.c:4292,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/http_ana.c:4293,1
    - Dst: chn_prod
      Src: /src/haproxy/src/http_ana.c:4293,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/src/http_ana.c:4300,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/http_ana.c:4300,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:4301,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/http_ana.c:4303,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/http_ana.c:4309,1
    - Dst: chn_prod
      Src: /src/haproxy/src/http_ana.c:4316,1
    - Dst: tick_isset
      Src: /src/haproxy/src/http_ana.c:4317,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/http_ana.c:4318,1
    - Dst: http_set_term_flags
      Src: /src/haproxy/src/http_ana.c:4328,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:4329,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4329,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:4338,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_ana.c:4340,1
    - Dst: stream_inc_http_fail_ctr
      Src: /src/haproxy/src/http_ana.c:4347,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 78
    argCount: 4
    argNames:
    - s
    - chn
    - time
    - bytes
    argTypes:
    - struct stream*
    - struct channel*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4349
      start: 4256
    functionDepth: 1
    functionLinenumber: 4256
    functionLinenumberEnd: 4349
    functionName: http_wait_for_msg_body
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - htxbuf
    - htx_get_blksz
    - http_handle_expect_hdr
    - http_set_term_flags
    - tick_is_expired
    - _HA_ATOMIC_INC
    - http_error_message
    - stream_inc_http_fail_ctr
    - channel_htx_full
    - htx_get_blk_type
    - htx_get_tail_type
    - chn_prod
    - htx_get_first_blk
    - tick_isset
    - htx_get_next_blk
    - http_reply_and_close
    - tick_add_ifset
    - sc_waiting_room
    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)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_ana.c:4365,1
    - Dst: __objt_server
      Src: /src/haproxy/src/http_ana.c:4369,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:4371,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4376,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_ana.c:4377,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_ana.c:4378,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:4378,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_ana.c:4379,1
    - Dst: isttest
      Src: /src/haproxy/src/http_ana.c:4380,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:4383,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:4385,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/http_ana.c:4390,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_ana.c:4392,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4393,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4393,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4393,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4399,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4399,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4399,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4400,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4400,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4400,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4401,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4401,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_ana.c:4404,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_ana.c:4408,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_ana.c:4415,1
    - Dst: sc_abort
      Src: /src/haproxy/src/http_ana.c:4419,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/http_ana.c:4420,1
    - Dst: srv_inc_sess_ctr
      Src: /src/haproxy/src/http_ana.c:4426,1
    - Dst: srv_set_sess_last
      Src: /src/haproxy/src/http_ana.c:4427,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:4433,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 49
    argCount: 2
    argNames:
    - s
    - sc
    argTypes:
    - struct stream*
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4434
      start: 4351
    functionDepth: 4
    functionLinenumber: 4351
    functionLinenumberEnd: 4434
    functionName: http_perform_server_redirect
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - htx_add_stline
    - http_get_stline
    - srv_inc_sess_ctr
    - htx_from_buf
    - htx_add_endof
    - http_forward_proxy_resp
    - channel_htx_truncate
    - ist2
    - srv_set_sess_last
    - htxbuf
    - htx_add_header
    - __objt_server
    - http_parse_path
    - http_uri_parser_init
    - chunk_memcat
    - ist
    - sc_abort
    - htx_sl_req_uri
    - sc_shutdown
    - isttest
    - htx_to_buf
    - chunk_reset
    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:4444,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:4446,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:4447,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:4460,1
    - Dst: channel_dont_read
      Src: /src/haproxy/src/http_ana.c:4461,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:4481,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4494,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/http_ana.c:4513,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/http_ana.c:4514,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4525,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:4529,1
    - Dst: proxy_abrt_close_def
      Src: /src/haproxy/src/http_ana.c:4539,1
    - Dst: channel_dont_read
      Src: /src/haproxy/src/http_ana.c:4540,1
    - Dst: HAS_REQ_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:4556,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:4559,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4559,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4559,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:4561,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4562,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:4563,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 72
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4564
      start: 4439
    functionDepth: 1
    functionLinenumber: 4439
    functionLinenumberEnd: 4564
    functionName: http_end_request
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - sc_schedule_abort
    - htxbuf
    - channel_auto_read
    - sc_schedule_shutdown
    - co_data
    - unlikely
    - channel_dont_read
    - DBG_TRACE_LEAVE
    - proxy_abrt_close_def
    - channel_auto_close
    - c_adv
    - DBG_TRACE_ENTER
    - DBG_TRACE_DEVEL
    - HAS_REQ_DATA_FILTERS
    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:4575,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:4577,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:4578,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/http_ana.c:4596,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4606,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/http_ana.c:4616,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/http_ana.c:4617,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4628,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:4632,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:4639,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4639,1
    - Dst: channel_abort
      Src: /src/haproxy/src/http_ana.c:4640,1
    - Dst: HAS_RSP_DATA_FILTERS
      Src: /src/haproxy/src/http_ana.c:4656,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:4659,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4659,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4659,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:4661,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4662,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/http_ana.c:4663,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 63
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4664
      start: 4570
    functionDepth: 1
    functionLinenumber: 4570
    functionLinenumberEnd: 4664
    functionName: http_end_response
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - sc_schedule_abort
    - htxbuf
    - channel_auto_read
    - sc_schedule_shutdown
    - co_data
    - unlikely
    - channel_abort
    - DBG_TRACE_LEAVE
    - channel_htx_truncate
    - channel_auto_close
    - c_adv
    - DBG_TRACE_ENTER
    - HAS_RSP_DATA_FILTERS
    - DBG_TRACE_DEVEL
    linkageType: ''
    returnType: void
    signature: void http_end_response(struct stream *s)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4677,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/http_ana.c:4684,1
    - Dst: http_eval_after_res_rules
      Src: /src/haproxy/src/http_ana.c:4684,1
    - Dst: htx_skip_msg_payload
      Src: /src/haproxy/src/http_ana.c:4688,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4690,1
    - Dst: channel_abort
      Src: /src/haproxy/src/http_ana.c:4691,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/http_ana.c:4692,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4692,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4694,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:4695,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/http_ana.c:4696,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4698,1
    - Dst: co_data
      Src: /src/haproxy/src/http_ana.c:4707,1
    - Dst: c_adv
      Src: /src/haproxy/src/http_ana.c:4708,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - s
    - final
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4712
      start: 4673
    functionDepth: 12
    functionLinenumber: 4673
    functionLinenumberEnd: 4712
    functionName: http_forward_proxy_resp
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 3
    functionsReached:
    - sc_schedule_abort
    - htxbuf
    - channel_auto_read
    - co_data
    - htx_skip_msg_payload
    - channel_abort
    - channel_auto_close
    - c_adv
    - http_eval_after_res_rules
    - channel_htx_erase
    - htx_is_empty
    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:4722,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: 4723
      start: 4714
    functionDepth: 1
    functionLinenumber: 4714
    functionLinenumberEnd: 4723
    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:4728,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4728,1
    - Dst: http_reply_message
      Src: /src/haproxy/src/http_ana.c:4732,1
    - Dst: http_reply_and_close
      Src: /src/haproxy/src/http_ana.c:4744,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4744,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4755,1
    - Dst: channel_abort
      Src: /src/haproxy/src/http_ana.c:4756,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/http_ana.c:4757,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_ana.c:4757,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/http_ana.c:4758,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/http_ana.c:4759,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/http_ana.c:4760,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: 4761
      start: 4725
    functionDepth: 1
    functionLinenumber: 4725
    functionLinenumberEnd: 4761
    functionName: http_reply_and_close
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 14
    functionsReached:
    - sc_schedule_abort
    - htxbuf
    - channel_auto_read
    - http_reply_message
    - http_error_message
    - channel_abort
    - channel_htx_truncate
    - channel_auto_close
    - http_reply_and_close
    - channel_htx_erase
    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:4765,1
    - Dst: strm_fe
      Src: /src/haproxy/src/http_ana.c:4771,1
    - Dst: strm_fe
      Src: /src/haproxy/src/http_ana.c:4772,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4775
      start: 4763
    functionDepth: 1
    functionLinenumber: 4763
    functionLinenumberEnd: 4775
    functionName: http_error_message
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 11
    functionsReached:
    - strm_fe
    - http_get_status_idx
    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:4807,1
    - Dst: b_is_null
      Src: /src/haproxy/src/http_ana.c:4817,1
    - Dst: htx_copy_msg
      Src: /src/haproxy/src/http_ana.c:4818,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4830,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:4833,1
    - Dst: ultoa
      Src: /src/haproxy/src/http_ana.c:4837,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/http_ana.c:4838,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4840,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_ana.c:4842,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4842,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4842,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4842,1
    - Dst: ultoa
      Src: /src/haproxy/src/http_ana.c:4847,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4847,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/http_ana.c:4850,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4852,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/http_ana.c:4857,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_ana.c:4858,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_ana.c:4859,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4860,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4860,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:4860,1
    - Dst: b_head
      Src: /src/haproxy/src/http_ana.c:4860,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4860,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4861,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/http_ana.c:4864,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4866,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4869,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4869,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4869,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4870,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_ana.c:4870,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4870,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:4870,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_ana.c:4871,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4872,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/src/http_ana.c:4872,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:4872,1
    - Dst: b_head
      Src: /src/haproxy/src/http_ana.c:4872,1
    - Dst: b_data
      Src: /src/haproxy/src/http_ana.c:4872,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_ana.c:4880,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: 4890
      start: 4782
    functionDepth: 2
    functionLinenumber: 4782
    functionLinenumberEnd: 4890
    functionName: http_reply_to_htx
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - htx_add_data_atonce
    - free_trash_chunk
    - htx_add_stline
    - http_get_reason
    - b_head
    - htx_add_endof
    - alloc_trash_chunk
    - b_data
    - b_is_null
    - ist2
    - ultoa
    - LIST_ISEMPTY
    - htx_add_header
    - build_logline
    - http_error_message
    - ist
    - list_for_each_entry
    - htx_copy_msg
    - chunk_reset
    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:4902,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:4906,1
    - Dst: http_reply_to_htx
      Src: /src/haproxy/src/http_ana.c:4908,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_ana.c:4911,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_ana.c:4912,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:4917,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - s
    - reply
    argTypes:
    - struct stream*
    - struct http_reply*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4921
      start: 4899
    functionDepth: 13
    functionLinenumber: 4899
    functionLinenumberEnd: 4921
    functionName: http_reply_message
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - http_reply_to_htx
    - channel_htx_truncate
    - htx_from_buf
    - http_forward_proxy_resp
    - htx_to_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:4941,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:4945,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:4949,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4950,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:4954,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4955,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:4959,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4961,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:4965,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4967,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:4971,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4973,1
    - Dst: http_server_error
      Src: /src/haproxy/src/http_ana.c:4977,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_ana.c:4978,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 2
    argNames:
    - s
    - sc
    argTypes:
    - struct stream*
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4980
      start: 4934
    functionDepth: 2
    functionLinenumber: 4934
    functionLinenumberEnd: 4980
    functionName: http_return_srv_error
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - http_error_message
    - http_server_error
    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:4999,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:5000,1
    - Dst: isteqi
      Src: /src/haproxy/src/http_ana.c:5000,1
    - Dst: ist2
      Src: /src/haproxy/src/http_ana.c:5000,1
    - Dst: http_reply_100_continue
      Src: /src/haproxy/src/http_ana.c:5001,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_ana.c:5003,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: 5008
      start: 4986
    functionDepth: 2
    functionLinenumber: 4986
    functionLinenumberEnd: 5008
    functionName: http_handle_expect_hdr
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - http_find_header
    - unlikely
    - ist2
    - http_remove_header
    - isteqi
    - 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:5016,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_ana.c:5021,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:5022,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:5022,1
    - Dst: ist
      Src: /src/haproxy/src/http_ana.c:5022,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_ana.c:5027,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_ana.c:5030,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_ana.c:5037,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5039
      start: 5013
    functionDepth: 13
    functionLinenumber: 5013
    functionLinenumberEnd: 5039
    functionName: http_reply_100_continue
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - htx_add_stline
    - channel_htx_truncate
    - htx_from_buf
    - htx_add_endof
    - http_forward_proxy_resp
    - ist
    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:5051,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/http_ana.c:5051,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/http_ana.c:5052,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/http_ana.c:5053,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/http_ana.c:5061,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/http_ana.c:5065,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:5068,1
    - Dst: ha_alert
      Src: /src/haproxy/src/http_ana.c:5071,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/http_ana.c:5075,1
    - Dst: isttrim
      Src: /src/haproxy/src/http_ana.c:5076,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_ana.c:5078,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: 5083
      start: 5046
    functionDepth: 1
    functionLinenumber: 5046
    functionLinenumberEnd: 5083
    functionName: http_capture_headers
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - isttrim
    - htx_get_blk_value
    - strncasecmp
    - htx_get_first
    - htx_get_blk_type
    - htx_get_blk_name
    - pool_alloc
    - htx_get_next
    - ha_alert
    - htx_get_blk
    - memcpy
    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:5112,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:5117,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/http_ana.c:5128,1
    - Dst: memmove
      Src: /src/haproxy/src/http_ana.c:5132,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - start
    - end
    - from
    - next
    argTypes:
    - char*
    - char*
    - char**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5134
      start: 5102
    functionDepth: 1
    functionLinenumber: 5102
    functionLinenumberEnd: 5134
    functionName: http_del_hdr_value
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - HTTP_IS_SPHT
    - memmove
    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:5142,1
    - Dst: istcat
      Src: /src/haproxy/src/http_ana.c:5144,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/http_ana.c:5144,1
    - Dst: istcat
      Src: /src/haproxy/src/http_ana.c:5150,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_ana.c:5150,1
    - Dst: istcat
      Src: /src/haproxy/src/http_ana.c:5156,1
    - Dst: htx_sl_req_vsn
      Src: /src/haproxy/src/http_ana.c:5156,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: 5159
      start: 5140
    functionDepth: 1
    functionLinenumber: 5140
    functionLinenumberEnd: 5159
    functionName: http_fmt_req_line
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - istcat
    - ist2
    - htx_sl_req_meth
    - htx_sl_req_vsn
    - 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:5166,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ana.c:5169,1
    - Dst: objt_conn
      Src: /src/haproxy/src/http_ana.c:5171,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/http_ana.c:5171,1
    - Dst: sc_conn
      Src: /src/haproxy/src/http_ana.c:5172,1
    - Dst: __sc_conn
      Src: /src/haproxy/src/http_ana.c:5172,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/http_ana.c:5174,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5175,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5176,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/http_ana.c:5176,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/http_ana.c:5179,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5180,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5181,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/http_ana.c:5181,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/http_ana.c:5184,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5185,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5186,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/http_ana.c:5186,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/http_ana.c:5189,1
    - Dst: write
      Src: /src/haproxy/src/http_ana.c:5189,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: 5190
      start: 5164
    functionDepth: 1
    functionLinenumber: 5164
    functionLinenumberEnd: 5190
    functionName: http_debug_stline
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - sc_conn
    - HTX_SL_P2_PTR
    - __objt_conn
    - objt_conn
    - chunk_printf
    - HTX_SL_P2_LEN
    - HTX_SL_P1_PTR
    - HTX_SL_P3_LEN
    - __sc_conn
    - HTX_SL_P1_LEN
    - DISGUISE
    - HTX_SL_P3_PTR
    - UBOUND
    - strm_sess
    - chunk_memcat
    - write
    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:5197,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_ana.c:5200,1
    - Dst: objt_conn
      Src: /src/haproxy/src/http_ana.c:5202,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/http_ana.c:5202,1
    - Dst: sc_conn
      Src: /src/haproxy/src/http_ana.c:5203,1
    - Dst: __sc_conn
      Src: /src/haproxy/src/http_ana.c:5203,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5206,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5207,1
    - Dst: UBOUND
      Src: /src/haproxy/src/http_ana.c:5212,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/http_ana.c:5213,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/http_ana.c:5216,1
    - Dst: write
      Src: /src/haproxy/src/http_ana.c:5216,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: 5217
      start: 5195
    functionDepth: 1
    functionLinenumber: 5195
    functionLinenumberEnd: 5217
    functionName: http_debug_hdr
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 2
    functionsReached:
    - sc_conn
    - __objt_conn
    - objt_conn
    - chunk_printf
    - __sc_conn
    - DISGUISE
    - UBOUND
    - strm_sess
    - chunk_memcat
    - write
    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: 5223
      start: 5219
    functionDepth: 0
    functionLinenumber: 5219
    functionLinenumberEnd: 5223
    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: 5229
      start: 5225
    functionDepth: 0
    functionLinenumber: 5225
    functionLinenumberEnd: 5229
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_ana.c:5241,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/http_ana.c:5247,1
    - Dst: write_u32
      Src: /src/haproxy/src/http_ana.c:5252,1
    - Dst: http_txn_reset_req
      Src: /src/haproxy/src/http_ana.c:5261,1
    - Dst: http_txn_reset_res
      Src: /src/haproxy/src/http_ana.c:5262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5275
      start: 5236
    functionDepth: 1
    functionLinenumber: 5236
    functionLinenumberEnd: 5275
    functionName: http_create_txn
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 1
    functionsReached:
    - sc_ep_test
    - write_u32
    - http_txn_reset_res
    - pool_alloc
    - http_txn_reset_req
    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:5283,1
    - Dst: pool_free
      Src: /src/haproxy/src/http_ana.c:5284,1
    - Dst: pool_free
      Src: /src/haproxy/src/http_ana.c:5285,1
    - Dst: pool_free
      Src: /src/haproxy/src/http_ana.c:5286,1
    - Dst: vars_prune
      Src: /src/haproxy/src/http_ana.c:5293,1
    - Dst: vars_prune
      Src: /src/haproxy/src/http_ana.c:5294,1
    - Dst: b_free
      Src: /src/haproxy/src/http_ana.c:5296,1
    - Dst: pool_free
      Src: /src/haproxy/src/http_ana.c:5298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5300
      start: 5278
    functionDepth: 1
    functionLinenumber: 5278
    functionLinenumberEnd: 5300
    functionName: http_destroy_txn
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 0
    functionsReached:
    - pool_free
    - vars_prune
    - b_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:5321,1
    - Dst: unlikely
      Src: /src/haproxy/src/http_ana.c:5322,1
    - Dst: objt_applet
      Src: /src/haproxy/src/http_ana.c:5322,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5347
      start: 5303
    functionDepth: 1
    functionLinenumber: 5303
    functionLinenumberEnd: 5347
    functionName: http_set_term_flags
    functionSourceFile: /src/haproxy/src/http_ana.c
    functionUses: 12
    functionsReached:
    - objt_applet
    - sc_state_in
    - unlikely
    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: 8
    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
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 18
    argCount: 2
    argNames:
    - h1m
    - sl
    argTypes:
    - struct h1m*
    - union h1_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 88
    functionName: h1_process_req_vsn
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - isdigit
    - istnmatch
    - ist
    linkageType: ''
    returnType: int
    signature: int h1_process_req_vsn(struct h1m *h1m, union h1_sl *sl)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:104,1
    - Dst: isdigit
      Src: /src/haproxy/src/h1_htx.c:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 10
    argCount: 2
    argNames:
    - h1m
    - sl
    argTypes:
    - struct h1m*
    - union h1_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 116
    functionName: h1_process_res_vsn
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - isdigit
    linkageType: ''
    returnType: int
    signature: int h1_process_res_vsn(struct h1m *h1m, union h1_sl *sl)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - h1m
    argTypes:
    - struct h1m*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 144
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: h1_eval_htx_size
      Src: /src/haproxy/src/h1_htx.c:166,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h1_htx.c:167,1
    - Dst: h1m_htx_sl_flags
      Src: /src/haproxy/src/h1_htx.c:194,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1_htx.c:203,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:203,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h1_htx.c:210,1
    - Dst: htx_add_all_headers
      Src: /src/haproxy/src/h1_htx.c:211,1
    - Dst: http_scheme_based_normalize
      Src: /src/haproxy/src/h1_htx.c:226,1
    - Dst: h1m_init_req
      Src: /src/haproxy/src/h1_htx.c:232,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 63
    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: 240
      start: 151
    functionDepth: 5
    functionLinenumber: 151
    functionLinenumberEnd: 240
    functionName: h1_postparse_req_hdrs
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - htx_is_empty
    - h1_eval_htx_size
    - h1m_init_req
    - htx_add_stline
    - h1m_htx_sl_flags
    - http_scheme_based_normalize
    - isteqi
    - htx_add_all_headers
    - ist
    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:268,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:268,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1_htx.c:270,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:270,1
    - Dst: http_parse_status_val
      Src: /src/haproxy/src/h1_htx.c:271,1
    - Dst: isteqi
      Src: /src/haproxy/src/h1_htx.c:273,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:273,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:275,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:276,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:281,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:282,1
    - Dst: h1_eval_htx_size
      Src: /src/haproxy/src/h1_htx.c:290,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h1_htx.c:291,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1_htx.c:301,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:301,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1_htx.c:303,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:303,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1_htx.c:316,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:316,1
    - Dst: http_del_hdr
      Src: /src/haproxy/src/h1_htx.c:318,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:318,1
    - Dst: h1m_htx_sl_flags
      Src: /src/haproxy/src/h1_htx.c:344,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h1_htx.c:345,1
    - Dst: htx_add_all_headers
      Src: /src/haproxy/src/h1_htx.c:346,1
    - Dst: h1m_init_res
      Src: /src/haproxy/src/h1_htx.c:353,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: 361
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 361
    functionName: h1_postparse_res_hdrs
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - http_del_hdr
    - h1_eval_htx_size
    - htx_add_stline
    - h1m_init_res
    - h1m_htx_sl_flags
    - isteqi
    - http_parse_status_val
    - ist
    - htx_add_all_headers
    - 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:378,1
    - Dst: b_head
      Src: /src/haproxy/src/h1_htx.c:382,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:382,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h1_htx.c:382,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/h1_htx.c:383,1
    - Dst: h1_headers_to_hdr_list
      Src: /src/haproxy/src/h1_htx.c:389,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:389,1
    - Dst: b_tail
      Src: /src/haproxy/src/h1_htx.c:389,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/h1_htx.c:398,1
    - Dst: h1_process_req_vsn
      Src: /src/haproxy/src/h1_htx.c:412,1
    - Dst: b_head
      Src: /src/haproxy/src/h1_htx.c:413,1
    - Dst: h1_postparse_req_hdrs
      Src: /src/haproxy/src/h1_htx.c:417,1
    - Dst: h1_process_res_vsn
      Src: /src/haproxy/src/h1_htx.c:422,1
    - Dst: b_head
      Src: /src/haproxy/src/h1_htx.c:423,1
    - Dst: h1_postparse_res_hdrs
      Src: /src/haproxy/src/h1_htx.c:427,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: 441
      start: 372
    functionDepth: 6
    functionLinenumber: 372
    functionLinenumberEnd: 441
    functionName: h1_parse_msg_hdrs
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 2
    functionsReached:
    - h1_headers_to_hdr_list
    - b_slow_realign_ofs
    - buf_room_for_htx_data
    - b_data
    - h1_postparse_res_hdrs
    - h1_process_req_vsn
    - b_tail
    - h1_postparse_req_hdrs
    - b_wrap
    - b_head
    - b_peek
    - h1_process_res_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:469,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h1_htx.c:469,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:469,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/h1_htx.c:470,1
    - Dst: htx_reset
      Src: /src/haproxy/src/h1_htx.c:479,1
    - Dst: b_set_data
      Src: /src/haproxy/src/h1_htx.c:480,1
    - Dst: b_size
      Src: /src/haproxy/src/h1_htx.c:480,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/h1_htx.c:482,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/h1_htx.c:498,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/h1_htx.c:511,1
    - Dst: ist2
      Src: /src/haproxy/src/h1_htx.c:511,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:511,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/h1_htx.c:513,1
    - Dst: ist2
      Src: /src/haproxy/src/h1_htx.c:513,1
    - Dst: b_orig
      Src: /src/haproxy/src/h1_htx.c:513,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    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: 516
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 516
    functionName: h1_copy_msg_data
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - b_orig
    - unlikely
    - b_set_data
    - b_data
    - b_contig_data
    - htx_add_data
    - ist2
    - htx_add_blk
    - b_peek
    - htx_reset
    - b_size
    - b_head_ofs
    - 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:546,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:547,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:550,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:551,1
    - Dst: h1_copy_msg_data
      Src: /src/haproxy/src/h1_htx.c:553,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/h1_htx.c:554,1
    - Dst: h1_skip_chunk_crlf
      Src: /src/haproxy/src/h1_htx.c:565,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:565,1
    - Dst: h1_parse_chunk_size
      Src: /src/haproxy/src/h1_htx.c:576,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:576,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: 607
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 607
    functionName: h1_parse_chunk
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - h1_skip_chunk_crlf
    - unlikely
    - b_data
    - htx_used_space
    - h1_copy_msg_data
    - 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: 23
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/src/h1_htx.c:634,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:637,1
    - Dst: htx_reserve_max_data
      Src: /src/haproxy/src/h1_htx.c:641,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h1_htx.c:649,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h1_htx.c:659,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h1_htx.c:660,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:685,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:695,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:698,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/src/h1_htx.c:704,1
    - Dst: likely
      Src: /src/haproxy/src/h1_htx.c:713,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:717,1
    - Dst: likely
      Src: /src/haproxy/src/h1_htx.c:726,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/src/h1_htx.c:730,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:744,1
    - Dst: memcpy
      Src: /src/haproxy/src/h1_htx.c:761,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:768,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h1_htx.c:787,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/h1_htx.c:789,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 126
    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: 801
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 801
    functionName: h1_parse_full_contig_chunks
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - HTTP_IS_SPHT
    - htx_get_blksz
    - unlikely
    - b_contig_data
    - htx_remove_blk
    - htx_get_blk_ptr
    - b_peek
    - likely
    - HTTP_IS_CRLF
    - htx_change_blk_value_len
    - memcpy
    - htx_reserve_max_data
    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:813,1
    - Dst: h1_parse_full_contig_chunks
      Src: /src/haproxy/src/h1_htx.c:820,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:836,1
    - Dst: h1_parse_chunk
      Src: /src/haproxy/src/h1_htx.c:837,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: 853
      start: 807
    functionDepth: 3
    functionLinenumber: 807
    functionLinenumberEnd: 853
    functionName: h1_parse_msg_chunks
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 0
    functionsReached:
    - b_data
    - h1_parse_chunk
    - 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:866,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:871,1
    - Dst: unlikely
      Src: /src/haproxy/src/h1_htx.c:872,1
    - Dst: h1_copy_msg_data
      Src: /src/haproxy/src/h1_htx.c:874,1
    - Dst: h1_parse_msg_chunks
      Src: /src/haproxy/src/h1_htx.c:884,1
    - Dst: b_data
      Src: /src/haproxy/src/h1_htx.c:895,1
    - Dst: h1_copy_msg_data
      Src: /src/haproxy/src/h1_htx.c:896,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: 902
      start: 860
    functionDepth: 4
    functionLinenumber: 860
    functionLinenumberEnd: 902
    functionName: h1_parse_msg_data
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 2
    functionsReached:
    - h1_parse_msg_chunks
    - b_data
    - h1_copy_msg_data
    - unlikely
    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:918,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:928,1
    - Dst: b_tail
      Src: /src/haproxy/src/h1_htx.c:928,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/h1_htx.c:929,1
    - Dst: h1_headers_to_hdr_list
      Src: /src/haproxy/src/h1_htx.c:933,1
    - Dst: b_peek
      Src: /src/haproxy/src/h1_htx.c:933,1
    - Dst: b_tail
      Src: /src/haproxy/src/h1_htx.c:933,1
    - Dst: buf_room_for_htx_data
      Src: /src/haproxy/src/h1_htx.c:940,1
    - Dst: h1_eval_htx_hdrs_size
      Src: /src/haproxy/src/h1_htx.c:946,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h1_htx.c:947,1
    - Dst: htx_add_all_trailers
      Src: /src/haproxy/src/h1_htx.c:952,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: 967
      start: 911
    functionDepth: 4
    functionLinenumber: 911
    functionLinenumberEnd: 967
    functionName: h1_parse_msg_tlrs
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 2
    functionsReached:
    - h1_headers_to_hdr_list
    - b_slow_realign_ofs
    - buf_room_for_htx_data
    - b_data
    - htx_add_all_trailers
    - b_tail
    - h1_eval_htx_hdrs_size
    - b_peek
    - 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:978,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:979,1
    - Dst: HTX_SL_REQ_MPTR
      Src: /src/haproxy/src/h1_htx.c:979,1
    - Dst: HTX_SL_REQ_MLEN
      Src: /src/haproxy/src/h1_htx.c:979,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:980,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:981,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:982,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:986,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:990,1
    - Dst: HTX_SL_REQ_VPTR
      Src: /src/haproxy/src/h1_htx.c:990,1
    - Dst: HTX_SL_REQ_VLEN
      Src: /src/haproxy/src/h1_htx.c:990,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:994,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 2
    argNames:
    - sl
    - chk
    argTypes:
    - struct htx_sl*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 1002
    functionName: h1_format_htx_reqline
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 1
    functionsReached:
    - h1_get_uri
    - HTX_SL_REQ_MPTR
    - HTX_SL_REQ_MLEN
    - HTX_SL_REQ_VLEN
    - HTX_SL_REQ_VPTR
    - chunk_memcat
    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:1013,1
    - Dst: b_room
      Src: /src/haproxy/src/h1_htx.c:1013,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1017,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1021,1
    - Dst: HTX_SL_RES_VPTR
      Src: /src/haproxy/src/h1_htx.c:1021,1
    - Dst: HTX_SL_RES_VLEN
      Src: /src/haproxy/src/h1_htx.c:1021,1
    - Dst: htx_sl_res_reason
      Src: /src/haproxy/src/h1_htx.c:1025,1
    - Dst: istlen
      Src: /src/haproxy/src/h1_htx.c:1026,1
    - Dst: ist
      Src: /src/haproxy/src/h1_htx.c:1027,1
    - Dst: http_get_reason
      Src: /src/haproxy/src/h1_htx.c:1027,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1029,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1030,1
    - Dst: HTX_SL_RES_CPTR
      Src: /src/haproxy/src/h1_htx.c:1030,1
    - Dst: HTX_SL_RES_CLEN
      Src: /src/haproxy/src/h1_htx.c:1030,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1031,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1032,1
    - Dst: istptr
      Src: /src/haproxy/src/h1_htx.c:1032,1
    - Dst: istlen
      Src: /src/haproxy/src/h1_htx.c:1032,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1033,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 23
    argCount: 2
    argNames:
    - sl
    - chk
    argTypes:
    - struct htx_sl*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1008
    functionDepth: 1
    functionLinenumber: 1008
    functionLinenumberEnd: 1041
    functionName: h1_format_htx_stline
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 1
    functionsReached:
    - HTX_SL_LEN
    - istlen
    - HTX_SL_RES_VPTR
    - http_get_reason
    - istptr
    - b_room
    - HTX_SL_RES_CPTR
    - htx_sl_res_reason
    - HTX_SL_RES_CLEN
    - ist
    - chunk_memcat
    - HTX_SL_RES_VLEN
    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:1052,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1055,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1056,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1057,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1058,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: 1066
      start: 1048
    functionDepth: 1
    functionLinenumber: 1048
    functionLinenumberEnd: 1066
    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:1091,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1092,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1093,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/h1_htx.c:1097,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 3
    argNames:
    - data
    - chk
    - chunked
    argTypes:
    - struct ist
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1106
      start: 1073
    functionDepth: 1
    functionLinenumber: 1073
    functionLinenumberEnd: 1106
    functionName: h1_format_htx_data
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 4
    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:1121,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h1_htx.c:1124,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/h1_htx.c:1124,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h1_htx.c:1125,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h1_htx.c:1127,1
    - Dst: h1_format_htx_reqline
      Src: /src/haproxy/src/h1_htx.c:1129,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h1_htx.c:1133,1
    - Dst: h1_format_htx_stline
      Src: /src/haproxy/src/h1_htx.c:1135,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h1_htx.c:1139,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h1_htx.c:1140,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/h1_htx.c:1142,1
    - Dst: b_putblk
      Src: /src/haproxy/src/h1_htx.c:1146,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h1_htx.c:1150,1
    - Dst: h1_format_htx_data
      Src: /src/haproxy/src/h1_htx.c:1151,1
    - Dst: b_putblk
      Src: /src/haproxy/src/h1_htx.c:1155,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h1_htx.c:1158,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h1_htx.c:1159,1
    - Dst: h1_format_htx_hdr
      Src: /src/haproxy/src/h1_htx.c:1161,1
    - Dst: b_putblk
      Src: /src/haproxy/src/h1_htx.c:1168,1
    - Dst: b_reset
      Src: /src/haproxy/src/h1_htx.c:1173,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 59
    argCount: 2
    argNames:
    - htx
    - outbuf
    argTypes:
    - struct htx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1112
    functionDepth: 2
    functionLinenumber: 1112
    functionLinenumberEnd: 1175
    functionName: h1_format_htx_msg
    functionSourceFile: /src/haproxy/src/h1_htx.c
    functionUses: 1
    functionsReached:
    - b_putblk
    - htx_get_blk_value
    - b_data
    - htx_get_head_blk
    - h1_format_htx_hdr
    - htx_get_blk_type
    - h1_format_htx_stline
    - htx_get_blk_name
    - htx_get_next_blk
    - htx_get_blk_ptr
    - h1_format_htx_data
    - h1_format_htx_reqline
    - b_reset
    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:
    - b_putblk
    - b_quic_dec_int
    - b_data
    - b_contig_data
    - BUG_ON
    - b_head_ofs
    - 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:97,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:99,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:100,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: hap_register_pre_check
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hap_register_pre_check(int (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:111,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:113,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:114,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: hap_register_post_check
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hap_register_post_check(int (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:127,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:129,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:130,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 134
    functionName: hap_register_post_proxy_check
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    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:143,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:145,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:146,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 150
    functionName: hap_register_post_server_check
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    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:159,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:161,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:162,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 166
    functionName: hap_register_post_deinit
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 2
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hap_register_post_deinit(void (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:175,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:177,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:178,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 182
    functionName: hap_register_post_deinit_master
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hap_register_post_deinit_master(void (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:191,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:193,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:194,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: hap_register_proxy_deinit
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    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:207,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:209,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:210,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 214
    functionName: hap_register_server_deinit
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    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:221,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:223,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:224,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 228
    functionName: hap_register_per_thread_alloc
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hap_register_per_thread_alloc(int (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:235,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:237,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:238,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 242
    functionName: hap_register_per_thread_init
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 4
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hap_register_per_thread_init(int (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:249,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:251,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:252,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:255,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 256
    functionName: hap_register_per_thread_deinit
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 4
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hap_register_per_thread_deinit(void (*fct)())
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/init.c:263,1
    - Dst: fprintf
      Src: /src/haproxy/src/init.c:265,1
    - Dst: exit
      Src: /src/haproxy/src/init.c:266,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/init.c:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: hap_register_per_thread_free
    functionSourceFile: /src/haproxy/src/init.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    linkageType: ''
    returnType: void
    signature: void hap_register_per_thread_free(void (*fct)())
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:165,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:168,1
    - Dst: isttest
      Src: /src/haproxy/src/stream.c:170,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:171,1
    - Dst: b_putist
      Src: /src/haproxy/src/stream.c:172,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:176,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/stream.c:177,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/stream.c:177,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:181,1
    - Dst: h1_msg_state_str
      Src: /src/haproxy/src/stream.c:182,1
    - Dst: h1_msg_state_str
      Src: /src/haproxy/src/stream.c:182,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:184,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:190,1
    - Dst: __htx_get_head_blk
      Src: /src/haproxy/src/stream.c:191,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/stream.c:192,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/stream.c:193,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:196,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/stream.c:197,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/stream.c:197,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/stream.c:198,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/stream.c:198,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/stream.c:199,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/stream.c:199,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:202,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:203,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:203,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:207,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:211,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:214,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:214,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:214,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:214,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:215,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:215,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:215,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:215,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:216,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:216,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:216,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:216,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:217,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:217,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:217,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:217,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:227,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:228,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:228,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:229,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:230,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:230,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:233,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:236,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:247,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:248,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:250,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:251,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:252,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:255,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:256,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:256,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/stream.c:257,1
    - Dst: b_size
      Src: /src/haproxy/src/stream.c:257,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:258,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:258,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/stream.c:259,1
    - Dst: b_size
      Src: /src/haproxy/src/stream.c:259,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:263,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/stream.c:272,1
    - Dst: htx_dump
      Src: /src/haproxy/src/stream.c:273,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: 275
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 275
    functionName: strm_trace
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - HTX_SL_P2_LEN
    - htx_dump
    - sc_state_str
    - htx_get_blk_ptr
    - b_data
    - chunk_appendf
    - htx_get_blk_type
    - HTX_SL_P1_PTR
    - tick_isset
    - HTX_SL_P3_PTR
    - HTX_SL_P2_PTR
    - b_head_ofs
    - htxbuf
    - htx_nbblks
    - HTX_SL_P1_LEN
    - sc_ep_snd_ex
    - b_size
    - chunk_memcat
    - b_putist
    - __htx_get_head_blk
    - b_orig
    - sc_ep_rcv_ex
    - HTX_SL_P3_LEN
    - isttest
    - TICKS_TO_MS
    - h1_msg_state_str
    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:286,1
    - Dst: sc_mux_ops
      Src: /src/haproxy/src/stream.c:287,1
    - Dst: b_is_null
      Src: /src/haproxy/src/stream.c:294,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:301,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:301,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:301,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stream.c:302,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stream.c:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - sc
    - input
    argTypes:
    - struct stconn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 310
    functionName: stream_upgrade_from_sc
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - htxbuf
    - IS_HTX_STRM
    - __sc_strm
    - b_data
    - b_is_null
    - task_wakeup
    - sc_ep_report_read_activity
    - sc_mux_ops
    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:323,1
    - Dst: sc_have_buff
      Src: /src/haproxy/src/stream.c:324,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stream.c:326,1
    - Dst: sc_have_buff
      Src: /src/haproxy/src/stream.c:327,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stream.c:330,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 333
    functionName: stream_buf_available
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - sc_have_buff
    - sc_ep_have_ff_data
    linkageType: ''
    returnType: int
    signature: int stream_buf_available(void *arg)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:352,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:353,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/stream.c:353,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:432,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/stream.c:471,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/stream.c:472,1
    - Dst: sc_attach_strm
      Src: /src/haproxy/src/stream.c:479,1
    - Dst: sc_new_from_strm
      Src: /src/haproxy/src/stream.c:482,1
    - Dst: sc_set_state
      Src: /src/haproxy/src/stream.c:486,1
    - Dst: likely
      Src: /src/haproxy/src/stream.c:488,1
    - Dst: likely
      Src: /src/haproxy/src/stream.c:491,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:494,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:496,1
    - Dst: sc_mux_ops
      Src: /src/haproxy/src/stream.c:497,1
    - Dst: stream_init_srv_conn
      Src: /src/haproxy/src/stream.c:503,1
    - Dst: channel_init
      Src: /src/haproxy/src/stream.c:513,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:517,1
    - Dst: channel_auto_connect
      Src: /src/haproxy/src/stream.c:526,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:527,1
    - Dst: channel_init
      Src: /src/haproxy/src/stream.c:533,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stream.c:555,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:556,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:557,1
    - Dst: flt_stream_init
      Src: /src/haproxy/src/stream.c:559,1
    - Dst: flt_stream_start
      Src: /src/haproxy/src/stream.c:559,1
    - Dst: se_will_consume
      Src: /src/haproxy/src/stream.c:563,1
    - Dst: struct session*::fe::accept
      Src: /src/haproxy/src/stream.c:565,1
    - Dst: b_is_null
      Src: /src/haproxy/src/stream.c:568,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:575,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:575,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:575,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stream.c:576,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:585,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/stream.c:586,1
    - Dst: flt_stream_release
      Src: /src/haproxy/src/stream.c:591,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:592,1
    - Dst: sc_free
      Src: /src/haproxy/src/stream.c:593,1
    - Dst: task_destroy
      Src: /src/haproxy/src/stream.c:596,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:599,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:600,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:601,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 166
    argCount: 3
    argNames:
    - sess
    - sc
    - input
    argTypes:
    - struct session*
    - struct stconn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 347
    functionDepth: 5
    functionLinenumber: 347
    functionLinenumberEnd: 603
    functionName: stream_new
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 9
    functionsReached:
    - sc_conn
    - unlikely
    - pool_free
    - stream_init_srv_conn
    - task_wakeup
    - pool_alloc
    - sc_free
    - channel_auto_connect
    - task_destroy
    - _HA_ATOMIC_INC
    - channel_init
    - sc_new_from_strm
    - sc_ep_test
    - struct session*::fe::accept
    - b_data
    - b_is_null
    - vars_init_head
    - LIST_INIT
    - likely
    - DBG_TRACE_ENTER
    - se_will_consume
    - htxbuf
    - flt_stream_release
    - flt_stream_init
    - channel_auto_close
    - flt_stream_start
    - sc_set_state
    - LIST_APPEND
    - sc_ep_report_read_activity
    - task_new_here
    - sc_mux_ops
    - _HA_ATOMIC_FETCH_ADD
    - IS_HTX_STRM
    - _HA_ATOMIC_LOAD
    - LIST_DELETE
    - DBG_TRACE_LEAVE
    - sc_attach_strm
    - DBG_TRACE_DEVEL
    - memcpy
    linkageType: ''
    returnType: struct stream
    signature: struct stream *stream_new(struct session *sess, struct stconn *sc,
      struct buffer *input)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: strm_sess
      Src: /src/haproxy/src/stream.c:610,1
    - Dst: DBG_TRACE_POINT
      Src: /src/haproxy/src/stream.c:615,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/stream.c:621,1
    - Dst: pendconn_free
      Src: /src/haproxy/src/stream.c:623,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:625,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:628,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:628,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:630,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:630,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:631,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:631,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:634,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/stream.c:646,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:647,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:648,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/stream.c:653,1
    - Dst: b_free
      Src: /src/haproxy/src/stream.c:658,1
    - Dst: b_free
      Src: /src/haproxy/src/stream.c:659,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/stream.c:660,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:663,1
    - Dst: flt_stream_stop
      Src: /src/haproxy/src/stream.c:666,1
    - Dst: flt_stream_release
      Src: /src/haproxy/src/stream.c:667,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/stream.c:669,1
    - Dst: hlua_ctx_destroy
      Src: /src/haproxy/src/stream.c:670,1
    - Dst: http_destroy_txn
      Src: /src/haproxy/src/stream.c:674,1
    - Dst: stksess_free
      Src: /src/haproxy/src/stream.c:684,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/stream.c:691,1
    - Dst: ha_free
      Src: /src/haproxy/src/stream.c:692,1
    - Dst: resolv_unlink_resolution
      Src: /src/haproxy/src/stream.c:694,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/stream.c:695,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:697,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:705,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:706,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:712,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:713,1
    - Dst: vars_prune
      Src: /src/haproxy/src/stream.c:718,1
    - Dst: vars_prune
      Src: /src/haproxy/src/stream.c:719,1
    - Dst: stream_store_counters
      Src: /src/haproxy/src/stream.c:721,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:722,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/stream.c:724,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/stream.c:731,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stream.c:733,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/stream.c:733,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/stream.c:735,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:737,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:738,1
    - Dst: sc_destroy
      Src: /src/haproxy/src/stream.c:740,1
    - Dst: sc_destroy
      Src: /src/haproxy/src/stream.c:741,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/stream.c:751,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:752,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:753,1
    - Dst: pool_free
      Src: /src/haproxy/src/stream.c:757,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:760,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:761,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:762,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:763,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:764,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:765,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:766,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:767,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:768,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:769,1
    - Dst: pool_flush
      Src: /src/haproxy/src/stream.c:770,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 98
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 608
    functionDepth: 8
    functionLinenumber: 608
    functionLinenumberEnd: 772
    functionName: stream_free
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 2
    functionsReached:
    - offer_buffers
    - unlikely
    - pool_free
    - resolv_unlink_resolution
    - stream_store_counters
    - http_destroy_txn
    - vars_prune
    - HA_SPIN_LOCK
    - b_free
    - __ha_barrier_store
    - process_srv_queue
    - list_for_each_entry_safe
    - ha_free
    - stksess_free
    - strm_sess
    - HA_SPIN_UNLOCK
    - flt_stream_stop
    - DBG_TRACE_POINT
    - b_dequeue
    - pool_flush
    - _HA_ATOMIC_DEC
    - hlua_ctx_destroy
    - flt_stream_release
    - __objt_server
    - LIST_DEL_INIT
    - LIST_APPEND
    - LIST_ELEM
    - LIST_DELETE
    - sc_destroy
    - objt_server
    - may_dequeue_tasks
    - pendconn_free
    - sess_change_server
    linkageType: ''
    returnType: void
    signature: void stream_free(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_alloc
      Src: /src/haproxy/src/stream.c:785,1
    - Dst: b_requeue
      Src: /src/haproxy/src/stream.c:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 792
    functionName: stream_alloc_work_buffer
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - b_alloc
    - b_requeue
    linkageType: ''
    returnType: int
    signature: int stream_alloc_work_buffer(struct stream *s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: c_size
      Src: /src/haproxy/src/stream.c:804,1
    - Dst: c_empty
      Src: /src/haproxy/src/stream.c:804,1
    - Dst: b_free
      Src: /src/haproxy/src/stream.c:806,1
    - Dst: c_size
      Src: /src/haproxy/src/stream.c:808,1
    - Dst: c_empty
      Src: /src/haproxy/src/stream.c:808,1
    - Dst: b_free
      Src: /src/haproxy/src/stream.c:810,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/stream.c:817,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 818
    functionName: stream_release_buffers
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 3
    functionsReached:
    - b_free
    - c_size
    - c_empty
    - offer_buffers
    linkageType: ''
    returnType: void
    signature: void stream_release_buffers(struct stream *s)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:830,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:832,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:835,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:838,1
    - Dst: stkctr_inc_bytes_in_ctr
      Src: /src/haproxy/src/stream.c:841,1
    - Dst: stkctr_inc_bytes_in_ctr
      Src: /src/haproxy/src/stream.c:842,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:850,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: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:858,1
    - Dst: stkctr_inc_bytes_out_ctr
      Src: /src/haproxy/src/stream.c:861,1
    - Dst: stkctr_inc_bytes_out_ctr
      Src: /src/haproxy/src/stream.c:862,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 865
    functionName: stream_process_counters
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_ADD
    - stkctr_inc_bytes_out_ctr
    - stkctr_inc_bytes_in_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:870,1
    - Dst: channel_abort
      Src: /src/haproxy/src/stream.c:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 872
    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:888,1
    - Dst: channel_abort
      Src: /src/haproxy/src/stream.c:889,1
    - Dst: channel_erase
      Src: /src/haproxy/src/stream.c:890,1
    - Dst: channel_truncate
      Src: /src/haproxy/src/stream.c:891,1
    - Dst: likely
      Src: /src/haproxy/src/stream.c:893,1
    - Dst: co_inject
      Src: /src/haproxy/src/stream.c:894,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:896,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:897,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/stream.c:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - s
    - msg
    argTypes:
    - struct stream*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 883
    functionDepth: 2
    functionLinenumber: 883
    functionLinenumberEnd: 899
    functionName: stream_retnclose
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 2
    functionsReached:
    - sc_schedule_abort
    - channel_auto_read
    - channel_abort
    - channel_erase
    - co_inject
    - channel_auto_close
    - channel_truncate
    - likely
    linkageType: ''
    returnType: void
    signature: void stream_retnclose(struct stream *s, const struct buffer *msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - s
    - name
    - timeout
    argTypes:
    - struct stream*
    - enum act_timeout_name
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 919
    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:935,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:940,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/stream.c:944,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/stream.c:953,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:956,1
    - Dst: health_adjust
      Src: /src/haproxy/src/stream.c:957,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:957,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:959,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/stream.c:960,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:960,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:964,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:967,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/stream.c:968,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:968,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/stream.c:978,1
    - Dst: log_orig
      Src: /src/haproxy/src/stream.c:978,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:981,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stream.c:983,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/src/stream.c:985,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:991,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:993,1
    - Dst: sc_chk_rcv
      Src: /src/haproxy/src/stream.c:1001,1
    - Dst: DBG_TRACE_STATE
      Src: /src/haproxy/src/stream.c:1007,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1010,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 933
    functionDepth: 10
    functionLinenumber: 933
    functionLinenumberEnd: 1011
    functionName: back_establish
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - IS_HTX_STRM
    - DBG_TRACE_STATE
    - se_have_more_data
    - sc_chk_rcv
    - ns_to_ms
    - __objt_server
    - strm_fe
    - objt_server
    - health_adjust
    - lf_expr_isempty
    - struct stream*::do_log
    - log_orig
    - tick_isset
    - DBG_TRACE_LEAVE
    - sc_ep_report_read_activity
    - DBG_TRACE_ENTER
    - log_orig_proxy
    linkageType: ''
    returnType: void
    signature: void back_establish(struct stream *s)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1023,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1025,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1031,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1038
    functionName: sess_set_term_flags
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - sc_state_in
    - _HA_ATOMIC_INC
    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:1057,1
    - Dst: objt_applet
      Src: /src/haproxy/src/stream.c:1057,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1058,1
    - Dst: appctx_init
      Src: /src/haproxy/src/stream.c:1063,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stream.c:1068,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1073,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/stream.c:1080,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stream.c:1081,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1047
    functionDepth: 3
    functionLinenumber: 1047
    functionLinenumberEnd: 1083
    functionName: process_use_service
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - sc_applet_create
    - applet_need_more_data
    - unlikely
    - objt_applet
    - appctx_init
    - __sc_appctx
    - _HA_ATOMIC_INC
    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: 17
    BranchProfiles: []
    Callsites:
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:1100,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1106,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1109,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/stream.c:1120,1
    - Dst: build_logline
      Src: /src/haproxy/src/stream.c:1124,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/stream.c:1125,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/stream.c:1127,1
    - Dst: stream_set_backend
      Src: /src/haproxy/src/stream.c:1136,1
    - Dst: stream_set_backend
      Src: /src/haproxy/src/stream.c:1148,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:1155,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1174,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1175,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1187,1
    - Dst: stream_abort
      Src: /src/haproxy/src/stream.c:1192,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:1203,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 66
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1205
    functionName: process_switching_rules
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - DBG_TRACE_DEVEL
    - list_for_each_entry
    - free_trash_chunk
    - build_logline
    - DBG_TRACE_LEAVE
    - proxy_be_by_name
    - stream_set_backend
    - stream_abort
    - DBG_TRACE_ENTER
    - alloc_trash_chunk
    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:1217,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1220,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1223,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:1227,1
    - Dst: build_logline
      Src: /src/haproxy/src/stream.c:1229,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/stream.c:1232,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/stream.c:1243,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1254,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: 1256
      start: 1211
    functionDepth: 2
    functionLinenumber: 1211
    functionLinenumberEnd: 1256
    functionName: process_server_rules
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - stream_set_srv_target
    - list_for_each_entry
    - get_trash_chunk
    - build_logline
    - DBG_TRACE_LEAVE
    - 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:1268,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stream.c:1269,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stream.c:1270,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stream.c:1271,1
    - Dst: server_find_by_name
      Src: /src/haproxy/src/stream.c:1275,1
    - Dst: server_find_by_addr
      Src: /src/haproxy/src/stream.c:1277,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/stream.c:1284,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stream.c:1285,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stream.c:1286,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/stream.c:1287,1
    - Dst: server_find_by_id
      Src: /src/haproxy/src/stream.c:1289,1
    - Dst: stream_set_srv_target
      Src: /src/haproxy/src/stream.c:1297,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: 1299
      start: 1258
    functionDepth: 2
    functionLinenumber: 1258
    functionLinenumberEnd: 1299
    functionName: sticking_rule_find_target
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - __stktable_data_ptr
    - stream_set_srv_target
    - server_find_by_addr
    - server_find_by_name
    - HA_RWLOCK_RDUNLOCK
    - stktable_data_cast
    - server_find_by_id
    - HA_RWLOCK_RDLOCK
    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:1311,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1313,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1334,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/stream.c:1337,1
    - Dst: stktable_lookup_key
      Src: /src/haproxy/src/stream.c:1344,1
    - Dst: sticking_rule_find_target
      Src: /src/haproxy/src/stream.c:1346,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stream.c:1347,1
    - Dst: stksess_new
      Src: /src/haproxy/src/stream.c:1354,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1365,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: 1367
      start: 1305
    functionDepth: 5
    functionLinenumber: 1305
    functionLinenumberEnd: 1367
    functionName: process_sticking_rules
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - stktable_touch_local
    - list_for_each_entry
    - stktable_fetch_key
    - DBG_TRACE_LEAVE
    - stksess_new
    - DBG_TRACE_ENTER
    - stktable_lookup_key
    - sticking_rule_find_target
    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:1381,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:1383,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/stream.c:1407,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/stream.c:1410,1
    - Dst: stksess_new
      Src: /src/haproxy/src/stream.c:1417,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:1433,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:1433,1
    - Dst: stksess_free
      Src: /src/haproxy/src/stream.c:1434,1
    - Dst: stktable_set_entry
      Src: /src/haproxy/src/stream.c:1439,1
    - Dst: stksess_free
      Src: /src/haproxy/src/stream.c:1442,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:1447,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:1449,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/stream.c:1453,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stream.c:1454,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stream.c:1455,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:1455,1
    - Dst: dict_insert
      Src: /src/haproxy/src/stream.c:1458,1
    - Dst: __stktable_data_ptr
      Src: /src/haproxy/src/stream.c:1460,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/stream.c:1461,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/stream.c:1465,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/stream.c:1467,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/stream.c:1474,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: 1476
      start: 1373
    functionDepth: 6
    functionLinenumber: 1373
    functionLinenumberEnd: 1476
    functionName: process_store_rules
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - acl_match_cond
    - __stktable_data_ptr
    - dict_insert
    - list_for_each_entry
    - stktable_touch_local
    - stktable_fetch_key
    - HA_RWLOCK_WRLOCK
    - __objt_server
    - stktable_set_entry
    - HA_RWLOCK_WRUNLOCK
    - objt_server
    - DBG_TRACE_LEAVE
    - stksess_free
    - stktable_data_cast
    - stksess_new
    - DBG_TRACE_ENTER
    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:1489,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1494,1
    - Dst: http_create_txn
      Src: /src/haproxy/src/stream.c:1494,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:1497,1
    - Dst: sc_conn_ready
      Src: /src/haproxy/src/stream.c:1499,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stream.c:1503,1
    - Dst: struct connection*::mux::unsubscribe
      Src: /src/haproxy/src/stream.c:1509,1
    - Dst: sc_conn_prepare_endp_upgrade
      Src: /src/haproxy/src/stream.c:1514,1
    - Dst: conn_upgrade_mux_fe
      Src: /src/haproxy/src/stream.c:1515,1
    - Dst: ist
      Src: /src/haproxy/src/stream.c:1516,1
    - Dst: sc_conn_abort_endp_upgrade
      Src: /src/haproxy/src/stream.c:1518,1
    - Dst: sc_conn_commit_endp_upgrade
      Src: /src/haproxy/src/stream.c:1521,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:1526,1
    - Dst: stream_abort
      Src: /src/haproxy/src/stream.c:1535,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 2
    argNames:
    - s
    - mux_proto
    argTypes:
    - struct stream*
    - struct mux_proto_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1483
    functionDepth: 8
    functionLinenumber: 1483
    functionLinenumberEnd: 1542
    functionName: stream_set_http_mode
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - IS_HTX_STRM
    - se_have_more_data
    - conn_upgrade_mux_fe
    - sc_conn_commit_endp_upgrade
    - unlikely
    - http_create_txn
    - sc_ep_test
    - sc_conn_abort_endp_upgrade
    - stream_abort
    - sc_conn_ready
    - struct connection*::mux::unsubscribe
    - sc_conn_prepare_endp_upgrade
    - ist
    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:1565,1
    - Dst: sc_update
      Src: /src/haproxy/src/stream.c:1566,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1568,1
    - Dst: sc_update
      Src: /src/haproxy/src/stream.c:1569,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stream.c:1574,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stream.c:1575,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/stream.c:1575,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stream.c:1576,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stream.c:1576,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stream.c:1578,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/src/stream.c:1579,1
    - Dst: sc_is_send_allowed
      Src: /src/haproxy/src/stream.c:1579,1
    - Dst: appctx_wakeup
      Src: /src/haproxy/src/stream.c:1580,1
    - Dst: __sc_appctx
      Src: /src/haproxy/src/stream.c:1580,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1582
    functionName: stream_update_both_sc
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - appctx_wakeup
    - sc_is_recv_allowed
    - sc_state_in
    - sc_is_send_allowed
    - __sc_appctx
    - sc_appctx
    - sc_update
    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:1592,1
    - Dst: sc_check_timeouts
      Src: /src/haproxy/src/stream.c:1594,1
    - Dst: channel_check_timeout
      Src: /src/haproxy/src/stream.c:1595,1
    - Dst: sc_check_timeouts
      Src: /src/haproxy/src/stream.c:1596,1
    - Dst: channel_check_timeout
      Src: /src/haproxy/src/stream.c:1597,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1599,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/stream.c:1600,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:1602,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1605,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/stream.c:1606,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:1609,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1611,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/stream.c:1612,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:1614,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1617,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/stream.c:1618,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:1621,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/stream.c:1624,1
    - Dst: flt_stream_check_timeouts
      Src: /src/haproxy/src/stream.c:1625,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1590
    functionDepth: 2
    functionLinenumber: 1590
    functionLinenumberEnd: 1626
    functionName: stream_handle_timeouts
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_check_timeouts
    - HAS_FILTERS
    - flt_stream_check_timeouts
    - unlikely
    - sc_abort
    - stream_check_conn_timeout
    - stream_report_term_evt
    - sc_shutdown
    - channel_check_timeout
    linkageType: ''
    returnType: void
    signature: void stream_handle_timeouts(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/stream.c:1636,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1632
    functionDepth: 1
    functionLinenumber: 1632
    functionLinenumberEnd: 1641
    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:1656,1
    - Dst: now_mono_time
      Src: /src/haproxy/src/stream.c:1659,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/stream.c:1661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1651
    functionDepth: 2
    functionLinenumber: 1651
    functionLinenumberEnd: 1663
    functionName: stream_cond_update_cpu_usage
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - now_mono_time
    - HA_ATOMIC_ADD
    - 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: 1674
      start: 1669
    functionDepth: 0
    functionLinenumber: 1669
    functionLinenumberEnd: 1674
    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: 1688
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1688
    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: 1713
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1713
    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: 1723
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1723
    functionName: ANALYZE
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ANALYZE(strm, chn, fun, list, back, flag, ...)
  - BBCount: 142
    BranchProfiles: []
    Callsites:
    - Dst: stream_cond_update_cpu_latency
      Src: /src/haproxy/src/stream.c:1756,1
    - Dst: DBG_TRACE_ENTER
      Src: /src/haproxy/src/stream.c:1764,1
    - Dst: stream_map_task_state
      Src: /src/haproxy/src/stream.c:1783,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/stream.c:1784,1
    - Dst: stream_shutdown_self
      Src: /src/haproxy/src/stream.c:1788,1
    - Dst: sc_sync_recv
      Src: /src/haproxy/src/stream.c:1794,1
    - Dst: sc_sync_recv
      Src: /src/haproxy/src/stream.c:1795,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/src/stream.c:1802,1
    - Dst: stream_dump_and_crash
      Src: /src/haproxy/src/stream.c:1804,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stream.c:1804,1
    - Dst: memset
      Src: /src/haproxy/src/stream.c:1809,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1814,1
    - Dst: stream_handle_timeouts
      Src: /src/haproxy/src/stream.c:1815,1
    - Dst: stream_alloc_work_buffer
      Src: /src/haproxy/src/stream.c:1835,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:1851,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1852,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1853,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:1854,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:1855,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:1857,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1859,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1861,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1863,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1865,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1874,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1875,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:1876,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:1877,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1879,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1881,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:1883,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1885,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1887,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1889,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:1891,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:1901,1
    - Dst: back_handle_st_rdy
      Src: /src/haproxy/src/stream.c:1906,1
    - Dst: back_handle_st_con
      Src: /src/haproxy/src/stream.c:1908,1
    - Dst: back_handle_st_cer
      Src: /src/haproxy/src/stream.c:1911,1
    - Dst: back_establish
      Src: /src/haproxy/src/stream.c:1913,1
    - Dst: DBG_TRACE_POINT
      Src: /src/haproxy/src/stream.c:1927,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1930,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1936,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:1939,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:1941,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:1941,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:1942,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:1942,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/stream.c:1943,1
    - Dst: write
      Src: /src/haproxy/src/stream.c:1943,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1950,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:1952,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:1956,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/stream.c:1964,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:1965,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:1966,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:1973,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:1977,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:1979,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:1979,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:1980,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:1980,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/stream.c:1981,1
    - Dst: write
      Src: /src/haproxy/src/stream.c:1981,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2004,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:2015,1
    - Dst: channel_auto_connect
      Src: /src/haproxy/src/stream.c:2016,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2017,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2057,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2058,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2059,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2060,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2061,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2062,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2063,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2064,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2065,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2066,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2067,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2068,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2069,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2070,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2071,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2072,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2073,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2074,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2075,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2111,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:2122,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2123,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2140,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2141,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2142,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2143,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2144,1
    - Dst: FLT_ANALYZE
      Src: /src/haproxy/src/stream.c:2145,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2146,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2147,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2148,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2149,1
    - Dst: ANALYZE
      Src: /src/haproxy/src/stream.c:2150,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:2188,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2189,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2193,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2196,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2198,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2200,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2202,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2204,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2208,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2210,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2212,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2214,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2216,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2220,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2222,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2224,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2226,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2228,1
    - Dst: sess_set_term_flags
      Src: /src/haproxy/src/stream.c:2230,1
    - Dst: channel_abort
      Src: /src/haproxy/src/stream.c:2238,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:2239,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/src/stream.c:2240,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:2240,1
    - Dst: channel_erase
      Src: /src/haproxy/src/stream.c:2242,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2248,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2251,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2253,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2255,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2257,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2259,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2263,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2265,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2267,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2269,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2271,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2275,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2277,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2279,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2281,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/stream.c:2283,1
    - Dst: sess_set_term_flags
      Src: /src/haproxy/src/stream.c:2285,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2300,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2302,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:2308,1
    - Dst: channel_auto_connect
      Src: /src/haproxy/src/stream.c:2309,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2310,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:2312,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:2313,1
    - Dst: co_set_data
      Src: /src/haproxy/src/stream.c:2318,1
    - Dst: channel_htx_forward_forever
      Src: /src/haproxy/src/stream.c:2321,1
    - Dst: c_adv
      Src: /src/haproxy/src/stream.c:2327,1
    - Dst: ci_data
      Src: /src/haproxy/src/stream.c:2327,1
    - Dst: channel_forward_forever
      Src: /src/haproxy/src/stream.c:2330,1
    - Dst: co_data
      Src: /src/haproxy/src/stream.c:2346,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/stream.c:2358,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2359,1
    - Dst: se_have_more_data
      Src: /src/haproxy/src/stream.c:2361,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/stream.c:2363,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stream.c:2369,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/stream.c:2370,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2378,1
    - Dst: vars_prune
      Src: /src/haproxy/src/stream.c:2381,1
    - Dst: vars_init_head
      Src: /src/haproxy/src/stream.c:2382,1
    - Dst: back_try_conn_req
      Src: /src/haproxy/src/stream.c:2392,1
    - Dst: back_handle_st_req
      Src: /src/haproxy/src/stream.c:2394,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2404,1
    - Dst: back_establish
      Src: /src/haproxy/src/stream.c:2405,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:2407,1
    - Dst: http_perform_server_redirect
      Src: /src/haproxy/src/stream.c:2409,1
    - Dst: sc_sync_send
      Src: /src/haproxy/src/stream.c:2414,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2426,1
    - Dst: proxy_abrt_close
      Src: /src/haproxy/src/stream.c:2428,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stream.c:2429,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2433,1
    - Dst: co_data
      Src: /src/haproxy/src/stream.c:2434,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stream.c:2434,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:2437,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2441,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/stream.c:2443,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2446,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:2449,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2454,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2470,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2472,1
    - Dst: channel_auto_read
      Src: /src/haproxy/src/stream.c:2478,1
    - Dst: channel_auto_close
      Src: /src/haproxy/src/stream.c:2479,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:2481,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:2482,1
    - Dst: co_set_data
      Src: /src/haproxy/src/stream.c:2487,1
    - Dst: channel_htx_forward_forever
      Src: /src/haproxy/src/stream.c:2490,1
    - Dst: c_adv
      Src: /src/haproxy/src/stream.c:2496,1
    - Dst: ci_data
      Src: /src/haproxy/src/stream.c:2496,1
    - Dst: channel_forward_forever
      Src: /src/haproxy/src/stream.c:2499,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:2509,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:2510,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:2512,1
    - Dst: sc_sync_send
      Src: /src/haproxy/src/stream.c:2524,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2535,1
    - Dst: sc_schedule_shutdown
      Src: /src/haproxy/src/stream.c:2537,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2541,1
    - Dst: co_data
      Src: /src/haproxy/src/stream.c:2542,1
    - Dst: sc_ep_have_ff_data
      Src: /src/haproxy/src/stream.c:2542,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:2543,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2547,1
    - Dst: sc_schedule_abort
      Src: /src/haproxy/src/stream.c:2549,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2552,1
    - Dst: sc_abort
      Src: /src/haproxy/src/stream.c:2555,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2559,1
    - Dst: likely
      Src: /src/haproxy/src/stream.c:2580,1
    - Dst: sc_state_in
      Src: /src/haproxy/src/stream.c:2580,1
    - Dst: stream_process_counters
      Src: /src/haproxy/src/stream.c:2583,1
    - Dst: stream_update_both_sc
      Src: /src/haproxy/src/stream.c:2585,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:2598,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:2598,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:2599,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:2601,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2602,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:2602,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2603,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:2603,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2604,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:2604,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2605,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:2605,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2606,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2607,1
    - Dst: tick_first
      Src: /src/haproxy/src/stream.c:2608,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2610,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:2610,1
    - Dst: stream_handle_timeouts
      Src: /src/haproxy/src/stream.c:2614,1
    - Dst: stream_release_buffers
      Src: /src/haproxy/src/stream.c:2619,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:2621,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/stream.c:2625,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:2628,1
    - Dst: unlikely
      Src: /src/haproxy/src/stream.c:2630,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:2632,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:2634,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2634,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:2635,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:2635,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/stream.c:2636,1
    - Dst: write
      Src: /src/haproxy/src/stream.c:2636,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/stream.c:2642,1
    - Dst: stream_process_counters
      Src: /src/haproxy/src/stream.c:2644,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2654,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2659,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2660,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/stream.c:2666,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/stream.c:2669,1
    - Dst: pendconn_free
      Src: /src/haproxy/src/stream.c:2676,1
    - Dst: stream_cond_update_cpu_usage
      Src: /src/haproxy/src/stream.c:2678,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/stream.c:2679,1
    - Dst: log_orig
      Src: /src/haproxy/src/stream.c:2679,1
    - Dst: stream_update_time_stats
      Src: /src/haproxy/src/stream.c:2683,1
    - Dst: stream_free
      Src: /src/haproxy/src/stream.c:2687,1
    - Dst: task_destroy
      Src: /src/haproxy/src/stream.c:2688,1
    CyclomaticComplexity: 270
    EdgeCount: 270
    ICount: 518
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 1741
    functionDepth: 11
    functionLinenumber: 1741
    functionLinenumberEnd: 2690
    functionName: process_stream
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - co_data
    - stream_process_counters
    - back_handle_st_cer
    - back_handle_st_req
    - FLT_ANALYZE
    - process_srv_queue
    - chunk_printf
    - ns_to_ms
    - tick_isset
    - c_adv
    - DBG_TRACE_POINT
    - htxbuf
    - _HA_ATOMIC_DEC
    - memset
    - stream_update_time_stats
    - stream_shutdown_self
    - log_orig_proxy
    - IS_HTX_STRM
    - stream_dump_and_crash
    - sc_sync_recv
    - channel_forward_forever
    - sc_state_in
    - stream_alloc_work_buffer
    - channel_abort
    - stream_cond_update_cpu_usage
    - channel_auto_connect
    - _HA_ATOMIC_INC
    - likely
    - stream_map_task_state
    - back_establish
    - channel_htx_forward_forever
    - sess_set_term_flags
    - lf_expr_isempty
    - sc_sync_send
    - channel_auto_close
    - ci_data
    - stream_update_both_sc
    - sc_ep_have_ff_data
    - tick_add
    - channel_auto_read
    - se_have_more_data
    - stream_handle_timeouts
    - objt_server
    - back_try_conn_req
    - conn_fd
    - stream_cond_update_cpu_latency
    - ANALYZE
    - sc_schedule_shutdown
    - HA_ATOMIC_XCHG
    - tick_is_expired
    - vars_init_head
    - write
    - struct connection*::mux::ctl
    - read_freq_ctr
    - struct stream*::do_log
    - channel_erase
    - stream_free
    - may_dequeue_tasks
    - sc_shutdown
    - pendconn_free
    - DBG_TRACE_DEVEL
    - channel_htx_erase
    - sc_conn
    - unlikely
    - vars_prune
    - task_destroy
    - update_freq_ctr
    - sc_schedule_abort
    - log_orig
    - back_handle_st_con
    - stream_release_buffers
    - DISGUISE
    - DBG_TRACE_ENTER
    - COUNT_IF
    - back_handle_st_rdy
    - sc_ep_snd_ex
    - proxy_abrt_close
    - sc_ep_rcv_ex
    - sc_abort
    - http_perform_server_redirect
    - tick_first
    - sess_change_server
    - co_set_data
    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:2716,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:2722,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:2726,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:2726,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2729,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2730,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2731,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2732,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2733,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2734,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2735,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2736,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:2740,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:2740,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2743,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2744,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2745,1
    - Dst: swrate_add_dynamic
      Src: /src/haproxy/src/stream.c:2746,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2747,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2748,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2749,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/stream.c:2750,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2693
    functionDepth: 1
    functionLinenumber: 2693
    functionLinenumberEnd: 2751
    functionName: stream_update_time_stats
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 2
    functionsReached:
    - ns_to_ms
    - HA_ATOMIC_UPDATE_MAX
    - objt_server
    - HA_ATOMIC_LOAD
    - swrate_add_dynamic
    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:2784,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:2798,1
    - Dst: stream_del_srv_conn
      Src: /src/haproxy/src/stream.c:2799,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:2800,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/stream.c:2801,1
    - Dst: struct server*::proxy::lbprm::server_drop_conn
      Src: /src/haproxy/src/stream.c:2803,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/stream.c:2807,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/stream.c:2808,1
    - Dst: struct server*::proxy::lbprm::server_take_conn
      Src: /src/haproxy/src/stream.c:2810,1
    - Dst: stream_add_srv_conn
      Src: /src/haproxy/src/stream.c:2811,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - strm
    - newsrv
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2760
    functionDepth: 1
    functionLinenumber: 2760
    functionLinenumberEnd: 2813
    functionName: sess_change_server
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 7
    functionsReached:
    - _HA_ATOMIC_DEC
    - struct server*::proxy::lbprm::server_drop_conn
    - __ha_barrier_atomic_store
    - struct server*::proxy::lbprm::server_take_conn
    - stream_add_srv_conn
    - _HA_ATOMIC_INC
    - stream_del_srv_conn
    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: 2862
      start: 2820
    functionDepth: 0
    functionLinenumber: 2820
    functionLinenumberEnd: 2862
    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:2878,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/stream.c:2881,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:2881,1
    - Dst: sess_change_server
      Src: /src/haproxy/src/stream.c:2884,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/src/stream.c:2885,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:2885,1
    - Dst: process_srv_queue
      Src: /src/haproxy/src/stream.c:2886,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:2886,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/stream.c:2891,1
    - Dst: struct stream*::srv_error
      Src: /src/haproxy/src/stream.c:2895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - stream
    - why
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2896
      start: 2869
    functionDepth: 4
    functionLinenumber: 2869
    functionLinenumberEnd: 2896
    functionName: stream_shutdown_self
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - process_srv_queue
    - _HA_ATOMIC_DEC
    - struct stream*::srv_error
    - __objt_server
    - objt_server
    - may_dequeue_tasks
    - sc_shutdown
    - 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:2907,1
    - Dst: objt_appctx
      Src: /src/haproxy/src/stream.c:2909,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/stream.c:2913,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stream.c:2918,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:2919,1
    - Dst: strm_dump_to_buffer
      Src: /src/haproxy/src/stream.c:2920,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stream.c:2920,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:2925,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/stream.c:2926,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:2927,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:2929,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/stream.c:2930,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:2931,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:2934,1
    - Dst: obj_type_name
      Src: /src/haproxy/src/stream.c:2938,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stream.c:2940,1
    - Dst: send_log
      Src: /src/haproxy/src/stream.c:2941,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/stream.c:2942,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - obj
    - rate
    argTypes:
    - enum obj_type*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2943
      start: 2901
    functionDepth: 10
    functionLinenumber: 2901
    functionLinenumberEnd: 2943
    functionName: stream_dump_and_crash
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 3
    functionsReached:
    - resolve_sym_name
    - objt_stream
    - chunk_printf
    - chunk_appendf
    - obj_type_name
    - HA_ATOMIC_LOAD
    - send_log
    - objt_appctx
    - memprintf
    - strm_dump_to_buffer
    - ha_alert
    - ABORT_NOW
    - appctx_strm
    - chunk_reset
    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:2951,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2952
      start: 2946
    functionDepth: 1
    functionLinenumber: 2946
    functionLinenumberEnd: 2952
    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: isttest
      Src: /src/haproxy/src/stream.c:2965,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/stream.c:2971,1
    - Dst: ist2
      Src: /src/haproxy/src/stream.c:2974,1
    - Dst: build_logline
      Src: /src/haproxy/src/stream.c:2975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - strm
    - format
    argTypes:
    - struct stream*
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2979
      start: 2963
    functionDepth: 1
    functionLinenumber: 2963
    functionLinenumberEnd: 2979
    functionName: stream_generate_unique_id
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 5
    functionsReached:
    - ist2
    - isttest
    - pool_alloc
    - build_logline
    linkageType: ''
    returnType: struct ist
    signature: struct ist stream_generate_unique_id(struct stream *strm, struct lf_expr
      *format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/stream.c:2992,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: 3000
      start: 2984
    functionDepth: 3
    functionLinenumber: 2984
    functionLinenumberEnd: 3000
    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:3015,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3019,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3023,1
    - Dst: strtol
      Src: /src/haproxy/src/stream.c:3029,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3032,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/stream.c:3039,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3049,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/stream.c:3051,1
    - Dst: free
      Src: /src/haproxy/src/stream.c:3052,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: 3063
      start: 3006
    functionDepth: 7
    functionLinenumber: 3006
    functionLinenumberEnd: 3063
    functionName: stream_parse_set_retries
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - free
    - sample_src_names
    - memprintf
    - strtol
    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: 3070
      start: 3065
    functionDepth: 0
    functionLinenumber: 3065
    functionLinenumberEnd: 3070
    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:3083,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3086,1
    - Dst: get_log_level
      Src: /src/haproxy/src/stream.c:3088,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: 3098
      start: 3076
    functionDepth: 5
    functionLinenumber: 3076
    functionLinenumberEnd: 3098
    functionName: stream_parse_set_log_level
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - get_log_level
    - memprintf
    - strcmp
    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: 3105
      start: 3100
    functionDepth: 0
    functionLinenumber: 3100
    functionLinenumberEnd: 3105
    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:3118,1
    - Dst: atoi
      Src: /src/haproxy/src/stream.c:3122,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: 3135
      start: 3111
    functionDepth: 5
    functionLinenumber: 3111
    functionLinenumberEnd: 3135
    functionName: stream_parse_set_nice
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:3144,1
    - Dst: stream_set_http_mode
      Src: /src/haproxy/src/stream.c:3145,1
    - Dst: stream_abort
      Src: /src/haproxy/src/stream.c:3146,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: 3151
      start: 3138
    functionDepth: 9
    functionLinenumber: 3138
    functionLinenumberEnd: 3151
    functionName: tcp_action_switch_stream_mode
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - stream_set_http_mode
    - stream_abort
    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:3159,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/stream.c:3165,1
    - Dst: isteq
      Src: /src/haproxy/src/stream.c:3166,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3167,1
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/src/stream.c:3173,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3175,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: 3184
      start: 3154
    functionDepth: 5
    functionLinenumber: 3154
    functionLinenumberEnd: 3184
    functionName: check_tcp_switch_stream_mode
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - conn_pr_mode_to_proto_mode
    - isteq
    - conn_get_best_mux_entry
    - memprintf
    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:3196,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3201,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/stream.c:3202,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3208,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3211,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3216,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3218,1
    - Dst: ist
      Src: /src/haproxy/src/stream.c:3223,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/stream.c:3224,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3226,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: 3242
      start: 3186
    functionDepth: 5
    functionLinenumber: 3186
    functionLinenumberEnd: 3242
    functionName: stream_parse_switch_mode
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - strcmp
    - get_mux_proto
    - memprintf
    - proxy_type_str
    - ist
    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:3253,1
    - Dst: action_lookup
      Src: /src/haproxy/src/stream.c:3258,1
    - Dst: memprintf
      Src: /src/haproxy/src/stream.c:3260,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/stream.c:3267,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: 3275
      start: 3245
    functionDepth: 5
    functionLinenumber: 3245
    functionLinenumberEnd: 3275
    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: LIST_APPEND
      Src: /src/haproxy/src/stream.c:3279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw_list
    argTypes:
    - struct action_kw_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3280
      start: 3277
    functionDepth: 1
    functionLinenumber: 3277
    functionLinenumberEnd: 3280
    functionName: service_keywords_register
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    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:3284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3285
      start: 3282
    functionDepth: 1
    functionLinenumber: 3282
    functionLinenumberEnd: 3285
    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:3298,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:3301,1
    - Dst: strordered
      Src: /src/haproxy/src/stream.c:3303,1
    - Dst: fprintf
      Src: /src/haproxy/src/stream.c:3313,1
    - Dst: printf
      Src: /src/haproxy/src/stream.c:3315,1
    - Dst: fprintf
      Src: /src/haproxy/src/stream.c:3318,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 1
    argNames:
    - out
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3319
      start: 3290
    functionDepth: 1
    functionLinenumber: 3290
    functionLinenumberEnd: 3319
    functionName: list_services
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - printf
    - strordered
    - list_for_each_entry
    - fprintf
    linkageType: ''
    returnType: void
    signature: void list_services(FILE *out)
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3366,1
    - Dst: get_localtime
      Src: /src/haproxy/src/stream.c:3370,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3371,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3378,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3379,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3379,1
    - Dst: objt_conn
      Src: /src/haproxy/src/stream.c:3381,1
    - Dst: strm_orig
      Src: /src/haproxy/src/stream.c:3381,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/stream.c:3385,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:3387,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3390,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3391,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:3391,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3396,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3396,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3400,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3404,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:3408,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3409,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3409,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3410,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/stream.c:3412,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3414,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3417,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3419,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:3419,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:3419,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stream.c:3419,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:3419,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3420,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3420,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3420,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3421,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3421,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/stream.c:3425,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:3427,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3430,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3431,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:3431,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3436,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:3436,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3440,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3445,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3447,1
    - Dst: proxy_mode_str
      Src: /src/haproxy/src/stream.c:3448,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3450,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:3452,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/stream.c:3456,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:3458,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3461,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3462,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:3462,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3467,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3471,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3476,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:3478,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3478,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:3478,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:3479,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:3479,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3481,1
    - Dst: conn_get_dst
      Src: /src/haproxy/src/stream.c:3485,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:3487,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3490,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3491,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:3491,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3496,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3500,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3504,1
    - Dst: read_freq_ctr_period_estimate
      Src: /src/haproxy/src/stream.c:3509,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stream.c:3509,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:3511,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3512,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3512,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3513,1
    - Dst: task_in_rq
      Src: /src/haproxy/src/stream.c:3517,1
    - Dst: ms_to_ns
      Src: /src/haproxy/src/stream.c:3520,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3521,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3523,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:3523,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:3523,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3526,1
    - Dst: h1_msg_state_str
      Src: /src/haproxy/src/stream.c:3529,1
    - Dst: h1_msg_state_str
      Src: /src/haproxy/src/stream.c:3529,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3532,1
    - Dst: HA_ANON_STR
      Src: /src/haproxy/src/stream.c:3532,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/stream.c:3533,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3537,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3538,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3538,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/stream.c:3538,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:3539,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:3539,1
    - Dst: sc_ep_get
      Src: /src/haproxy/src/stream.c:3540,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3541,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:3542,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3542,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3542,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:3542,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3542,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3543,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:3544,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3544,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3544,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:3544,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3544,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3545,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:3546,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3546,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3546,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:3546,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3546,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3547,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:3548,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3548,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3548,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:3548,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3548,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3550,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:3553,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:3554,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/stream.c:3555,1
    - Dst: b_size
      Src: /src/haproxy/src/stream.c:3556,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:3558,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:3562,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3563,1
    - Dst: struct connection*::mux::show_sd
      Src: /src/haproxy/src/stream.c:3564,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3565,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3568,1
    - Dst: conn_get_ctrl_name
      Src: /src/haproxy/src/stream.c:3571,1
    - Dst: conn_get_xprt_name
      Src: /src/haproxy/src/stream.c:3572,1
    - Dst: conn_get_mux_name
      Src: /src/haproxy/src/stream.c:3573,1
    - Dst: sc_get_data_name
      Src: /src/haproxy/src/stream.c:3574,1
    - Dst: obj_type_name
      Src: /src/haproxy/src/stream.c:3575,1
    - Dst: obj_base_ptr
      Src: /src/haproxy/src/stream.c:3576,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3578,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3581,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3582,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3583,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3584,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stream.c:3586,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3587,1
    - Dst: read_freq_ctr_period_estimate
      Src: /src/haproxy/src/stream.c:3595,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stream.c:3595,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3599,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3600,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3600,1
    - Dst: sc_state_str
      Src: /src/haproxy/src/stream.c:3600,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:3601,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/stream.c:3601,1
    - Dst: sc_ep_get
      Src: /src/haproxy/src/stream.c:3602,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3603,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:3604,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3604,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3604,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:3604,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3604,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3605,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:3606,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3606,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3606,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:3606,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3606,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3607,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:3608,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3608,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3608,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:3608,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3608,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3609,1
    - Dst: tick_isset
      Src: /src/haproxy/src/stream.c:3610,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3610,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3610,1
    - Dst: tick_add
      Src: /src/haproxy/src/stream.c:3610,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3610,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3612,1
    - Dst: b_data
      Src: /src/haproxy/src/stream.c:3615,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:3616,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/stream.c:3617,1
    - Dst: b_size
      Src: /src/haproxy/src/stream.c:3618,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:3620,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:3624,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3625,1
    - Dst: struct connection*::mux::show_sd
      Src: /src/haproxy/src/stream.c:3626,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3627,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3630,1
    - Dst: conn_get_ctrl_name
      Src: /src/haproxy/src/stream.c:3633,1
    - Dst: conn_get_xprt_name
      Src: /src/haproxy/src/stream.c:3634,1
    - Dst: conn_get_mux_name
      Src: /src/haproxy/src/stream.c:3635,1
    - Dst: sc_get_data_name
      Src: /src/haproxy/src/stream.c:3636,1
    - Dst: obj_type_name
      Src: /src/haproxy/src/stream.c:3637,1
    - Dst: obj_base_ptr
      Src: /src/haproxy/src/stream.c:3638,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3640,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3643,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3644,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3645,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:3646,1
    - Dst: sc_appctx
      Src: /src/haproxy/src/stream.c:3648,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3649,1
    - Dst: read_freq_ctr_period_estimate
      Src: /src/haproxy/src/stream.c:3657,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stream.c:3657,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/stream.c:3660,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3663,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:3664,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3666,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3667,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:3667,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3669,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3672,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3681,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3681,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3682,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:3684,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/stream.c:3685,1
    - Dst: c_data
      Src: /src/haproxy/src/stream.c:3686,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:3689,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:3690,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3692,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:3694,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/stream.c:3697,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3700,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3704,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:3713,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3713,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:3714,1
    - Dst: b_orig
      Src: /src/haproxy/src/stream.c:3716,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/stream.c:3717,1
    - Dst: c_data
      Src: /src/haproxy/src/stream.c:3718,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/stream.c:3721,1
    - Dst: htxbuf
      Src: /src/haproxy/src/stream.c:3722,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3724,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/stream.c:3726,1
    - Dst: HAS_FILTERS
      Src: /src/haproxy/src/stream.c:3730,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3733,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3739,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: 3741
      start: 3348
    functionDepth: 2
    functionLinenumber: 3348
    functionLinenumberEnd: 3741
    functionName: __strm_dump_to_buffer
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - b_peek_ofs
    - strm_fe
    - conn_get_ctrl_name
    - FLT_ID
    - conn_get_src
    - HA_ANON_STR
    - sc_state_str
    - LIST_INLIST
    - sc_get_data_name
    - get_host_port
    - ms_to_ns
    - conn_get_mux_name
    - obj_base_ptr
    - sc_ep_test
    - objt_conn
    - tick_is_expired
    - snprintf
    - b_data
    - chunk_appendf
    - human_time
    - conn_get_xprt_name
    - tick_isset
    - strm_orig
    - conn_get_dst
    - b_head_ofs
    - sc_ep_get
    - htxbuf
    - HAS_FILTERS
    - addr_to_str
    - htx_nbblks
    - read_freq_ctr_period_estimate
    - __objt_server
    - strm_li
    - sc_ep_snd_ex
    - MS_TO_TICKS
    - b_size
    - chunk_memcat
    - c_data
    - b_orig
    - tick_add
    - IS_HTX_STRM
    - sc_ep_rcv_ex
    - list_for_each_entry
    - obj_type_name
    - objt_server
    - ns_to_sec
    - proxy_mode_str
    - conn_fd
    - sc_appctx
    - get_localtime
    - TICKS_TO_MS
    - struct connection*::mux::show_sd
    - h1_msg_state_str
    - task_in_rq
    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:3748,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: 3749
      start: 3746
    functionDepth: 3
    functionLinenumber: 3746
    functionLinenumberEnd: 3749
    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:3760,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:3764,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stream.c:3765,1
    - Dst: __strm_dump_to_buffer
      Src: /src/haproxy/src/stream.c:3777,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stream.c:3778,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - appctx
    - strm
    argTypes:
    - struct appctx*
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3790
      start: 3756
    functionDepth: 3
    functionLinenumber: 3756
    functionLinenumberEnd: 3790
    functionName: stats_dump_full_strm_to_buffer
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - applet_putchk
    - __strm_dump_to_buffer
    - 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:3794,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/stream.c:3797,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3807,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3812,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/stream.c:3814,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3816,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3822,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3826,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:3827,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3841,1
    - Dst: strtoul
      Src: /src/haproxy/src/stream.c:3844,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3851,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3854,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3857,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3863,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3866,1
    - Dst: ist
      Src: /src/haproxy/src/stream.c:3868,1
    - Dst: istsplit
      Src: /src/haproxy/src/stream.c:3869,1
    - Dst: istlen
      Src: /src/haproxy/src/stream.c:3870,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3871,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/stream.c:3873,1
    - Dst: ist0
      Src: /src/haproxy/src/stream.c:3873,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3874,1
    - Dst: server_find
      Src: /src/haproxy/src/stream.c:3876,1
    - Dst: ist0
      Src: /src/haproxy/src/stream.c:3876,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3877,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3882,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3886,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3889,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/stream.c:3891,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3892,1
    - Dst: strcmp
      Src: /src/haproxy/src/stream.c:3898,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3902,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3905,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/stream.c:3907,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3908,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:3915,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:3916,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stream.c:3924,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/stream.c:3929,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/stream.c:3929,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: 3931
      start: 3792
    functionDepth: 3
    functionLinenumber: 3792
    functionLinenumberEnd: 3931
    functionName: cli_parse_show_sess
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_FETCH_ADD
    - istlen
    - strcmp
    - chunk_printf
    - ist0
    - server_find
    - proxy_fe_by_name
    - cli_err
    - parse_time_err
    - istsplit
    - proxy_be_by_name
    - LIST_INIT
    - strtoul
    - cli_has_level
    - applet_reserve_svcctx
    - appctx_strm
    - ist
    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:3943,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/stream.c:3950,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/stream.c:3953,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:3954,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stream.c:3955,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/stream.c:3972,1
    - Dst: appctx_strm
      Src: /src/haproxy/src/stream.c:3973,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:3986,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:3986,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/stream.c:4006,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stream.c:4015,1
    - Dst: stats_dump_full_strm_to_buffer
      Src: /src/haproxy/src/stream.c:4017,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:4021,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/stream.c:4022,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4031,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:4034,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:4034,1
    - Dst: objt_conn
      Src: /src/haproxy/src/stream.c:4036,1
    - Dst: strm_orig
      Src: /src/haproxy/src/stream.c:4036,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/stream.c:4037,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/stream.c:4037,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4040,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4042,1
    - Dst: get_host_port
      Src: /src/haproxy/src/stream.c:4043,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4044,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:4044,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4045,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:4046,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4046,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:4046,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4052,1
    - Dst: strm_li
      Src: /src/haproxy/src/stream.c:4054,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4055,1
    - Dst: strm_fe
      Src: /src/haproxy/src/stream.c:4055,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4056,1
    - Dst: objt_server
      Src: /src/haproxy/src/stream.c:4057,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4057,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stream.c:4057,1
    - Dst: ms_to_ns
      Src: /src/haproxy/src/stream.c:4063,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4064,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4067,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:4067,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/stream.c:4067,1
    - Dst: read_freq_ctr
      Src: /src/haproxy/src/stream.c:4068,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4071,1
    - Dst: ci_data
      Src: /src/haproxy/src/stream.c:4074,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4077,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4080,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4080,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4081,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4083,1
    - Dst: ci_data
      Src: /src/haproxy/src/stream.c:4086,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4088,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4091,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4091,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4092,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:4094,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4095,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:4096,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4097,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:4098,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4099,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4099,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:4099,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4100,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4101,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:4102,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4103,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4103,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:4103,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4104,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:4106,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4107,1
    - Dst: conn_fd
      Src: /src/haproxy/src/stream.c:4108,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4109,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:4110,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4111,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4111,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/src/stream.c:4111,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4112,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4113,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:4114,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4115,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4115,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/src/stream.c:4115,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4116,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4118,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4121,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4121,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4122,1
    - Dst: human_time
      Src: /src/haproxy/src/stream.c:4125,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4125,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/stream.c:4126,1
    - Dst: task_in_rq
      Src: /src/haproxy/src/stream.c:4127,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4128,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4131,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/stream.c:4131,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4133,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stream.c:4135,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/stream.c:4139,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4150,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4152,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/stream.c:4154,1
    - Dst: thread_release
      Src: /src/haproxy/src/stream.c:4163,1
    - Dst: thread_release
      Src: /src/haproxy/src/stream.c:4166,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 127
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4168
      start: 3938
    functionDepth: 4
    functionLinenumber: 3938
    functionLinenumberEnd: 4168
    functionName: cli_io_handler_dump_sess
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - thread_isolate
    - strm_fe
    - conn_get_src
    - get_host_port
    - ms_to_ns
    - objt_conn
    - tick_is_expired
    - chunk_appendf
    - human_time
    - HA_ANON_CLI
    - strm_orig
    - LIST_INIT
    - LIST_ISEMPTY
    - thread_release
    - addr_to_str
    - __objt_server
    - strm_li
    - LIST_APPEND
    - ci_data
    - sc_ep_snd_ex
    - LIST_ELEM
    - appctx_strm
    - stats_dump_full_strm_to_buffer
    - sc_ep_rcv_ex
    - LIST_DELETE
    - read_freq_ctr
    - objt_server
    - ns_to_sec
    - task_in_rq
    - applet_putchk
    - conn_fd
    - TICKS_TO_MS
    - chunk_reset
    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:4180,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/stream.c:4181,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/stream.c:4182,1
    - Dst: thread_release
      Src: /src/haproxy/src/stream.c:4183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4185
      start: 4170
    functionDepth: 1
    functionLinenumber: 4170
    functionLinenumberEnd: 4185
    functionName: cli_release_show_sess
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - thread_release
    - LIST_ISEMPTY
    - LIST_DELETE
    - thread_isolate
    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:4193,1
    - Dst: strtoul
      Src: /src/haproxy/src/stream.c:4196,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4198,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/stream.c:4202,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/stream.c:4206,1
    - Dst: stream_shutdown
      Src: /src/haproxy/src/stream.c:4208,1
    - Dst: thread_release
      Src: /src/haproxy/src/stream.c:4214,1
    - Dst: cli_err
      Src: /src/haproxy/src/stream.c:4218,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: 4221
      start: 4188
    functionDepth: 2
    functionLinenumber: 4188
    functionLinenumberEnd: 4221
    functionName: cli_parse_shutdown_session
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - thread_release
    - list_for_each_entry
    - thread_isolate
    - cli_err
    - stream_shutdown
    - strtoul
    - cli_has_level
    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:4228,1
    - Dst: cli_find_server
      Src: /src/haproxy/src/stream.c:4231,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/stream.c:4236,1
    - Dst: srv_shutdown_streams
      Src: /src/haproxy/src/stream.c:4237,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/stream.c:4238,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: 4240
      start: 4224
    functionDepth: 4
    functionLinenumber: 4224
    functionLinenumberEnd: 4240
    functionName: cli_parse_shutdown_sessions_server
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - cli_find_server
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - srv_shutdown_streams
    - cli_has_level
    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:4305,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: 4307
      start: 4298
    functionDepth: 1
    functionLinenumber: 4298
    functionLinenumberEnd: 4307
    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:4316,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: 4318
      start: 4309
    functionDepth: 1
    functionLinenumber: 4309
    functionLinenumberEnd: 4318
    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:4327,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: 4329
      start: 4320
    functionDepth: 1
    functionLinenumber: 4320
    functionLinenumberEnd: 4329
    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:4343,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: 4345
      start: 4331
    functionDepth: 0
    functionLinenumber: 4331
    functionLinenumberEnd: 4345
    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: 4359
      start: 4347
    functionDepth: 0
    functionLinenumber: 4347
    functionLinenumberEnd: 4359
    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:4370,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:4372,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4378,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4380,1
    - Dst: strlen
      Src: /src/haproxy/src/stream.c:4381,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4381,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4384,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:4386,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: 4394
      start: 4361
    functionDepth: 2
    functionLinenumber: 4361
    functionLinenumberEnd: 4394
    functionName: smp_fetch_last_entity
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - FLT_ID
    - get_trash_chunk
    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:4405,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:4407,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4413,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4415,1
    - Dst: strlen
      Src: /src/haproxy/src/stream.c:4416,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/stream.c:4416,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4419,1
    - Dst: snprintf
      Src: /src/haproxy/src/stream.c:4421,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/stream.c:4426,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/stream.c:4428,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: 4435
      start: 4396
    functionDepth: 2
    functionLinenumber: 4396
    functionLinenumberEnd: 4435
    functionName: smp_fetch_waiting_entity
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - snprintf
    - FLT_ID
    - strlen
    - chunk_memcat
    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:4439,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: 4453
      start: 4437
    functionDepth: 2
    functionLinenumber: 4437
    functionLinenumberEnd: 4453
    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:4462,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: 4466
      start: 4455
    functionDepth: 1
    functionLinenumber: 4455
    functionLinenumberEnd: 4466
    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:4470,1
    - Dst: objt_conn
      Src: /src/haproxy/src/stream.c:4474,1
    - Dst: sc_conn
      Src: /src/haproxy/src/stream.c:4475,1
    - Dst: struct connection*::mux::ctl
      Src: /src/haproxy/src/stream.c:4479,1
    - Dst: mux::ctl
      Src: /src/haproxy/src/stream.c:4481,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/stream.c:4483,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4483,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4484,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4484,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4485,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4485,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4486,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4486,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4487,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4487,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4488,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4488,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/stream.c:4489,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/stream.c:4489,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: 4495
      start: 4468
    functionDepth: 2
    functionLinenumber: 4468
    functionLinenumberEnd: 4495
    functionName: smp_fetch_tevts
    functionSourceFile: /src/haproxy/src/stream.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - objt_conn
    - get_trash_chunk
    - mux::ctl
    - chunk_printf
    - chunk_appendf
    - struct connection*::mux::ctl
    - tevt_evts2str
    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: 4505
      start: 4497
    functionDepth: 0
    functionLinenumber: 4497
    functionLinenumberEnd: 4505
    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:4514,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: 4518
      start: 4507
    functionDepth: 1
    functionLinenumber: 4507
    functionLinenumberEnd: 4518
    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:
    - strdup
    - free
    - calloc
    - ssl_sock_free_ssl_conf
    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
    - strdup
    - calloc
    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:
    - crtlist_free_filters
    - LIST_DELETE
    - list_for_each_entry_safe
    - free
    - ckch_inst_free
    - ssl_sock_free_ssl_conf
    - ebpt_delete
    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_ssl_conf
    - crtlist_dup_filters
    - crtlist_entry_new
    - free
    - ssl_sock_free_ssl_conf
    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:
    - LIST_INIT
    - calloc
    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:
    - ebmb_delete
    - list_for_each_entry_safe
    - free
    - crtlist_entry_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:
    - strlen
    - LIST_INIT
    - calloc
    - memcpy
    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:
    - crtlist_free_filters
    - isspace
    - strcmp
    - ha_free
    - crtlist_dup_filters
    - strlen
    - memprintf
    - ssl_sock_free_ssl_conf
    - parse
    - ckch_conf_parse
    - calloc
    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: 17
    BranchProfiles: []
    Callsites:
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:519,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_crtlist.c:521,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:525,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_crtlist.c:526,1
    - Dst: ckch_store_new_load_files_conf
      Src: /src/haproxy/src/ssl_crtlist.c:533,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:543,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:544,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:545,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_crtlist.c:561,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:565,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_crtlist.c:567,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:570,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_crtlist.c:574,1
    - Dst: crtlist_entry_dup
      Src: /src/haproxy/src/ssl_crtlist.c:587,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:598,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:599,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:600,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:606,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:613,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_crtlist.c:614,1
    - Dst: ckch_conf_cmp
      Src: /src/haproxy/src/ssl_crtlist.c:619,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:620,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:628,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:629,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:630,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 95
    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: 638
      start: 511
    functionDepth: 6
    functionLinenumber: 511
    functionLinenumberEnd: 638
    functionName: crtlist_load_crt
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - strdup
    - snprintf
    - ckch_store_new_load_files_conf
    - stat
    - ckchs_lookup
    - ckch_store_new_load_files_path
    - ebpt_insert
    - LIST_APPEND
    - crtlist_entry_dup
    - free
    - memprintf
    - strerror
    - ckch_conf_cmp
    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:656,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:657,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_crtlist.c:657,1
    - Dst: crtlist_new
      Src: /src/haproxy/src/ssl_crtlist.c:661,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:663,1
    - Dst: fgets
      Src: /src/haproxy/src/ssl_crtlist.c:668,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:676,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:684,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:689,1
    - Dst: crtlist_entry_new
      Src: /src/haproxy/src/ssl_crtlist.c:707,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:709,1
    - Dst: crtlist_parse_line
      Src: /src/haproxy/src/ssl_crtlist.c:714,1
    - Dst: crtlist_entry_free
      Src: /src/haproxy/src/ssl_crtlist.c:720,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:726,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:726,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_crtlist.c:727,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:728,1
    - Dst: crtlist_load_crt
      Src: /src/haproxy/src/ssl_crtlist.c:736,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:743,1
    - Dst: fclose
      Src: /src/haproxy/src/ssl_crtlist.c:753,1
    - Dst: crtlist_entry_free
      Src: /src/haproxy/src/ssl_crtlist.c:758,1
    - Dst: fclose
      Src: /src/haproxy/src/ssl_crtlist.c:762,1
    - Dst: crtlist_free
      Src: /src/haproxy/src/ssl_crtlist.c:763,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: 765
      start: 646
    functionDepth: 7
    functionLinenumber: 646
    functionLinenumberEnd: 765
    functionName: crtlist_parse_file
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 1
    functionsReached:
    - crtlist_new
    - snprintf
    - fclose
    - fgets
    - crtlist_entry_new
    - crtlist_load_crt
    - strlen
    - crtlist_parse_line
    - crtlist_free
    - strerror
    - memprintf
    - fopen
    - crtlist_entry_free
    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:783,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:785,1
    - Dst: scandir
      Src: /src/haproxy/src/ssl_crtlist.c:789,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:791,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_crtlist.c:792,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_crtlist.c:800,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:802,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:802,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:803,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:803,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_crtlist.c:806,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_crtlist.c:807,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:808,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_crtlist.c:809,1
    - Dst: S_ISREG
      Src: /src/haproxy/src/ssl_crtlist.c:813,1
    - Dst: crtlist_entry_new
      Src: /src/haproxy/src/ssl_crtlist.c:816,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:818,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:823,1
    - Dst: ckch_store_new_load_files_path
      Src: /src/haproxy/src/ssl_crtlist.c:825,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:827,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:828,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:834,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:835,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:836,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:839,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:842,1
    - Dst: crtlist_free
      Src: /src/haproxy/src/ssl_crtlist.c:847,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: 853
      start: 772
    functionDepth: 6
    functionLinenumber: 772
    functionLinenumberEnd: 853
    functionName: crtlist_load_cert_dir
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 1
    functionsReached:
    - crtlist_new
    - strcmp
    - snprintf
    - stat
    - strrchr
    - ckchs_lookup
    - ckch_store_new_load_files_path
    - scandir
    - crtlist_entry_new
    - LIST_APPEND
    - free
    - ebpt_insert
    - crtlist_free
    - strerror
    - memprintf
    - S_ISREG
    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:866,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:880,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:887,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:888,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:893,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:903,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:905,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:907,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:914,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:915,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/ssl_crtlist.c:920,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:927,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:928,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:931,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:932,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:935,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:936,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:948,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:949,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:953,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:954,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:958,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:959,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:963,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:964,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:969,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:970,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:975,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:976,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:980,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:981,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:986,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:987,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:992,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:993,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:1005,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1006,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1016,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1017,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1020,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1021,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1027,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: 1030
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 1030
    functionName: dump_crtlist_conf
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - chunk_memcat
    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:1041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - entry
    argTypes:
    - struct buffer*
    - struct crtlist_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1044
    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:1055,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_crtlist.c:1064,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1066,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1067,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_crtlist.c:1069,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1071,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1075,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1052
    functionDepth: 1
    functionLinenumber: 1052
    functionLinenumberEnd: 1077
    functionName: cli_io_handler_dump_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - ebmb_first
    - free_trash_chunk
    - chunk_appendf
    - applet_putchk
    - ebmb_next
    - alloc_trash_chunk
    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:1083,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1090,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_crtlist.c:1094,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_crtlist.c:1094,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1095,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1096,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/ssl_crtlist.c:1100,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1106,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1108,1
    - Dst: dump_crtlist_conf
      Src: /src/haproxy/src/ssl_crtlist.c:1109,1
    - Dst: dump_crtlist_filters
      Src: /src/haproxy/src/ssl_crtlist.c:1110,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1111,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1113,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1116,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_crtlist.c:1120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1122
    functionName: cli_io_handler_dump_crtlist_entries
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - dump_crtlist_filters
    - dump_crtlist_conf
    - list_for_each_entry_from
    - free_trash_chunk
    - chunk_appendf
    - applet_putchk
    - typeof
    - ebmb_entry
    - alloc_trash_chunk
    - 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:1127,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_crtlist.c:1133,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_crtlist.c:1136,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1145,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1151,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1154,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1156,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: 1164
      start: 1125
    functionDepth: 2
    functionLinenumber: 1125
    functionLinenumberEnd: 1164
    functionName: cli_parse_dump_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cli_err
    - strlen
    - ebst_lookup
    - cli_has_level
    - applet_reserve_svcctx
    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:1178,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1179,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1180,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:1182,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_crtlist.c:1183,1
    - Dst: crtlist_free_filters
      Src: /src/haproxy/src/ssl_crtlist.c:1185,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_crtlist.c:1186,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1187,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1188,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1190,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_crtlist.c:1191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1169
    functionDepth: 4
    functionLinenumber: 1169
    functionLinenumberEnd: 1192
    functionName: cli_release_add_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - crtlist_free_filters
    - LIST_DELETE
    - list_for_each_entry_safe
    - ha_free
    - free
    - ckch_inst_free
    - HA_SPIN_UNLOCK
    - ssl_sock_free_ssl_conf
    - ebpt_delete
    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:1220,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1221,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/ssl_crtlist.c:1237,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/ssl_crtlist.c:1242,1
    - Dst: ckch_inst_new_load_store
      Src: /src/haproxy/src/ssl_crtlist.c:1247,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1255,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_crtlist.c:1258,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:1267,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:1268,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1280,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1283,1
    - Dst: ssl_sock_load_cert_sni
      Src: /src/haproxy/src/ssl_crtlist.c:1284,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1285,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_crtlist.c:1292,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1293,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1295,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_crtlist.c:1296,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1297,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_crtlist.c:1304,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_crtlist.c:1305,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 88
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1203
    functionDepth: 8
    functionLinenumber: 1203
    functionLinenumberEnd: 1318
    functionName: cli_io_handler_add_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - HA_RWLOCK_WRLOCK
    - chunk_printf
    - HA_RWLOCK_WRUNLOCK
    - chunk_appendf
    - LIST_APPEND
    - ckch_inst_new_load_store
    - applet_putstr
    - applet_putchk
    - ssl_sock_prep_ctx_and_inst
    - ssl_sock_load_cert_sni
    - applet_have_more_data
    - chunk_reset
    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:1328,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_crtlist.c:1342,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1346,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1351,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1354,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1355,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1357,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1359,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1362,1
    - Dst: crtlist_entry_new
      Src: /src/haproxy/src/ssl_crtlist.c:1364,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1366,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_crtlist.c:1374,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1376,1
    - Dst: crtlist_parse_line
      Src: /src/haproxy/src/ssl_crtlist.c:1380,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1388,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1394,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1394,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1395,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1396,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1403,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1405,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1409,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_crtlist.c:1417,1
    - Dst: ckch_store_load_files
      Src: /src/haproxy/src/ssl_crtlist.c:1421,1
    - Dst: ckch_conf_cmp
      Src: /src/haproxy/src/ssl_crtlist.c:1425,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1426,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_crtlist.c:1433,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1435,1
    - Dst: eb_gettag
      Src: /src/haproxy/src/ssl_crtlist.c:1440,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1441,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:1445,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_crtlist.c:1447,1
    - Dst: ckch_conf_clean
      Src: /src/haproxy/src/ssl_crtlist.c:1457,1
    - Dst: crtlist_entry_free
      Src: /src/haproxy/src/ssl_crtlist.c:1458,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1459,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1460,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_crtlist.c:1461,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: 1462
      start: 1326
    functionDepth: 6
    functionLinenumber: 1326
    functionLinenumberEnd: 1462
    functionName: cli_parse_add_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ckchs_lookup
    - ebpt_insert
    - crtlist_parse_line
    - ebmb_entry
    - ckch_conf_cmp
    - crtlist_entry_free
    - snprintf
    - strrchr
    - ckch_conf_clean
    - crtlist_entry_new
    - strlen
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - cli_has_level
    - cli_err
    - LIST_APPEND
    - memprintf
    - ebst_lookup
    - applet_reserve_svcctx
    - eb_gettag
    - cli_dynerr
    - ckch_store_load_files
    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:1480,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1484,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1486,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_crtlist.c:1487,1
    - Dst: strchr
      Src: /src/haproxy/src/ssl_crtlist.c:1492,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_crtlist.c:1496,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1498,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_crtlist.c:1505,1
    - Dst: ebst_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1509,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1511,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1514,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1517,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1519,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1523,1
    - Dst: ebpt_lookup
      Src: /src/haproxy/src/ssl_crtlist.c:1527,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1529,1
    - Dst: ebpt_next_dup
      Src: /src/haproxy/src/ssl_crtlist.c:1534,1
    - Dst: ebpt_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1537,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1538,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1549,1
    - Dst: ebpt_next_dup
      Src: /src/haproxy/src/ssl_crtlist.c:1554,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1555,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:1561,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1564,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1567,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/ssl_crtlist.c:1575,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1576,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1577,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:1579,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1582,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_crtlist.c:1583,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_crtlist.c:1584,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_crtlist.c:1585,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_crtlist.c:1586,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1587,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1589,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_crtlist.c:1590,1
    - Dst: crtlist_free_filters
      Src: /src/haproxy/src/ssl_crtlist.c:1593,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/ssl_crtlist.c:1594,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1595,1
    - Dst: free
      Src: /src/haproxy/src/ssl_crtlist.c:1596,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1598,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1599,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_crtlist.c:1600,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_crtlist.c:1603,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_crtlist.c:1604,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_crtlist.c:1605,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: 1606
      start: 1465
    functionDepth: 5
    functionLinenumber: 1465
    functionLinenumberEnd: 1606
    functionName: cli_parse_del_crtlist
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 0
    functionsReached:
    - crtlist_free_filters
    - HA_SPIN_TRYLOCK
    - ckchs_lookup
    - ebmb_entry
    - ebmb_delete
    - ebpt_entry
    - ebpt_lookup
    - SSL_CTX_free
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - list_for_each_entry_safe
    - strlen
    - ssl_sock_free_ssl_conf
    - HA_SPIN_UNLOCK
    - ebpt_delete
    - cli_has_level
    - ebpt_next_dup
    - cli_err
    - memprintf
    - ebst_lookup
    - cli_dynmsg
    - LIST_DELETE
    - cli_dynerr
    - free
    - ckch_inst_free
    - strchr
    - strtol
    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:1615,1
    - Dst: eb_next
      Src: /src/haproxy/src/ssl_crtlist.c:1617,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_crtlist.c:1618,1
    - Dst: crtlist_free
      Src: /src/haproxy/src/ssl_crtlist.c:1619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1610
    functionDepth: 6
    functionLinenumber: 1610
    functionLinenumberEnd: 1622
    functionName: crtlist_deinit
    functionSourceFile: /src/haproxy/src/ssl_crtlist.c
    functionUses: 2
    functionsReached:
    - crtlist_free
    - eb_next
    - eb_first
    - 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:165,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_sockpair.c:171,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/proto_sockpair.c:175,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_sockpair.c:177,1
    - Dst: fd_insert
      Src: /src/haproxy/src/proto_sockpair.c:183,1
    - Dst: memprintf
      Src: /src/haproxy/src/proto_sockpair.c:188,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:194,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - rx
    - errmsg
    argTypes:
    - struct receiver*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 126
    functionDepth: 5
    functionLinenumber: 126
    functionLinenumberEnd: 196
    functionName: sockpair_bind_receiver
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - fd_set_nonblock
    - fd_insert
    - BUG_ON
    - close
    - memprintf
    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:223,1
    - Dst: snprintf
      Src: /src/haproxy/src/proto_sockpair.c:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 3
    argNames:
    - listener
    - errmsg
    - errlen
    argTypes:
    - struct listener*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 230
    functionName: sockpair_bind_listener
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - snprintf
    - listener_set_state
    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:246,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:247,1
    - Dst: memset
      Src: /src/haproxy/src/proto_sockpair.c:255,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:261,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/proto_sockpair.c:263,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/proto_sockpair.c:264,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/proto_sockpair.c:268,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_sockpair.c:269,1
    - Dst: sendmsg
      Src: /src/haproxy/src/proto_sockpair.c:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - fd
    - send_fd
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 276
    functionName: send_fd_uxst
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 1
    functionsReached:
    - memset
    - CMSG_LEN
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - CMSG_SPACE
    - sendmsg
    - memcpy
    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:309,1
    - Dst: obj_type
      Src: /src/haproxy/src/proto_sockpair.c:314,1
    - Dst: obj_type
      Src: /src/haproxy/src/proto_sockpair.c:315,1
    - Dst: socketpair
      Src: /src/haproxy/src/proto_sockpair.c:320,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_sockpair.c:321,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_sockpair.c:332,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:333,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:334,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/proto_sockpair.c:340,1
    - Dst: qfprintf
      Src: /src/haproxy/src/proto_sockpair.c:341,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:342,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:343,1
    - Dst: fd_set_cloexec
      Src: /src/haproxy/src/proto_sockpair.c:349,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_sockpair.c:350,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:351,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:352,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_sockpair.c:359,1
    - Dst: setsockopt
      Src: /src/haproxy/src/proto_sockpair.c:362,1
    - Dst: send_fd_uxst
      Src: /src/haproxy/src/proto_sockpair.c:366,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proto_sockpair.c:367,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:368,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:369,1
    - Dst: close
      Src: /src/haproxy/src/proto_sockpair.c:375,1
    - Dst: conn_ctrl_init
      Src: /src/haproxy/src/proto_sockpair.c:383,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/proto_sockpair.c:384,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 2
    argNames:
    - conn
    - flags
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 387
    functionName: sockpair_connect_server
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - obj_type
    - HA_ATOMIC_AND
    - fd_set_nonblock
    - BUG_ON
    - close
    - socketpair
    - send_fd_uxst
    - conn_ctrl_init
    - setsockopt
    - ha_alert
    - qfprintf
    - fd_set_cloexec
    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:403,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:404,1
    - Dst: memset
      Src: /src/haproxy/src/proto_sockpair.c:411,1
    - Dst: CMSG_SPACE
      Src: /src/haproxy/src/proto_sockpair.c:420,1
    - Dst: recvmsg
      Src: /src/haproxy/src/proto_sockpair.c:426,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/haproxy/src/proto_sockpair.c:436,1
    - Dst: CMSG_LEN
      Src: /src/haproxy/src/proto_sockpair.c:440,1
    - Dst: memcpy
      Src: /src/haproxy/src/proto_sockpair.c:441,1
    - Dst: CMSG_DATA
      Src: /src/haproxy/src/proto_sockpair.c:441,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - sock
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 444
    functionName: recv_fd_uxst
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - recvmsg
    - memset
    - CMSG_LEN
    - CMSG_FIRSTHDR
    - CMSG_DATA
    - CMSG_SPACE
    - memcpy
    linkageType: ''
    returnType: int
    signature: int recv_fd_uxst(int sock)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_sockpair.c:459,1
    - Dst: getsockname
      Src: /src/haproxy/src/proto_sockpair.c:466,1
    - Dst: getsockopt
      Src: /src/haproxy/src/proto_sockpair.c:473,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - rx
    argTypes:
    - struct receiver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 481
    functionName: sockpair_accepting_conn
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - getsockopt
    - getsockname
    linkageType: ''
    returnType: int
    signature: int sockpair_accepting_conn(const struct receiver *rx)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: recv_fd_uxst
      Src: /src/haproxy/src/proto_sockpair.c:494,1
    - Dst: fd_set_nonblock
      Src: /src/haproxy/src/proto_sockpair.c:495,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: 22
    EdgeCount: 22
    ICount: 67
    argCount: 2
    argNames:
    - l
    - status
    argTypes:
    - struct listener*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 487
    functionDepth: 10
    functionLinenumber: 487
    functionLinenumberEnd: 581
    functionName: sockpair_accept_conn
    functionSourceFile: /src/haproxy/src/proto_sockpair.c
    functionUses: 0
    functionsReached:
    - fd_cant_recv
    - sockaddr_alloc
    - fd_set_nonblock
    - _HA_ATOMIC_AND
    - recv_fd_uxst
    - send_log
    - conn_new
    - conn_free
    - likely
    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:
    - http_7239_valid_obfsc
    - istadv
    - istlen
    - 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:
    - istlen
    - istadv
    - istptr
    - isdigit
    - 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:
    - isalnum
    - istlen
    - istnext
    - istadv
    - istptr
    - 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:
    - isalnum
    - istlen
    - istnext
    - http_7239_extract_port
    - istptr
    - http_7239_extract_ipv6
    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:
    - istlen
    - istnext
    - strncmp
    - istadv
    - istptr
    - http_7239_extract_ipv6
    - http_7239_extract_obfs
    - http_7239_extract_ipv4
    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_obfs
    - istnext
    - http_7239_extract_port
    - 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: http_7239_extract_nodeport
      Src: /src/haproxy/src/http_ext.c:359,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    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:
    - istlen
    - istnext
    - istptr
    - http_7239_extract_nodeport
    - http_7239_extract_nodename
    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:
    - istnext
    - istlen
    - 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:
    - istlen
    - _forwarded_header_quote_expected
    - istnext
    - istadv
    - strncmp
    - istptr
    - http_7239_extract_node
    - _forwarded_header_save_ctx
    - http_7239_extract_host
    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:
    - istlen
    - chunk_appendf
    - chunk_cat
    - ist2
    - _7239_print_ip6
    - sample_process
    - http_7239_extract_nodename
    - http_7239_extract_obfs
    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: 3
    functionLinenumber: 576
    functionLinenumberEnd: 614
    functionName: http_build_7239_header_nodeport
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - istlen
    - ntohs
    - chunk_appendf
    - sample_fetch_as_type
    - chunk_cat
    - ist2
    - http_7239_extract_nodeport
    - http_7239_extract_obfs
    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: 4
    functionLinenumber: 616
    functionLinenumberEnd: 648
    functionName: http_build_7239_header_node
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - http_build_7239_header_nodename
    - http_build_7239_header_nodeport
    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: 3
    functionLinenumber: 650
    functionLinenumberEnd: 686
    functionName: http_build_7239_header_host
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - istlen
    - sample_fetch_as_type
    - ist2
    - chunk_memcat
    - http_7239_extract_host
    - ist
    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: 5
    functionLinenumber: 694
    functionLinenumberEnd: 729
    functionName: http_build_7239_header
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 0
    functionsReached:
    - conn_is_ssl
    - http_build_7239_header_node
    - objt_conn
    - unlikely
    - chunk_appendf
    - sc_dst
    - sc_src
    - http_build_7239_header_host
    - strm_sess
    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: 6
    functionLinenumber: 736
    functionLinenumberEnd: 777
    functionName: http_handle_7239_header
    functionSourceFile: /src/haproxy/src/http_ext.c
    functionUses: 1
    functionsReached:
    - htxbuf
    - http_add_header
    - http_find_header
    - unlikely
    - http_append_header_value
    - ist2
    - http_validate_7239_header
    - http_build_7239_header
    - ist
    - chunk_reset
    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:
    - htxbuf
    - http_add_header
    - http_find_header
    - unlikely
    - chunk_printf
    - inet_ntop
    - ipcmp2net
    - sc_src
    - ist2
    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:
    - htxbuf
    - http_add_header
    - unlikely
    - chunk_printf
    - inet_ntop
    - ipcmp2net
    - sc_dst
    - ist2
    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:
    - strdup
    - proxy_http_parse_oom
    - ha_free
    - ha_alert
    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:
    - strdup
    - proxy_http_parse_oom
    - ha_warning
    - strcmp
    - warnifnotcap
    - ha_free
    - http_ext_7239_prepare
    - _proxy_http_parse_7239_expr
    - ha_alert
    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:
    - ha_warning
    - sample_ckp_names
    - sample_parse_expr
    - ha_free
    - BUG_ON
    - ha_alert
    - proxy_type_str
    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:
    - len2mask6
    - proxy_http_parse_oom
    - strcmp
    - istfree
    - str62net
    - ha_alert
    - str2net
    - http_ext_xff_prepare
    - isttest
    - istdup
    - ist
    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:
    - len2mask6
    - proxy_http_parse_oom
    - strcmp
    - istfree
    - str62net
    - ha_alert
    - str2net
    - istdup
    - isttest
    - http_ext_xot_prepare
    - ist
    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:
    - release_sample_expr
    - ha_free
    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:
    - istfree
    - ha_free
    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:
    - istfree
    - ha_free
    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:
    - strdup
    - http_ext_7239_prepare
    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:
    - http_ext_xff_prepare
    - isttest
    - istdup
    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_xff_dup
    - http_ext_xot_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:
    - http_ext_xff_clean
    - http_ext_xot_clean
    - ha_free
    - http_ext_7239_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_http_compile_7239
    - ha_warning
    - http_ext_softclean
    - http_ext_7239_clean
    - proxy_type_str
    - http_ext_xff_clean
    - 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:
    - get_trash_chunk
    - strcmp
    - chunk_appendf
    - ist2
    - chunk_istcat
    - http_validate_7239_header
    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:
    - get_trash_chunk
    - chunk_appendf
    - http_7239_extract_node
    - ist2
    - chunk_istcat
    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:
    - get_trash_chunk
    - chunk_appendf
    - http_7239_extract_node
    - ist2
    - chunk_istcat
    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:
    - istlen
    - get_trash_chunk
    - chunk_printf
    - ist2
    - _7239_print_ip6
    - http_7239_extract_obfs
    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:
    - istlen
    - get_trash_chunk
    - chunk_printf
    - ist2
    - http_7239_extract_obfs
    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:52,1
    - Dst: sample_conv_var2smp
      Src: /src/haproxy/src/ssl_sample.c:56,1
    - Dst: CRYPTO_memcmp
      Src: /src/haproxy/src/ssl_sample.c:66,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: 71
      start: 47
    functionDepth: 5
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: sample_conv_secure_memcmp
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - CRYPTO_memcmp
    - smp_set_owner
    - sample_conv_var2smp
    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:80,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/ssl_sample.c:85,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:88,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: 91
      start: 76
    functionDepth: 5
    functionLinenumber: 76
    functionLinenumberEnd: 91
    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:100,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:112,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: 115
      start: 94
    functionDepth: 5
    functionLinenumber: 94
    functionLinenumberEnd: 115
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:119,1
    - Dst: EVP_sha224
      Src: /src/haproxy/src/ssl_sample.c:129,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/ssl_sample.c:132,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/ssl_sample.c:135,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/ssl_sample.c:138,1
    - Dst: EVP_MD_CTX_new
      Src: /src/haproxy/src/ssl_sample.c:144,1
    - Dst: EVP_DigestInit_ex
      Src: /src/haproxy/src/ssl_sample.c:147,1
    - Dst: EVP_DigestUpdate
      Src: /src/haproxy/src/ssl_sample.c:148,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/haproxy/src/ssl_sample.c:149,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:152,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 158
    functionName: sample_conv_sha2
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_sha224
    - get_trash_chunk
    - EVP_MD_CTX_new
    - EVP_sha384
    - EVP_sha512
    - EVP_DigestInit_ex
    - EVP_DigestFinal_ex
    - EVP_sha256
    - EVP_DigestUpdate
    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:178,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/ssl_sample.c:185,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:189,1
    - Dst: malloc
      Src: /src/haproxy/src/ssl_sample.c:198,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:199,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:203,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:205,1
    - Dst: free
      Src: /src/haproxy/src/ssl_sample.c:207,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/ssl_sample.c:212,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 2
    argNames:
    - arg
    - err
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 216
    functionName: sample_check_arg_base64
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - free
    - malloc
    - memprintf
    - vars_check_arg
    - base64dec
    linkageType: ''
    returnType: int
    signature: int sample_check_arg_base64(struct arg *arg, char **err)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:232,1
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/ssl_sample.c:237,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:238,1
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/ssl_sample.c:241,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:242,1
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/ssl_sample.c:245,1
    - Dst: vars_check_arg
      Src: /src/haproxy/src/ssl_sample.c:246,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:247,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 5
    argNames:
    - args
    - conv
    - file
    - line
    - err
    argTypes:
    - struct arg*
    - struct sample_conv*
    - char*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 219
    functionDepth: 6
    functionLinenumber: 219
    functionLinenumberEnd: 252
    functionName: check_aes_gcm
    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_gcm(struct arg *args, struct sample_conv *conv,\n\t\t\t\t\t\t
      \ 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: 261
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 261
    functionName: sample_conv_aes_gcm_init
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sample_conv_aes_gcm_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: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: sample_conv_aes_gcm_update
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sample_conv_aes_gcm_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: 277
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 277
    functionName: sample_conv_aes_gcm_final
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sample_conv_aes_gcm_final(a, b, c, d)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:286,1
    - Dst: unlikely
      Src: /src/haproxy/src/ssl_sample.c:292,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_sample.c:294,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/haproxy/src/ssl_sample.c:296,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:301,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:305,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/ssl_sample.c:306,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:310,1
    - Dst: sample_conv_aes_gcm_init
      Src: /src/haproxy/src/ssl_sample.c:323,1
    - Dst: EVP_aes_128_gcm
      Src: /src/haproxy/src/ssl_sample.c:323,1
    - Dst: sample_conv_aes_gcm_init
      Src: /src/haproxy/src/ssl_sample.c:326,1
    - Dst: EVP_aes_192_gcm
      Src: /src/haproxy/src/ssl_sample.c:326,1
    - Dst: sample_conv_aes_gcm_init
      Src: /src/haproxy/src/ssl_sample.c:329,1
    - Dst: EVP_aes_256_gcm
      Src: /src/haproxy/src/ssl_sample.c:329,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/ssl_sample.c:333,1
    - Dst: sample_conv_aes_gcm_init
      Src: /src/haproxy/src/ssl_sample.c:336,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:339,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/ssl_sample.c:340,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:344,1
    - Dst: sample_conv_aes_gcm_init
      Src: /src/haproxy/src/ssl_sample.c:352,1
    - Dst: sample_conv_aes_gcm_update
      Src: /src/haproxy/src/ssl_sample.c:355,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:359,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/ssl_sample.c:361,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:365,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/ssl_sample.c:373,1
    - Dst: sample_conv_aes_gcm_final
      Src: /src/haproxy/src/ssl_sample.c:379,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:385,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/haproxy/src/ssl_sample.c:387,1
    - Dst: a2base64
      Src: /src/haproxy/src/ssl_sample.c:390,1
    - Dst: var_set
      Src: /src/haproxy/src/ssl_sample.c:397,1
    - Dst: smp_dup
      Src: /src/haproxy/src/ssl_sample.c:406,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:407,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:408,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:409,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:413,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:414,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:415,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 110
    argCount: 3
    argNames:
    - arg_p
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 279
    functionDepth: 6
    functionLinenumber: 279
    functionLinenumberEnd: 417
    functionName: sample_conv_aes_gcm
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - unlikely
    - get_trash_chunk
    - free_trash_chunk
    - a2base64
    - smp_dup
    - EVP_CIPHER_CTX_ctrl
    - alloc_trash_chunk
    - EVP_CIPHER_CTX_free
    - sample_conv_aes_gcm_final
    - EVP_CIPHER_CTX_new
    - base64dec
    - EVP_aes_192_gcm
    - EVP_aes_128_gcm
    - sample_conv_aes_gcm_init
    - EVP_aes_256_gcm
    - sample_conv_var2smp_str
    - var_set
    - smp_set_owner
    - sample_conv_aes_gcm_update
    - memcpy
    linkageType: ''
    returnType: int
    signature: int sample_conv_aes_gcm(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:423,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:428,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: 430
      start: 420
    functionDepth: 5
    functionLinenumber: 420
    functionLinenumberEnd: 430
    functionName: check_crypto_digest
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - EVP_get_digestbyname
    - memprintf
    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:434,1
    - Dst: EVP_MD_CTX_new
      Src: /src/haproxy/src/ssl_sample.c:437,1
    - Dst: EVP_get_digestbyname
      Src: /src/haproxy/src/ssl_sample.c:438,1
    - Dst: EVP_DigestInit_ex
      Src: /src/haproxy/src/ssl_sample.c:443,1
    - Dst: EVP_DigestUpdate
      Src: /src/haproxy/src/ssl_sample.c:444,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/haproxy/src/ssl_sample.c:445,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:446,1
    - Dst: EVP_MD_CTX_free
      Src: /src/haproxy/src/ssl_sample.c:450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 457
    functionName: sample_conv_crypto_digest
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - EVP_get_digestbyname
    - EVP_MD_CTX_new
    - get_trash_chunk
    - EVP_DigestInit_ex
    - EVP_DigestFinal_ex
    - EVP_DigestUpdate
    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:462,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:467,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:473,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_sample.c:476,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: 486
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 486
    functionName: sample_conv_x509_v_err
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - strlen
    - get_trash_chunk
    - x509_v_err_int_to_str
    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:491,1
    - Dst: sample_check_arg_base64
      Src: /src/haproxy/src/ssl_sample.c:494,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:495,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: 500
      start: 488
    functionDepth: 6
    functionLinenumber: 488
    functionLinenumberEnd: 500
    functionName: check_crypto_hmac
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - memprintf
    - sample_check_arg_base64
    - check_crypto_digest
    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:508,1
    - Dst: smp_set_owner
      Src: /src/haproxy/src/ssl_sample.c:511,1
    - Dst: sample_conv_var2smp_str
      Src: /src/haproxy/src/ssl_sample.c:512,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:516,1
    - Dst: base64dec
      Src: /src/haproxy/src/ssl_sample.c:520,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:527,1
    - Dst: HMAC
      Src: /src/haproxy/src/ssl_sample.c:533,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:537,1
    - Dst: smp_dup
      Src: /src/haproxy/src/ssl_sample.c:542,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:543,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:547,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:548,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 502
    functionDepth: 6
    functionLinenumber: 502
    functionLinenumberEnd: 550
    functionName: sample_conv_crypto_hmac
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - HMAC
    - EVP_get_digestbyname
    - free_trash_chunk
    - smp_dup
    - smp_set_owner
    - base64dec
    - sample_conv_var2smp_str
    - alloc_trash_chunk
    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:558,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:559,1
    - Dst: SSL_in_early_data
      Src: /src/haproxy/src/ssl_sample.c:567,1
    - Dst: SSL_early_data_accepted
      Src: /src/haproxy/src/ssl_sample.c:568,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: 575
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 575
    functionName: smp_fetch_ssl_fc_has_early
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - SSL_in_early_data
    - ssl_sock_get_ssl_object
    - SSL_early_data_accepted
    - objt_conn
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_has_early(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:581,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:582,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: 597
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 597
    functionName: smp_fetch_ssl_fc_has_crt
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - conn_get_ssl_sock_ctx
    - objt_conn
    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:613,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:614,1
    - Dst: ssl_sock_get_verified_chain_root
      Src: /src/haproxy/src/ssl_sample.c:623,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sample.c:627,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:631,1
    - Dst: ssl_sock_get_dn_entry
      Src: /src/haproxy/src/ssl_sample.c:638,1
    - Dst: ssl_sock_get_dn_formatted
      Src: /src/haproxy/src/ssl_sample.c:642,1
    - Dst: ssl_sock_get_dn_oneline
      Src: /src/haproxy/src/ssl_sample.c:645,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: 654
      start: 603
    functionDepth: 3
    functionLinenumber: 603
    functionLinenumberEnd: 654
    functionName: smp_fetch_ssl_r_dn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - ssl_sock_get_dn_oneline
    - objt_conn
    - get_trash_chunk
    - X509_get_subject_name
    - ssl_sock_get_ssl_object
    - ssl_sock_get_dn_entry
    - ssl_sock_get_dn_formatted
    - 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:674,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:676,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:678,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:688,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:690,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:695,1
    - Dst: ssl_sock_crt2der
      Src: /src/haproxy/src/ssl_sample.c:696,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:706,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: 708
      start: 661
    functionDepth: 2
    functionLinenumber: 661
    functionLinenumberEnd: 708
    functionName: smp_fetch_ssl_x_der
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - ssl_sock_get_peer_certificate
    - objt_conn
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - ssl_sock_crt2der
    - X509_free
    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:721,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:729,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:731,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:736,1
    - Dst: SSL_get_peer_cert_chain
      Src: /src/haproxy/src/ssl_sample.c:748,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_sample.c:752,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:755,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:756,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_sample.c:760,1
    - Dst: ssl_sock_crt2der
      Src: /src/haproxy/src/ssl_sample.c:761,1
    - Dst: chunk_cat
      Src: /src/haproxy/src/ssl_sample.c:763,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:772,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: 774
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 774
    functionName: smp_fetch_ssl_x_chain_der
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - objt_conn
    - SSL_get_peer_cert_chain
    - get_trash_chunk
    - alloc_trash_chunk
    - sk_X509_value
    - free_trash_chunk
    - ssl_sock_get_ssl_object
    - chunk_cat
    - ssl_sock_crt2der
    - STACK_OF
    - sk_X509_num
    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:792,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:794,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:795,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:805,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:807,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:812,1
    - Dst: ssl_sock_get_serial
      Src: /src/haproxy/src/ssl_sample.c:813,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:823,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: 825
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 825
    functionName: smp_fetch_ssl_x_serial
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - ssl_sock_get_peer_certificate
    - objt_conn
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - ssl_sock_get_serial
    - X509_free
    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:845,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:847,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:849,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:859,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:861,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:865,1
    - Dst: EVP_sha1
      Src: /src/haproxy/src/ssl_sample.c:866,1
    - Dst: X509_digest
      Src: /src/haproxy/src/ssl_sample.c:867,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:876,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: 878
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 878
    functionName: smp_fetch_ssl_x_sha1
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - EVP_sha1
    - ssl_sock_get_peer_certificate
    - objt_conn
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - X509_digest
    - X509_free
    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:896,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:898,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:900,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:910,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:912,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:916,1
    - Dst: ssl_sock_get_time
      Src: /src/haproxy/src/ssl_sample.c:917,1
    - Dst: X509_getm_notAfter
      Src: /src/haproxy/src/ssl_sample.c:917,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:927,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: 929
      start: 884
    functionDepth: 2
    functionLinenumber: 884
    functionLinenumberEnd: 929
    functionName: smp_fetch_ssl_x_notafter
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - ssl_sock_get_peer_certificate
    - objt_conn
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - ssl_sock_get_time
    - X509_free
    - 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:948,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:950,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:952,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:962,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:964,1
    - Dst: X509_get_issuer_name
      Src: /src/haproxy/src/ssl_sample.c:968,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:972,1
    - Dst: ssl_sock_get_dn_entry
      Src: /src/haproxy/src/ssl_sample.c:979,1
    - Dst: ssl_sock_get_dn_formatted
      Src: /src/haproxy/src/ssl_sample.c:983,1
    - Dst: ssl_sock_get_dn_oneline
      Src: /src/haproxy/src/ssl_sample.c:986,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:996,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: 998
      start: 935
    functionDepth: 3
    functionLinenumber: 935
    functionLinenumberEnd: 998
    functionName: smp_fetch_ssl_x_i_dn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - ssl_sock_get_dn_oneline
    - ssl_sock_get_peer_certificate
    - objt_conn
    - get_trash_chunk
    - X509_get_issuer_name
    - ssl_sock_get_ssl_object
    - ssl_sock_get_dn_entry
    - ssl_sock_get_dn_formatted
    - X509_free
    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:1009,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1019,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1021,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1023,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1033,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1035,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_sample.c:1039,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1043,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_sample.c:1045,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_sample.c:1045,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/haproxy/src/ssl_sample.c:1049,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/haproxy/src/ssl_sample.c:1050,1
    - Dst: BIO_puts
      Src: /src/haproxy/src/ssl_sample.c:1052,1
    - Dst: GENERAL_NAME_print
      Src: /src/haproxy/src/ssl_sample.c:1053,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/haproxy/src/ssl_sample.c:1056,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_sample.c:1058,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1071,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_sample.c:1072,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: 1074
      start: 1004
    functionDepth: 2
    functionLinenumber: 1004
    functionLinenumberEnd: 1074
    functionName: smp_fetch_ssl_x_san
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - ssl_sock_get_peer_certificate
    - objt_conn
    - X509_get_ext_d2i
    - get_trash_chunk
    - BIO_puts
    - BIO_new
    - sk_GENERAL_NAME_value
    - ssl_sock_get_ssl_object
    - GENERAL_NAME_print
    - sk_GENERAL_NAME_pop_free
    - BIO_read
    - sk_GENERAL_NAME_num
    - BIO_free
    - X509_free
    - STACK_OF
    - BIO_s_mem
    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:1092,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1094,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1096,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1106,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1108,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1112,1
    - Dst: ssl_sock_get_time
      Src: /src/haproxy/src/ssl_sample.c:1113,1
    - Dst: X509_getm_notBefore
      Src: /src/haproxy/src/ssl_sample.c:1113,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1123,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: 1125
      start: 1080
    functionDepth: 2
    functionLinenumber: 1080
    functionLinenumberEnd: 1125
    functionName: smp_fetch_ssl_x_notbefore
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - ssl_sock_get_peer_certificate
    - X509_getm_notBefore
    - objt_conn
    - get_trash_chunk
    - ssl_sock_get_ssl_object
    - ssl_sock_get_time
    - X509_free
    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:1144,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1146,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1148,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1158,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1160,1
    - Dst: X509_get_subject_name
      Src: /src/haproxy/src/ssl_sample.c:1164,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1168,1
    - Dst: ssl_sock_get_dn_entry
      Src: /src/haproxy/src/ssl_sample.c:1175,1
    - Dst: ssl_sock_get_dn_formatted
      Src: /src/haproxy/src/ssl_sample.c:1179,1
    - Dst: ssl_sock_get_dn_oneline
      Src: /src/haproxy/src/ssl_sample.c:1182,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1192,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: 1194
      start: 1131
    functionDepth: 3
    functionLinenumber: 1131
    functionLinenumberEnd: 1194
    functionName: smp_fetch_ssl_x_s_dn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - ssl_sock_get_dn_oneline
    - ssl_sock_get_peer_certificate
    - objt_conn
    - get_trash_chunk
    - X509_get_subject_name
    - ssl_sock_get_ssl_object
    - ssl_sock_get_dn_entry
    - ssl_sock_get_dn_formatted
    - X509_free
    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:1204,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1205,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1215,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1217,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: 1224
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1224
    functionName: smp_fetch_ssl_c_used
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - X509_free
    - ssl_sock_get_ssl_object
    - objt_conn
    - ssl_sock_get_peer_certificate
    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:1241,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1243,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1244,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1254,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1256,1
    - Dst: X509_get_version
      Src: /src/haproxy/src/ssl_sample.c:1261,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1264,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: 1268
      start: 1230
    functionDepth: 2
    functionLinenumber: 1230
    functionLinenumberEnd: 1268
    functionName: smp_fetch_ssl_x_version
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - ssl_sock_get_peer_certificate
    - X509_get_version
    - objt_conn
    - ssl_sock_get_ssl_object
    - X509_free
    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:1286,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1288,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1290,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1300,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1302,1
    - Dst: X509_ALGOR_get0
      Src: /src/haproxy/src/ssl_sample.c:1306,1
    - Dst: X509_get0_tbs_sigalg
      Src: /src/haproxy/src/ssl_sample.c:1306,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_sample.c:1307,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_sample.c:1309,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1313,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1319,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1322,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: 1325
      start: 1274
    functionDepth: 2
    functionLinenumber: 1274
    functionLinenumberEnd: 1325
    functionName: smp_fetch_ssl_x_sig_alg
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - OBJ_obj2nid
    - ssl_sock_get_peer_certificate
    - objt_conn
    - X509_get0_tbs_sigalg
    - ssl_sock_get_ssl_object
    - X509_ALGOR_get0
    - strlen
    - X509_free
    - OBJ_nid2sn
    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:1343,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1345,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1346,1
    - Dst: ssl_sock_get_peer_certificate
      Src: /src/haproxy/src/ssl_sample.c:1356,1
    - Dst: SSL_get_certificate
      Src: /src/haproxy/src/ssl_sample.c:1358,1
    - Dst: X509_PUBKEY_get0_param
      Src: /src/haproxy/src/ssl_sample.c:1362,1
    - Dst: X509_get_X509_PUBKEY
      Src: /src/haproxy/src/ssl_sample.c:1362,1
    - Dst: OBJ_obj2nid
      Src: /src/haproxy/src/ssl_sample.c:1363,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_sample.c:1365,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1369,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1375,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_sample.c:1377,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: 1380
      start: 1331
    functionDepth: 2
    functionLinenumber: 1331
    functionLinenumberEnd: 1380
    functionName: smp_fetch_ssl_x_key_alg
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_get_certificate
    - X509_PUBKEY_get0_param
    - ssl_sock_get_peer_certificate
    - OBJ_obj2nid
    - objt_conn
    - ssl_sock_get_ssl_object
    - strlen
    - X509_get_X509_PUBKEY
    - OBJ_nid2sn
    - X509_free
    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:1391,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1392,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1392,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1394,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1395,1
    - Dst: conn_is_ssl
      Src: /src/haproxy/src/ssl_sample.c:1398,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: 1400
      start: 1386
    functionDepth: 1
    functionLinenumber: 1386
    functionLinenumberEnd: 1400
    functionName: smp_fetch_ssl_fc
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - conn_is_ssl
    - obj_type
    - objt_conn
    - __objt_check
    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:1407,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1408,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sample.c:1411,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: 1416
      start: 1403
    functionDepth: 2
    functionLinenumber: 1403
    functionLinenumberEnd: 1416
    functionName: smp_fetch_ssl_fc_has_sni
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - ssl_sock_get_ssl_object
    - SSL_get_servername
    - objt_conn
    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:1428,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1429,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1429,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1431,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1432,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1434,1
    - Dst: SSL_session_reused
      Src: /src/haproxy/src/ssl_sample.c:1437,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: 1439
      start: 1422
    functionDepth: 2
    functionLinenumber: 1422
    functionLinenumberEnd: 1439
    functionName: smp_fetch_ssl_fc_is_resumed
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_session_reused
    - obj_type
    - objt_conn
    - __objt_check
    - ssl_sock_get_ssl_object
    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:1457,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1458,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1458,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1460,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1461,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1463,1
    - Dst: SSL_get0_group_name
      Src: /src/haproxy/src/ssl_sample.c:1473,1
    - Dst: toupper
      Src: /src/haproxy/src/ssl_sample.c:1487,1
    - Dst: SSL_get_negotiated_group
      Src: /src/haproxy/src/ssl_sample.c:1490,1
    - Dst: OBJ_nid2sn
      Src: /src/haproxy/src/ssl_sample.c:1493,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1504,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: 1507
      start: 1449
    functionDepth: 2
    functionLinenumber: 1449
    functionLinenumberEnd: 1507
    functionName: smp_fetch_ssl_fc_ec
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - ssl_sock_get_ssl_object
    - SSL_get0_group_name
    - toupper
    - strlen
    - SSL_get_negotiated_group
    - OBJ_nid2sn
    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:1520,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1521,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1521,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1523,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1524,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1527,1
    - Dst: SSL_get_cipher_name
      Src: /src/haproxy/src/ssl_sample.c:1531,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1537,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: 1540
      start: 1514
    functionDepth: 2
    functionLinenumber: 1514
    functionLinenumberEnd: 1540
    functionName: smp_fetch_ssl_fc_cipher
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - SSL_get_cipher_name
    - objt_conn
    - __objt_check
    - ssl_sock_get_ssl_object
    - 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:1554,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1555,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1555,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1557,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1558,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1561,1
    - Dst: SSL_get_cipher_bits
      Src: /src/haproxy/src/ssl_sample.c:1565,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: 1573
      start: 1547
    functionDepth: 2
    functionLinenumber: 1547
    functionLinenumberEnd: 1573
    functionName: smp_fetch_ssl_fc_alg_keysize
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - ssl_sock_get_ssl_object
    - SSL_get_cipher_bits
    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:1585,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1586,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1586,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1588,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1589,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1592,1
    - Dst: SSL_get_cipher_bits
      Src: /src/haproxy/src/ssl_sample.c:1596,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: 1604
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1604
    functionName: smp_fetch_ssl_fc_use_keysize
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - ssl_sock_get_ssl_object
    - SSL_get_cipher_bits
    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: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_get0_next_proto_negotiated
      Src: /src/haproxy/src/ssl_sample.c:1629,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: 1638
      start: 1607
    functionDepth: 2
    functionLinenumber: 1607
    functionLinenumberEnd: 1638
    functionName: smp_fetch_ssl_fc_npn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - ssl_sock_get_ssl_object
    - SSL_get0_next_proto_negotiated
    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:1652,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1653,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1653,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1655,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1656,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1658,1
    - Dst: SSL_get0_alpn_selected
      Src: /src/haproxy/src/ssl_sample.c:1663,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: 1672
      start: 1642
    functionDepth: 2
    functionLinenumber: 1642
    functionLinenumberEnd: 1672
    functionName: smp_fetch_ssl_fc_alpn
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - ssl_sock_get_ssl_object
    - SSL_get0_alpn_selected
    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:1685,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1686,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1686,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1688,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1689,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1692,1
    - Dst: SSL_get_version
      Src: /src/haproxy/src/ssl_sample.c:1696,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1702,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: 1705
      start: 1679
    functionDepth: 2
    functionLinenumber: 1679
    functionLinenumberEnd: 1705
    functionName: smp_fetch_ssl_fc_protocol
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - ssl_sock_get_ssl_object
    - 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:1723,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1724,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1724,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1726,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1727,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1729,1
    - Dst: SSL_get_session
      Src: /src/haproxy/src/ssl_sample.c:1733,1
    - Dst: SSL_SESSION_get_id
      Src: /src/haproxy/src/ssl_sample.c:1737,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: 1743
      start: 1712
    functionDepth: 2
    functionLinenumber: 1712
    functionLinenumberEnd: 1743
    functionName: smp_fetch_ssl_fc_session_id
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - ssl_sock_get_ssl_object
    - SSL_SESSION_get_id
    - SSL_get_session
    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:1755,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1756,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1756,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1758,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1759,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1761,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1765,1
    - Dst: SSL_get_client_random
      Src: /src/haproxy/src/ssl_sample.c:1767,1
    - Dst: SSL_get_server_random
      Src: /src/haproxy/src/ssl_sample.c:1771,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: 1782
      start: 1748
    functionDepth: 2
    functionLinenumber: 1748
    functionLinenumberEnd: 1782
    functionName: smp_fetch_ssl_fc_random
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - get_trash_chunk
    - __objt_check
    - ssl_sock_get_ssl_object
    - SSL_get_server_random
    - 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:1792,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1793,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1793,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1795,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1796,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1798,1
    - Dst: SSL_get_session
      Src: /src/haproxy/src/ssl_sample.c:1802,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1806,1
    - Dst: SSL_SESSION_get_master_key
      Src: /src/haproxy/src/ssl_sample.c:1807,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: 1818
      start: 1784
    functionDepth: 2
    functionLinenumber: 1784
    functionLinenumberEnd: 1818
    functionName: smp_fetch_ssl_fc_session_key
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - get_trash_chunk
    - __objt_check
    - ssl_sock_get_ssl_object
    - SSL_get_session
    - 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:1832,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1833,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1833,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1835,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1836,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1838,1
    - Dst: SSL_get_servername
      Src: /src/haproxy/src/ssl_sample.c:1842,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:1847,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:1853,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: 1860
      start: 1822
    functionDepth: 2
    functionLinenumber: 1822
    functionLinenumberEnd: 1860
    functionName: smp_fetch_ssl_fc_sni
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - SSL_get_ex_data
    - ssl_sock_get_ssl_object
    - strlen
    - SSL_get_servername
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_fc_sni(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:1873,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1874,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:1878,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1883,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:1884,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: 1897
      start: 1865
    functionDepth: 2
    functionLinenumber: 1865
    functionLinenumberEnd: 1897
    functionName: smp_fetch_ssl_fc_cl_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - get_trash_chunk
    - SSL_get_ex_data
    - exclude_tls_grease
    - ssl_sock_get_ssl_object
    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:1907,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:1910,1
    - Dst: dump_binary
      Src: /src/haproxy/src/ssl_sample.c:1911,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: 1916
      start: 1902
    functionDepth: 3
    functionLinenumber: 1902
    functionLinenumberEnd: 1916
    functionName: smp_fetch_ssl_fc_cl_hex
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - dump_binary
    - smp_fetch_ssl_fc_cl_bin
    - get_trash_chunk
    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:1926,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1927,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:1931,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: 1939
      start: 1919
    functionDepth: 2
    functionLinenumber: 1919
    functionLinenumberEnd: 1939
    functionName: smp_fetch_ssl_fc_cl_xxh64
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - ssl_sock_get_ssl_object
    - objt_conn
    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:1947,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1948,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:1948,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:1950,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:1951,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:1961,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: 1969
      start: 1941
    functionDepth: 1
    functionLinenumber: 1941
    functionLinenumberEnd: 1969
    functionName: smp_fetch_ssl_fc_err
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - 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:1978,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:1979,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:1983,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: 1991
      start: 1971
    functionDepth: 2
    functionLinenumber: 1971
    functionLinenumberEnd: 1991
    functionName: smp_fetch_ssl_fc_protocol_hello_id
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - ssl_sock_get_ssl_object
    - objt_conn
    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:2001,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2002,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2006,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2011,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:2012,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: 2024
      start: 1993
    functionDepth: 2
    functionLinenumber: 1993
    functionLinenumberEnd: 2024
    functionName: smp_fetch_ssl_fc_supver_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - get_trash_chunk
    - SSL_get_ex_data
    - exclude_tls_grease
    - ssl_sock_get_ssl_object
    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:2034,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2035,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2039,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2044,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:2045,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: 2057
      start: 2026
    functionDepth: 2
    functionLinenumber: 2026
    functionLinenumberEnd: 2057
    functionName: smp_fetch_ssl_fc_sigalgs_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - get_trash_chunk
    - SSL_get_ex_data
    - exclude_tls_grease
    - ssl_sock_get_ssl_object
    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:2066,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2067,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:2067,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2069,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2070,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:2080,1
    - Dst: ERR_error_string
      Src: /src/haproxy/src/ssl_sample.c:2084,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:2089,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: 2092
      start: 2059
    functionDepth: 1
    functionLinenumber: 2059
    functionLinenumberEnd: 2092
    functionName: smp_fetch_ssl_fc_err_str
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - obj_type
    - objt_conn
    - __objt_check
    - ERR_error_string
    - 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:2105,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2106,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2110,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2115,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:2116,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: 2129
      start: 2097
    functionDepth: 2
    functionLinenumber: 2097
    functionLinenumberEnd: 2129
    functionName: smp_fetch_ssl_fc_ext_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - get_trash_chunk
    - SSL_get_ex_data
    - exclude_tls_grease
    - ssl_sock_get_ssl_object
    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:2142,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2143,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2147,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2152,1
    - Dst: exclude_tls_grease
      Src: /src/haproxy/src/ssl_sample.c:2153,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: 2166
      start: 2134
    functionDepth: 2
    functionLinenumber: 2134
    functionLinenumberEnd: 2166
    functionName: smp_fetch_ssl_fc_ecl_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - objt_conn
    - get_trash_chunk
    - SSL_get_ex_data
    - exclude_tls_grease
    - ssl_sock_get_ssl_object
    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:2176,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2177,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2181,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: 2190
      start: 2169
    functionDepth: 2
    functionLinenumber: 2169
    functionLinenumberEnd: 2190
    functionName: smp_fetch_ssl_fc_ecf_bin
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - ssl_sock_get_ssl_object
    - objt_conn
    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:2205,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2206,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2216,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/src/ssl_sample.c:2220,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:2224,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2226,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2228,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2230,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2232,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2234,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2236,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2238,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_sample.c:2248,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: 2250
      start: 2194
    functionDepth: 2
    functionLinenumber: 2194
    functionLinenumberEnd: 2250
    functionName: smp_fetch_ssl_x_keylog
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - objt_conn
    - strcmp
    - SSL_get_ex_data
    - ssl_sock_get_ssl_object
    - 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:2260,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2263,1
    - Dst: SSL_get_cipher_by_value
      Src: /src/haproxy/src/ssl_sample.c:2270,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2272,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2273,1
    - Dst: SSL_CIPHER_find
      Src: /src/haproxy/src/ssl_sample.c:2274,1
    - Dst: SSL_CIPHER_get_name
      Src: /src/haproxy/src/ssl_sample.c:2276,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_sample.c:2277,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sample.c:2278,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_sample.c:2280,1
    - Dst: smp_fetch_ssl_fc_cl_xxh64
      Src: /src/haproxy/src/ssl_sample.c:2286,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: 2288
      start: 2253
    functionDepth: 3
    functionLinenumber: 2253
    functionLinenumberEnd: 2288
    functionName: smp_fetch_ssl_fc_cl_str
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - __objt_conn
    - smp_fetch_ssl_fc_cl_bin
    - get_trash_chunk
    - strcmp
    - chunk_appendf
    - ssl_sock_get_ssl_object
    - smp_fetch_ssl_fc_cl_xxh64
    - SSL_get_cipher_by_value
    - SSL_CIPHER_get_name
    - SSL_CIPHER_find
    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:2299,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2300,1
    - Dst: __objt_check
      Src: /src/haproxy/src/ssl_sample.c:2300,1
    - Dst: objt_conn
      Src: /src/haproxy/src/ssl_sample.c:2302,1
    - Dst: sc_conn
      Src: /src/haproxy/src/ssl_sample.c:2303,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2306,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/ssl_sample.c:2315,1
    - Dst: SSL_session_reused
      Src: /src/haproxy/src/ssl_sample.c:2316,1
    - Dst: SSL_get_peer_finished
      Src: /src/haproxy/src/ssl_sample.c:2317,1
    - Dst: SSL_get_finished
      Src: /src/haproxy/src/ssl_sample.c:2321,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: 2334
      start: 2291
    functionDepth: 2
    functionLinenumber: 2291
    functionLinenumberEnd: 2334
    functionName: smp_fetch_ssl_fc_unique_id
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - SSL_session_reused
    - obj_type
    - objt_conn
    - get_trash_chunk
    - __objt_check
    - ssl_sock_get_ssl_object
    - SSL_get_peer_finished
    - SSL_get_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:2341,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:2342,1
    - Dst: SSL_SOCK_ST_TO_CA_ERROR
      Src: /src/haproxy/src/ssl_sample.c:2353,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: 2357
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2357
    functionName: smp_fetch_ssl_c_ca_err
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - conn_get_ssl_sock_ctx
    - SSL_SOCK_ST_TO_CA_ERROR
    - objt_conn
    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:2363,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:2364,1
    - Dst: SSL_SOCK_ST_TO_CAEDEPTH
      Src: /src/haproxy/src/ssl_sample.c:2375,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: 2379
      start: 2360
    functionDepth: 1
    functionLinenumber: 2360
    functionLinenumberEnd: 2379
    functionName: smp_fetch_ssl_c_ca_err_depth
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - conn_get_ssl_sock_ctx
    - objt_conn
    - SSL_SOCK_ST_TO_CAEDEPTH
    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:2385,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/src/ssl_sample.c:2386,1
    - Dst: SSL_SOCK_ST_TO_CRTERROR
      Src: /src/haproxy/src/ssl_sample.c:2397,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: 2401
      start: 2382
    functionDepth: 1
    functionLinenumber: 2382
    functionLinenumberEnd: 2401
    functionName: smp_fetch_ssl_c_err
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - conn_get_ssl_sock_ctx
    - SSL_SOCK_ST_TO_CRTERROR
    - objt_conn
    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:2410,1
    - Dst: ssl_sock_get_ssl_object
      Src: /src/haproxy/src/ssl_sample.c:2411,1
    - Dst: SSL_get_verify_result
      Src: /src/haproxy/src/ssl_sample.c:2421,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: 2425
      start: 2404
    functionDepth: 2
    functionLinenumber: 2404
    functionLinenumberEnd: 2425
    functionName: smp_fetch_ssl_c_verify
    functionSourceFile: /src/haproxy/src/ssl_sample.c
    functionUses: 0
    functionsReached:
    - SSL_get_verify_result
    - ssl_sock_get_ssl_object
    - objt_conn
    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:2435,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_sample.c:2436,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2433
    functionDepth: 5
    functionLinenumber: 2433
    functionLinenumberEnd: 2440
    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:
    - munmap
    - ring_make_from_area
    - mmap
    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
    - vma_set_name
    - startup_logs_init_shm
    - ring_allocated_size
    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:
    - munmap
    - ring_allocated_area
    - ring_free
    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_size
    - ring_new
    - ring_allocated_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: 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:
    - b_putblk
    - unlikely
    - b_is_null
    - b_tail
    - b_room
    - malloc
    - b_putchr
    - likely
    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_is_null
    - b_reset
    - 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:
    - b_is_null
    - unlikely
    - 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: 4
    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: 4
    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:
    - b_reset
    - obj_type
    - unlikely
    - MIN
    - snprintf
    - __objt_server
    - b_is_null
    - b_data
    - b_tail
    - b_room
    - likely
    - calloc
    - b_make
    - b_add
    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:
    - getpid
    - reset_usermsgs_ctx
    - fflush
    - ring_write
    - fprintf
    - strlen
    - free
    - memvprintf
    - generate_usermsgs_ctx_str
    - memprintf
    - b_head
    - strncpy
    - likely
    - usermsgs_put
    - ist
    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:
    - print_message
    - va_end
    - va_start
    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: 182
    functionsReached:
    - print_message
    - warn_exec_path
    - va_end
    - va_start
    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: 114
    functionsReached:
    - HA_ATOMIC_INC
    - warn_exec_path
    - va_start
    - print_message
    - va_end
    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:
    - print_message
    - HA_ATOMIC_INC
    - 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:
    - _ha_vdiag_warning
    - va_end
    - va_start
    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: 8
    functionsReached:
    - _ha_vdiag_warning
    - va_end
    - va_start
    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: 9
    functionsReached:
    - print_message
    - va_end
    - va_start
    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:
    - vfprintf
    - fflush
    - va_end
    - va_start
    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:
    - ring_attach_cli
    - cli_msg
    - cli_has_level
    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:
    - ring_free
    - ha_free
    - _HA_ATOMIC_XCHG
    linkageType: ''
    returnType: void
    signature: void deinit_errors_buffers()
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:143,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:146,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:149,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:152,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:155,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:158,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:161,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:166,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:169,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:172,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:175,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:178,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:181,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:184,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:187,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:190,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:193,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:196,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:199,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:202,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:205,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:208,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:211,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:214,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:219,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:222,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/h3_stats.c:225,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 94
    argCount: 3
    argNames:
    - data
    - stats
    - selected_field
    argTypes:
    - void*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 240
    functionName: h3_fill_stats
    functionSourceFile: /src/haproxy/src/h3_stats.c
    functionUses: 0
    functionsReached:
    - mkf_u64
    linkageType: ''
    returnType: int
    signature: int h3_fill_stats(void *data, struct field *stats, unsigned int *selected_field)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:259,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:262,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:265,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:268,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:271,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:274,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:277,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:280,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:283,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:286,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:289,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:292,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:295,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:298,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:301,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:304,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:307,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:310,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:313,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:316,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 65
    argCount: 2
    argNames:
    - ctrs
    - error_code
    argTypes:
    - struct h3_counters*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 322
    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:328,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:331,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:334,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:337,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:340,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:343,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/h3_stats.c:346,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ctrs
    - frm_type
    argTypes:
    - struct h3_counters*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    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: 22
    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_0_15
    - T_20_39
    - 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:
    - put_be32
    - htonl
    - blk_SHA1_Update
    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:272,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/haproxy.c:276,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: 280
      start: 267
    functionDepth: 5
    functionLinenumber: 267
    functionLinenumberEnd: 280
    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:307,1
    - Dst: fprintf
      Src: /src/haproxy/src/haproxy.c:309,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:310,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/haproxy.c:314,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - str
    - must_free
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 315
    functionName: hap_register_build_opts
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 7
    functionsReached:
    - LIST_APPEND
    - exit
    - calloc
    - fprintf
    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:326,1
    - Dst: container_of
      Src: /src/haproxy/src/haproxy.c:329,1
    - Dst: container_of
      Src: /src/haproxy/src/haproxy.c:333,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 339
    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:348,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:348,1
    - Dst: malloc
      Src: /src/haproxy/src/haproxy.c:353,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/haproxy.c:357,1
    - Dst: strchr
      Src: /src/haproxy/src/haproxy.c:366,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:372,1
    - Dst: snprintf
      Src: /src/haproxy/src/haproxy.c:390,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:393,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 397
    functionName: hap_register_feature
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 2
    functionsReached:
    - strcmp
    - snprintf
    - ha_free
    - strlen
    - strlcpy2
    - malloc
    - strchr
    linkageType: ''
    returnType: void
    signature: void hap_register_feature(const char *name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/haproxy.c:408,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/haproxy.c:411,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 412
    functionName: hap_register_unittest
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - calloc
    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:462,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:472,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:482,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:492,1
    - Dst: strncmp
      Src: /src/haproxy/src/haproxy.c:505,1
    - Dst: strncmp
      Src: /src/haproxy/src/haproxy.c:506,1
    - Dst: strncmp
      Src: /src/haproxy/src/haproxy.c:507,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:512,1
    - Dst: strrchr
      Src: /src/haproxy/src/haproxy.c:521,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:526,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:533,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 81
    argCount: 2
    argNames:
    - version
    - value
    argTypes:
    - char*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 538
    functionName: split_version
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - strncmp
    - strrchr
    - strtol
    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:557,1
    - Dst: split_version
      Src: /src/haproxy/src/haproxy.c:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - version
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 570
    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:576,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:579,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/haproxy.c:592,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:594,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:596,1
    - Dst: uname
      Src: /src/haproxy/src/haproxy.c:599,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:600,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 602
    functionName: display_version
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - strlen
    - printf
    - strlcpy2
    - uname
    linkageType: ''
    returnType: void
    signature: void display_version()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:616,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:637,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 1
    argNames:
    - display_mode
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 638
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:644,1
    - Dst: hap_get_next_build_opt
      Src: /src/haproxy/src/haproxy.c:652,1
    - Dst: puts
      Src: /src/haproxy/src/haproxy.c:652,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:655,1
    - Dst: list_unittests
      Src: /src/haproxy/src/haproxy.c:658,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:659,1
    - Dst: list_pollers
      Src: /src/haproxy/src/haproxy.c:661,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:662,1
    - Dst: list_mux_proto
      Src: /src/haproxy/src/haproxy.c:663,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:664,1
    - Dst: list_services
      Src: /src/haproxy/src/haproxy.c:665,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:666,1
    - Dst: list_filters
      Src: /src/haproxy/src/haproxy.c:667,1
    - Dst: putchar
      Src: /src/haproxy/src/haproxy.c:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 640
    functionDepth: 7
    functionLinenumber: 640
    functionLinenumberEnd: 669
    functionName: display_build_opts
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - list_filters
    - list_unittests
    - hap_get_next_build_opt
    - printf
    - putchar
    - puts
    - list_pollers
    - list_mux_proto
    - list_services
    linkageType: ''
    returnType: void
    signature: void display_build_opts()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/haproxy/src/haproxy.c:760,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 763
    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: 783
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 783
    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:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 788
    functionDepth: 9
    functionLinenumber: 788
    functionLinenumberEnd: 791
    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:801,1
    - Dst: signal_unregister_handler
      Src: /src/haproxy/src/haproxy.c:802,1
    - Dst: pool_gc
      Src: /src/haproxy/src/haproxy.c:803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 804
    functionName: sig_soft_stop
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - soft_stop
    - signal_unregister_handler
    - 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:811,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:813,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:814,1
    - Dst: soft_stop
      Src: /src/haproxy/src/haproxy.c:815,1
    - Dst: pool_gc
      Src: /src/haproxy/src/haproxy.c:817,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 809
    functionDepth: 10
    functionLinenumber: 809
    functionLinenumberEnd: 818
    functionName: sig_pause
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - send_log
    - soft_stop
    - pool_gc
    - protocol_pause_all
    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:825,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:827,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:828,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 823
    functionDepth: 10
    functionLinenumber: 823
    functionLinenumberEnd: 830
    functionName: sig_listen
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - protocol_resume_all
    - send_log
    linkageType: ''
    returnType: void
    signature: void sig_listen(struct sig_handler *sh)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:839,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:843,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/haproxy.c:845,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:849,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:850,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:851,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/haproxy.c:857,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:860,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:860,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/haproxy.c:862,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:866,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:866,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/haproxy.c:868,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:872,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/haproxy.c:872,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:874,1
    - Dst: send_log
      Src: /src/haproxy/src/haproxy.c:875,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 835
    functionDepth: 10
    functionLinenumber: 835
    functionLinenumberEnd: 879
    functionName: sig_dump_state
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - ha_warning
    - COUNTERS_SHARED_TOTAL
    - send_log
    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:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sh
    argTypes:
    - struct sig_handler*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 881
    functionDepth: 3
    functionLinenumber: 881
    functionLinenumberEnd: 885
    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:897,1
    - Dst: fclose
      Src: /src/haproxy/src/haproxy.c:900,1
    - Dst: fclose
      Src: /src/haproxy/src/haproxy.c:901,1
    - Dst: fclose
      Src: /src/haproxy/src/haproxy.c:902,1
    - Dst: dup2
      Src: /src/haproxy/src/haproxy.c:904,1
    - Dst: dup2
      Src: /src/haproxy/src/haproxy.c:905,1
    - Dst: dup2
      Src: /src/haproxy/src/haproxy.c:906,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:908,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:912,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:913,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 894
    functionDepth: 9
    functionLinenumber: 894
    functionLinenumberEnd: 914
    functionName: stdio_quiet
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - dup2
    - exit
    - open
    - fclose
    - close
    - ha_alert
    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:929,1
    - Dst: stat
      Src: /src/haproxy/src/haproxy.c:935,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:936,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:938,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:939,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/haproxy.c:942,1
    - Dst: scandir
      Src: /src/haproxy/src/haproxy.c:947,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:949,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:951,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:952,1
    - Dst: strstr
      Src: /src/haproxy/src/haproxy.c:959,1
    - Dst: memprintf
      Src: /src/haproxy/src/haproxy.c:968,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:969,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:971,1
    - Dst: stat
      Src: /src/haproxy/src/haproxy.c:974,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:975,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:977,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:978,1
    - Dst: S_ISREG
      Src: /src/haproxy/src/haproxy.c:984,1
    - Dst: list_append_cfgfile
      Src: /src/haproxy/src/haproxy.c:987,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:988,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:991,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:995,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:996,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:999,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1002,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:1003,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1004,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1007,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 924
    functionDepth: 9
    functionLinenumber: 924
    functionLinenumberEnd: 1008
    functionName: cfgfiles_expand_directories
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - list_append_cfgfile
    - LIST_DELETE
    - exit
    - list_for_each_entry_safe
    - stat
    - scandir
    - free
    - strerror
    - memprintf
    - ha_alert
    - S_ISDIR
    - S_ISREG
    - strstr
    linkageType: ''
    returnType: void
    signature: void cfgfiles_expand_directories(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cfgfiles_expand_directories
      Src: /src/haproxy/src/haproxy.c:1020,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/haproxy.c:1022,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1023,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:1025,1
    - Dst: load_cfg_in_mem
      Src: /src/haproxy/src/haproxy.c:1027,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1015
    functionDepth: 10
    functionLinenumber: 1015
    functionLinenumberEnd: 1035
    functionName: load_cfg
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - usage
    - cfgfiles_expand_directories
    - list_for_each_entry_safe
    - load_cfg_in_mem
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int load_cfg()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1053,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1054,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1055,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1056,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1057,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1058,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:1059,1
    - Dst: memprintf
      Src: /src/haproxy/src/haproxy.c:1065,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1069,1
    - Dst: parse_cfg
      Src: /src/haproxy/src/haproxy.c:1073,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1078,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1086,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1087,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1088,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1089,1
    - Dst: unsetenv
      Src: /src/haproxy/src/haproxy.c:1090,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1096,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1100,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1101,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1106,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1043
    functionDepth: 9
    functionLinenumber: 1043
    functionLinenumberEnd: 1108
    functionName: read_cfg
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - setenv
    - unsetenv
    - parse_cfg
    - free
    - memprintf
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int read_cfg()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/haproxy.c:1120,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:1122,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1213,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1116
    functionDepth: 9
    functionLinenumber: 1116
    functionLinenumberEnd: 1215
    functionName: copy_argv
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - free
    - ha_warning
    - calloc
    linkageType: ''
    returnType: char
    signature: char **copy_argv(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/haproxy/src/haproxy.c:1245,1
    - Dst: write_u32
      Src: /src/haproxy/src/haproxy.c:1246,1
    - Dst: write_u32
      Src: /src/haproxy/src/haproxy.c:1247,1
    - Dst: write_u16
      Src: /src/haproxy/src/haproxy.c:1250,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:1250,1
    - Dst: write_u16
      Src: /src/haproxy/src/haproxy.c:1251,1
    - Dst: getppid
      Src: /src/haproxy/src/haproxy.c:1251,1
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:1254,1
    - Dst: read
      Src: /src/haproxy/src/haproxy.c:1256,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:1259,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/haproxy.c:1264,1
    - Dst: write_u32
      Src: /src/haproxy/src/haproxy.c:1270,1
    - Dst: random
      Src: /src/haproxy/src/haproxy.c:1270,1
    - Dst: memcpy
      Src: /src/haproxy/src/haproxy.c:1276,1
    - Dst: memcpy
      Src: /src/haproxy/src/haproxy.c:1280,1
    - Dst: gettimeofday
      Src: /src/haproxy/src/haproxy.c:1283,1
    - Dst: write_u32
      Src: /src/haproxy/src/haproxy.c:1284,1
    - Dst: strncpy
      Src: /src/haproxy/src/haproxy.c:1291,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1292,1
    - Dst: memset
      Src: /src/haproxy/src/haproxy.c:1297,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/haproxy.c:1298,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/haproxy.c:1299,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/haproxy.c:1300,1
    - Dst: srandom
      Src: /src/haproxy/src/haproxy.c:1302,1
    - Dst: read_u32
      Src: /src/haproxy/src/haproxy.c:1302,1
    - Dst: ha_random_seed
      Src: /src/haproxy/src/haproxy.c:1303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1234
    functionDepth: 4
    functionLinenumber: 1234
    functionLinenumberEnd: 1304
    functionName: ha_random_boot
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - blk_SHA1_Final
    - getpid
    - random
    - read
    - close
    - gettimeofday
    - ha_random_seed
    - open
    - write_u32
    - blk_SHA1_Update
    - RAND_bytes
    - strlen
    - read_u32
    - memset
    - write_u16
    - blk_SHA1_Init
    - strncpy
    - srandom
    - getppid
    - memcpy
    linkageType: ''
    returnType: void
    signature: void ha_random_boot(char *const *argv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1324,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1326,1
    - Dst: parse_line
      Src: /src/haproxy/src/haproxy.c:1327,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1332,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1333,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1337,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1338,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1342,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1343,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1347,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1348,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1352,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1353,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1357,1
    - Dst: cfg_eval_condition
      Src: /src/haproxy/src/haproxy.c:1360,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1364,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1366,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1369,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1311
    functionDepth: 9
    functionLinenumber: 1311
    functionLinenumberEnd: 1370
    functionName: do_check_condition
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - usage
    - cfg_eval_condition
    - exit
    - strlen
    - ha_alert
    - parse_line
    linkageType: ''
    returnType: void
    signature: void do_check_condition()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:1383,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:1399,1
    - Dst: tzset
      Src: /src/haproxy/src/haproxy.c:1403,1
    - Dst: clock_init_process_date
      Src: /src/haproxy/src/haproxy.c:1404,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:1407,1
    - Dst: memset
      Src: /src/haproxy/src/haproxy.c:1414,1
    - Dst: gethostname
      Src: /src/haproxy/src/haproxy.c:1415,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1417,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1419,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1420,1
    - Dst: strchr
      Src: /src/haproxy/src/haproxy.c:1427,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1430,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1431,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1433,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1434,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/haproxy.c:1437,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1437,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1378
    functionDepth: 9
    functionLinenumber: 1378
    functionLinenumberEnd: 1438
    functionName: init_early
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - strdup
    - getpid
    - memset
    - strchr
    - getenv
    - setenv
    - exit
    - tzset
    - strlen
    - chunk_initlen
    - gethostname
    - ha_alert
    - clock_init_process_date
    linkageType: ''
    returnType: void
    signature: void init_early(int argc, char **argv)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: copy_argv
      Src: /src/haproxy/src/haproxy.c:1481,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1483,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1484,1
    - Dst: display_version_plain
      Src: /src/haproxy/src/haproxy.c:1498,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:1499,1
    - Dst: display_version_plain
      Src: /src/haproxy/src/haproxy.c:1502,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:1503,1
    - Dst: display_version_plain
      Src: /src/haproxy/src/haproxy.c:1506,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:1507,1
    - Dst: display_version
      Src: /src/haproxy/src/haproxy.c:1510,1
    - Dst: display_build_opts
      Src: /src/haproxy/src/haproxy.c:1512,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:1513,1
    - Dst: protocol_clrf_all
      Src: /src/haproxy/src/haproxy.c:1542,1
    - Dst: strchr
      Src: /src/haproxy/src/haproxy.c:1564,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1568,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/haproxy.c:1573,1
    - Dst: atoll
      Src: /src/haproxy/src/haproxy.c:1573,1
    - Dst: pool_parse_debugging
      Src: /src/haproxy/src/haproxy.c:1582,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1586,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1588,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:1589,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1590,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:1592,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:1593,1
    - Dst: trace_parse_cmd
      Src: /src/haproxy/src/haproxy.c:1615,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1618,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:1619,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1620,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1623,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:1624,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1625,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1658,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1659,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:1662,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1672,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1673,1
    - Dst: malloc
      Src: /src/haproxy/src/haproxy.c:1675,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1675,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1676,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1677,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/haproxy.c:1679,1
    - Dst: realloc
      Src: /src/haproxy/src/haproxy.c:1693,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1695,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1696,1
    - Dst: strtol
      Src: /src/haproxy/src/haproxy.c:1700,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1702,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:1704,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1705,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1706,1
    - Dst: isspace
      Src: /src/haproxy/src/haproxy.c:1707,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1709,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1711,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1715,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1722,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1723,1
    - Dst: list_append_cfgfile
      Src: /src/haproxy/src/haproxy.c:1736,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1737,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1740,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1749,1
    - Dst: atol
      Src: /src/haproxy/src/haproxy.c:1753,1
    - Dst: atol
      Src: /src/haproxy/src/haproxy.c:1754,1
    - Dst: atol
      Src: /src/haproxy/src/haproxy.c:1755,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1757,1
    - Dst: strdup
      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:1760,1
    - Dst: list_append_cfgfile
      Src: /src/haproxy/src/haproxy.c:1765,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1766,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1769,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:1773,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:1774,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1775,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1776,1
    - Dst: usage
      Src: /src/haproxy/src/haproxy.c:1779,1
    CyclomaticComplexity: 84
    EdgeCount: 84
    ICount: 237
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1786
      start: 1444
    functionDepth: 10
    functionLinenumber: 1444
    functionLinenumberEnd: 1786
    functionName: init_args
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - protocol_clrf_all
    - exit
    - HA_ATOMIC_STORE
    - realloc
    - pool_parse_debugging
    - malloc
    - strerror
    - ha_warning
    - trace_parse_cmd
    - strcmp
    - printf
    - ha_free
    - display_version_plain
    - strlen
    - atol
    - list_append_cfgfile
    - strdup
    - display_version
    - isspace
    - LIST_INSERT
    - deinit_and_exit
    - copy_argv
    - ha_alert
    - usage
    - atoll
    - free
    - display_build_opts
    - strchr
    - strtol
    linkageType: ''
    returnType: void
    signature: void init_args(int argc, char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/haproxy.c:1799,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1803,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1804,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1805,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1806,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1807,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1808,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1809,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1810,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1811,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1812,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1815,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1819,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1820,1
    - Dst: acl_dump_kwd
      Src: /src/haproxy/src/haproxy.c:1821,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1824,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1825,1
    - Dst: cfg_dump_registered_keywords
      Src: /src/haproxy/src/haproxy.c:1826,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1829,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1830,1
    - Dst: cli_list_keywords
      Src: /src/haproxy/src/haproxy.c:1831,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1834,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1835,1
    - Dst: smp_dump_conv_kw
      Src: /src/haproxy/src/haproxy.c:1836,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1839,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1840,1
    - Dst: flt_dump_kws
      Src: /src/haproxy/src/haproxy.c:1841,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1844,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1845,1
    - Dst: smp_dump_fetch_kw
      Src: /src/haproxy/src/haproxy.c:1846,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1849,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:1850,1
    - Dst: list_services
      Src: /src/haproxy/src/haproxy.c:1851,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1793
    functionDepth: 6
    functionLinenumber: 1793
    functionLinenumberEnd: 1854
    functionName: dump_registered_keywords
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - strchr
    - smp_dump_conv_kw
    - strcmp
    - list_services
    - printf
    - cfg_dump_registered_keywords
    - cli_list_keywords
    - acl_dump_kwd
    - flt_dump_kws
    - smp_dump_fetch_kw
    linkageType: ''
    returnType: void
    signature: void dump_registered_keywords(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/haproxy.c:1866,1
    - Dst: ha_random64
      Src: /src/haproxy/src/haproxy.c:1868,1
    - Dst: memcpy
      Src: /src/haproxy/src/haproxy.c:1869,1
    - Dst: ha_random64
      Src: /src/haproxy/src/haproxy.c:1870,1
    - Dst: memcpy
      Src: /src/haproxy/src/haproxy.c:1871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1860
    functionDepth: 2
    functionLinenumber: 1860
    functionLinenumberEnd: 1873
    functionName: generate_random_cluster_secret
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - memcpy
    - BUG_ON
    - ha_random64
    linkageType: ''
    returnType: void
    signature: void generate_random_cluster_secret()
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/haproxy/src/haproxy.c:1887,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1888,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:1889,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1891,1
    - Dst: fork
      Src: /src/haproxy/src/haproxy.c:1894,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1897,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:1898,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1899,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:1904,1
    - Dst: setsid
      Src: /src/haproxy/src/haproxy.c:1906,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:1911,1
    - Dst: read
      Src: /src/haproxy/src/haproxy.c:1922,1
    - Dst: waitpid
      Src: /src/haproxy/src/haproxy.c:1923,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1925,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:1926,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1927,1
    - Dst: WIFEXITED
      Src: /src/haproxy/src/haproxy.c:1929,1
    - Dst: WEXITSTATUS
      Src: /src/haproxy/src/haproxy.c:1930,1
    - Dst: WIFSIGNALED
      Src: /src/haproxy/src/haproxy.c:1931,1
    - Dst: WTERMSIG
      Src: /src/haproxy/src/haproxy.c:1932,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1936,1
    - Dst: strsignal
      Src: /src/haproxy/src/haproxy.c:1937,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1941,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1879
    functionDepth: 9
    functionLinenumber: 1879
    functionLinenumberEnd: 1943
    functionName: apply_daemon_mode
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - exit
    - waitpid
    - read
    - WIFSIGNALED
    - pipe
    - close
    - WIFEXITED
    - fork
    - strsignal
    - strerror
    - setsid
    - ha_alert
    - protocol_unbind_all
    - WTERMSIG
    - WEXITSTATUS
    linkageType: ''
    returnType: void
    signature: void apply_daemon_mode()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/haproxy/src/haproxy.c:1950,1
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:1951,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1953,1
    - Dst: snprintf
      Src: /src/haproxy/src/haproxy.c:1956,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:1956,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/haproxy.c:1957,1
    - Dst: write
      Src: /src/haproxy/src/haproxy.c:1957,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:1957,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:1958,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:1960,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1946
    functionDepth: 9
    functionLinenumber: 1946
    functionLinenumberEnd: 1963
    functionName: handle_pidfile
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - getpid
    - unlink
    - snprintf
    - open
    - ha_free
    - close
    - strlen
    - DISGUISE
    - ha_alert
    - write
    linkageType: ''
    returnType: int
    signature: int handle_pidfile(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:1972,1
    - Dst: sock_get_old_sockets
      Src: /src/haproxy/src/haproxy.c:1973,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:1974,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:1976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1965
    functionDepth: 9
    functionLinenumber: 1965
    functionLinenumberEnd: 1979
    functionName: get_listeners_fd
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - exit
    - sock_get_old_sockets
    - ha_alert
    - strcmp
    linkageType: ''
    returnType: void
    signature: void get_listeners_fd()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: protocol_bind_all
      Src: /src/haproxy/src/haproxy.c:1993,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:2004,1
    - Dst: select
      Src: /src/haproxy/src/haproxy.c:2012,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2017,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:2019,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:2020,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2021,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2023
      start: 1981
    functionDepth: 9
    functionLinenumber: 1981
    functionLinenumberEnd: 2023
    functionName: bind_listeners
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - protocol_bind_all
    - tell_old_pids
    - exit
    - select
    - ha_alert
    - protocol_unbind_all
    linkageType: ''
    returnType: void
    signature: void bind_listeners()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wolfSSL_Init
      Src: /src/haproxy/src/haproxy.c:2034,1
    - Dst: wolfSSL_Debugging_ON
      Src: /src/haproxy/src/haproxy.c:2035,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/haproxy.c:2039,1
    - Dst: strncmp
      Src: /src/haproxy/src/haproxy.c:2040,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2041,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2042,1
    - Dst: SSL_load_error_strings
      Src: /src/haproxy/src/haproxy.c:2051,1
    - Dst: startup_logs_init
      Src: /src/haproxy/src/haproxy.c:2056,1
    - Dst: init_acl
      Src: /src/haproxy/src/haproxy.c:2058,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2059,1
    - Dst: hlua_init
      Src: /src/haproxy/src/haproxy.c:2062,1
    - Dst: do_check_condition
      Src: /src/haproxy/src/haproxy.c:2072,1
    - Dst: chdir
      Src: /src/haproxy/src/haproxy.c:2074,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2075,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:2075,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2076,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2030
    functionDepth: 10
    functionLinenumber: 2030
    functionLinenumberEnd: 2078
    functionName: step_init_1
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - wolfSSL_Debugging_ON
    - wolfSSL_Init
    - exit
    - strncmp
    - startup_logs_init
    - chdir
    - hlua_init
    - init_acl
    - strerror
    - ha_alert
    - SSL_load_error_strings
    - do_check_condition
    - OpenSSL_version
    linkageType: ''
    returnType: void
    signature: void step_init_1()
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: proxy_destroy_all_unref_defaults
      Src: /src/haproxy/src/haproxy.c:2097,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2099,1
    - Dst: struct pre_check_fct*::fct
      Src: /src/haproxy/src/haproxy.c:2100,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2102,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2103,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/haproxy.c:2110,1
    - Dst: clock_adjust_now_offset
      Src: /src/haproxy/src/haproxy.c:2111,1
    - Dst: cpu_detect_usable
      Src: /src/haproxy/src/haproxy.c:2118,1
    - Dst: cpu_detect_topology
      Src: /src/haproxy/src/haproxy.c:2121,1
    - Dst: cpu_fixup_topology
      Src: /src/haproxy/src/haproxy.c:2124,1
    - Dst: cpu_compose_clusters
      Src: /src/haproxy/src/haproxy.c:2127,1
    - Dst: cpu_refine_cpusets
      Src: /src/haproxy/src/haproxy.c:2130,1
    - Dst: thread_detect_count
      Src: /src/haproxy/src/haproxy.c:2134,1
    - Dst: check_config_validity
      Src: /src/haproxy/src/haproxy.c:2137,1
    - Dst: chdir
      Src: /src/haproxy/src/haproxy.c:2138,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2139,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:2139,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2140,1
    - Dst: shm_stats_file_prepare
      Src: /src/haproxy/src/haproxy.c:2146,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2148,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/haproxy.c:2151,1
    - Dst: clock_adjust_now_offset
      Src: /src/haproxy/src/haproxy.c:2152,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2155,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2163,1
    - Dst: struct post_server_check_fct*::fct
      Src: /src/haproxy/src/haproxy.c:2165,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2167,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2168,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2172,1
    - Dst: struct post_proxy_check_fct*::fct
      Src: /src/haproxy/src/haproxy.c:2173,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2175,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2176,1
    - Dst: pattern_finalize_config
      Src: /src/haproxy/src/haproxy.c:2183,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2185,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2186,1
    - Dst: netns_init
      Src: /src/haproxy/src/haproxy.c:2193,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2195,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2196,1
    - Dst: thread_detect_binding_discrepancies
      Src: /src/haproxy/src/haproxy.c:2200,1
    - Dst: thread_detect_more_than_cpus
      Src: /src/haproxy/src/haproxy.c:2201,1
    - Dst: apply_server_state
      Src: /src/haproxy/src/haproxy.c:2204,1
    - Dst: apply_stats_file
      Src: /src/haproxy/src/haproxy.c:2207,1
    - Dst: srv_compute_all_admin_states
      Src: /src/haproxy/src/haproxy.c:2210,1
    - Dst: srv_init_addr
      Src: /src/haproxy/src/haproxy.c:2213,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2215,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2216,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2220,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2221,1
    - Dst: qfprintf
      Src: /src/haproxy/src/haproxy.c:2226,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/haproxy.c:2227,1
    - Dst: dump_libs
      Src: /src/haproxy/src/haproxy.c:2228,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:2229,1
    - Dst: dump_registered_keywords
      Src: /src/haproxy/src/haproxy.c:2234,1
    - Dst: cfg_run_diagnostics
      Src: /src/haproxy/src/haproxy.c:2237,1
    - Dst: qfprintf
      Src: /src/haproxy/src/haproxy.c:2245,1
    - Dst: qfprintf
      Src: /src/haproxy/src/haproxy.c:2265,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:2266,1
    - Dst: qfprintf
      Src: /src/haproxy/src/haproxy.c:2268,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2269,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:2273,1
    - Dst: init_buffer
      Src: /src/haproxy/src/haproxy.c:2276,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2278,1
    - Dst: struct post_check_fct*::fct
      Src: /src/haproxy/src/haproxy.c:2279,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2281,1
    - Dst: set_global_maxconn
      Src: /src/haproxy/src/haproxy.c:2304,1
    - Dst: compute_ideal_maxsock
      Src: /src/haproxy/src/haproxy.c:2305,1
    - Dst: compute_ideal_maxpipes
      Src: /src/haproxy/src/haproxy.c:2308,1
    - Dst: proxy_adjust_all_maxconn
      Src: /src/haproxy/src/haproxy.c:2314,1
    - Dst: my_flsl
      Src: /src/haproxy/src/haproxy.c:2326,1
    - Dst: init_trash_buffers
      Src: /src/haproxy/src/haproxy.c:2338,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2339,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2340,1
    - Dst: init_log_buffers
      Src: /src/haproxy/src/haproxy.c:2343,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2344,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2345,1
    - Dst: generate_random_cluster_secret
      Src: /src/haproxy/src/haproxy.c:2349,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2357,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2360,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2363,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2366,1
    - Dst: disable_poller
      Src: /src/haproxy/src/haproxy.c:2369,1
    - Dst: list_pollers
      Src: /src/haproxy/src/haproxy.c:2374,1
    - Dst: fprintf
      Src: /src/haproxy/src/haproxy.c:2375,1
    - Dst: list_filters
      Src: /src/haproxy/src/haproxy.c:2376,1
    - Dst: init_pollers
      Src: /src/haproxy/src/haproxy.c:2379,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2380,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2391,1
    - Dst: printf
      Src: /src/haproxy/src/haproxy.c:2394,1
    - Dst: strdup
      Src: /src/haproxy/src/haproxy.c:2398,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/haproxy.c:2403,1
    - Dst: hlua_post_init
      Src: /src/haproxy/src/haproxy.c:2406,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2407,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/haproxy.c:2418,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/haproxy.c:2421,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2423,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2425,1
    - Dst: __has_feature
      Src: /src/haproxy/src/haproxy.c:2427,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2428,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/haproxy.c:2431,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2432,1
    - Dst: chunk_newstr
      Src: /src/haproxy/src/haproxy.c:2435,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/haproxy.c:2436,1
    - Dst: post_mortem_add_component
      Src: /src/haproxy/src/haproxy.c:2438,1
    CyclomaticComplexity: 71
    EdgeCount: 71
    ICount: 201
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2088
    functionDepth: 10
    functionLinenumber: 2088
    functionLinenumberEnd: 2439
    functionName: step_init_2
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - srv_compute_all_admin_states
    - cpu_detect_usable
    - exit
    - struct post_check_fct*::fct
    - disable_poller
    - shm_stats_file_prepare
    - thread_detect_more_than_cpus
    - apply_stats_file
    - strerror
    - list_pollers
    - thread_detect_binding_discrepancies
    - list_filters
    - my_flsl
    - stop_proxy
    - generate_random_cluster_secret
    - compute_ideal_maxsock
    - init_log_buffers
    - printf
    - chunk_appendf
    - cpu_compose_clusters
    - struct post_proxy_check_fct*::fct
    - fprintf
    - cpu_refine_cpusets
    - cfg_run_diagnostics
    - struct pre_check_fct*::fct
    - __has_feature
    - apply_server_state
    - init_pollers
    - srv_init_addr
    - dump_libs
    - strdup
    - proxy_destroy_all_unref_defaults
    - check_config_validity
    - deinit_and_exit
    - compute_ideal_maxpipes
    - ha_alert
    - qfprintf
    - post_mortem_add_component
    - chunk_newstr
    - list_for_each_entry
    - init_buffer
    - proxy_adjust_all_maxconn
    - cpu_fixup_topology
    - pattern_finalize_config
    - cpu_detect_topology
    - thread_detect_count
    - chdir
    - init_trash_buffers
    - hlua_post_init
    - struct post_server_check_fct*::fct
    - dump_registered_keywords
    - set_global_maxconn
    - clock_adjust_now_offset
    - netns_init
    - clock_update_date
    - chunk_reset
    linkageType: ''
    returnType: void
    signature: void step_init_2(int argc, char** argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2452,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2453,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2454,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2455,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:2461,1
    - Dst: apply_nofile_limit
      Src: /src/haproxy/src/haproxy.c:2464,1
    - Dst: apply_memory_limit
      Src: /src/haproxy/src/haproxy.c:2465,1
    - Dst: prepare_caps_from_permitted_set
      Src: /src/haproxy/src/haproxy.c:2473,1
    - Dst: geteuid
      Src: /src/haproxy/src/haproxy.c:2473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2449
    functionDepth: 2
    functionLinenumber: 2449
    functionLinenumberEnd: 2475
    functionName: step_init_3
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - geteuid
    - prepare_caps_from_permitted_set
    - apply_memory_limit
    - apply_nofile_limit
    - signal_register_fct
    linkageType: ''
    returnType: void
    signature: void step_init_3(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:2485,1
    - Dst: stdio_quiet
      Src: /src/haproxy/src/haproxy.c:2495,1
    - Dst: check_nofile_lim_and_prealloc_fd
      Src: /src/haproxy/src/haproxy.c:2506,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/haproxy.c:2509,1
    - Dst: clock_adjust_now_offset
      Src: /src/haproxy/src/haproxy.c:2510,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2482
    functionDepth: 10
    functionLinenumber: 2482
    functionLinenumberEnd: 2512
    functionName: step_init_4
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - check_nofile_lim_and_prealloc_fd
    - getenv
    - clock_adjust_now_offset
    - clock_update_date
    - stdio_quiet
    linkageType: ''
    returnType: void
    signature: void step_init_4(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:2535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2518
    functionDepth: 9
    functionLinenumber: 2518
    functionLinenumberEnd: 2538
    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:2551,1
    - Dst: sd_notify
      Src: /src/haproxy/src/haproxy.c:2557,1
    - Dst: atexit
      Src: /src/haproxy/src/haproxy.c:2562,1
    - Dst: set_verbosity
      Src: /src/haproxy/src/haproxy.c:2563,1
    - Dst: mworker_cli_create_master_proxy
      Src: /src/haproxy/src/haproxy.c:2566,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2567,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2568,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2569,1
    - Dst: mworker_cli_attach_server
      Src: /src/haproxy/src/haproxy.c:2573,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2574,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2575,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2576,1
    - Dst: mworker_create_master_cli
      Src: /src/haproxy/src/haproxy.c:2580,1
    - Dst: step_init_2
      Src: /src/haproxy/src/haproxy.c:2581,1
    - Dst: step_init_3
      Src: /src/haproxy/src/haproxy.c:2582,1
    - Dst: protocol_bind_all
      Src: /src/haproxy/src/haproxy.c:2583,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2584,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2585,1
    - Dst: step_init_4
      Src: /src/haproxy/src/haproxy.c:2588,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:2594,1
    - Dst: stdio_quiet
      Src: /src/haproxy/src/haproxy.c:2595,1
    - Dst: mworker_run_master
      Src: /src/haproxy/src/haproxy.c:2601,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2540
    functionDepth: 11
    functionLinenumber: 2540
    functionLinenumberEnd: 2602
    functionName: run_master_in_recovery_mode
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - step_init_2
    - protocol_bind_all
    - list_for_each_entry
    - getenv
    - exit
    - step_init_3
    - mworker_create_master_cli
    - mworker_run_master
    - mworker_cli_create_master_proxy
    - free
    - atexit
    - mworker_cli_attach_server
    - ha_alert
    - step_init_4
    - sd_notify
    - set_verbosity
    - stdio_quiet
    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:2612,1
    - Dst: load_cfg
      Src: /src/haproxy/src/haproxy.c:2613,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:2614,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:2615,1
    - Dst: run_master_in_recovery_mode
      Src: /src/haproxy/src/haproxy.c:2623,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2626,1
    - Dst: read_cfg
      Src: /src/haproxy/src/haproxy.c:2629,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2630,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2631,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2632,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:2634,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:2635,1
    - Dst: run_master_in_recovery_mode
      Src: /src/haproxy/src/haproxy.c:2643,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2646,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/haproxy.c:2648,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/haproxy.c:2652,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:2653,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2654,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2662
      start: 2605
    functionDepth: 12
    functionLinenumber: 2605
    functionLinenumberEnd: 2662
    functionName: read_cfg_in_discovery_mode
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - usermsgs_clr
    - ha_warning
    - getenv
    - exit
    - list_for_each_entry_safe
    - ha_free
    - run_master_in_recovery_mode
    - ha_alert
    - read_cfg
    - LIST_ISEMPTY
    - load_cfg
    linkageType: ''
    returnType: void
    signature: void read_cfg_in_discovery_mode(int argc, char **argv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:2705,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/haproxy.c:2714,1
    - Dst: unbind_listener
      Src: /src/haproxy/src/haproxy.c:2715,1
    - Dst: deinit_signals
      Src: /src/haproxy/src/haproxy.c:2719,1
    - Dst: free_proxy
      Src: /src/haproxy/src/haproxy.c:2723,1
    - Dst: proxy_destroy_all_unref_defaults
      Src: /src/haproxy/src/haproxy.c:2731,1
    - Dst: userlist_free
      Src: /src/haproxy/src/haproxy.c:2733,1
    - Dst: cfg_unregister_sections
      Src: /src/haproxy/src/haproxy.c:2735,1
    - Dst: deinit_log_buffers
      Src: /src/haproxy/src/haproxy.c:2737,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:2739,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2742,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/haproxy.c:2743,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2744,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2745,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2746,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2747,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2748,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2749,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2750,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2751,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2752,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2753,1
    - Dst: task_destroy
      Src: /src/haproxy/src/haproxy.c:2754,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2757,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/haproxy.c:2758,1
    - Dst: free_logger
      Src: /src/haproxy/src/haproxy.c:2759,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2762,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2763,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2764,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:2765,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2768,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2770,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2771,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2772,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2775,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2776,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2777,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2780,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2781,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2782,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2785,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2786,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2787,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2790,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2791,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2792,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2795,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2796,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2797,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2800,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2801,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2802,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2805,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2806,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2807,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2810,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2811,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2812,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2815,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2816,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2817,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2820,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2821,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2822,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2825,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2826,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2827,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:2830,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/haproxy.c:2831,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2832,1
    - Dst: vars_prune
      Src: /src/haproxy/src/haproxy.c:2835,1
    - Dst: free_all_file_names
      Src: /src/haproxy/src/haproxy.c:2836,1
    - Dst: pool_destroy_all
      Src: /src/haproxy/src/haproxy.c:2837,1
    - Dst: deinit_pollers
      Src: /src/haproxy/src/haproxy.c:2838,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2843,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2846,1
    - Dst: free
      Src: /src/haproxy/src/haproxy.c:2848,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2850
      start: 2664
    functionDepth: 6
    functionLinenumber: 2664
    functionLinenumberEnd: 2850
    functionName: deinit
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 34
    functionsReached:
    - free_all_file_names
    - vars_prune
    - cfg_unregister_sections
    - task_destroy
    - list_for_each_entry_safe
    - deinit_log_buffers
    - ha_free
    - chunk_destroy
    - protocol_unbind_all
    - pool_destroy_all
    - proxy_destroy_all_unref_defaults
    - deinit_pollers
    - free_proxy
    - BUG_ON
    - LIST_DEL_INIT
    - free_logger
    - unbind_listener
    - list_for_each_entry
    - userlist_free
    - LIST_DELETE
    - deinit_signals
    - free
    linkageType: ''
    returnType: void
    signature: void deinit(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deinit
      Src: /src/haproxy/src/haproxy.c:2855,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:2856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - status
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2857
      start: 2852
    functionDepth: 7
    functionLinenumber: 2852
    functionLinenumberEnd: 2857
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/haproxy.c:2864,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/haproxy.c:2866,1
    - Dst: wake_expired_tasks
      Src: /src/haproxy/src/haproxy.c:2868,1
    - Dst: signal_process_queue
      Src: /src/haproxy/src/haproxy.c:2874,1
    - Dst: process_runnable_tasks
      Src: /src/haproxy/src/haproxy.c:2878,1
    - Dst: thread_has_tasks
      Src: /src/haproxy/src/haproxy.c:2886,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/haproxy.c:2889,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:2890,1
    - Dst: __ha_barrier_atomic_store
      Src: /src/haproxy/src/haproxy.c:2891,1
    - Dst: thread_has_tasks
      Src: /src/haproxy/src/haproxy.c:2892,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:2894,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:2898,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/haproxy.c:2913,1
    - Dst: _HA_ATOMIC_OR_FETCH
      Src: /src/haproxy/src/haproxy.c:2917,1
    - Dst: _HA_ATOMIC_OR_FETCH
      Src: /src/haproxy/src/haproxy.c:2918,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:2921,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:2923,1
    - Dst: wake_thread
      Src: /src/haproxy/src/haproxy.c:2924,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:2931,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:2934,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:2935,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:2936,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/haproxy.c:2942,1
    - Dst: wake_thread
      Src: /src/haproxy/src/haproxy.c:2943,1
    - Dst: next_timer_expiry
      Src: /src/haproxy/src/haproxy.c:2953,1
    - Dst: poll
      Src: /src/haproxy/src/haproxy.c:2956,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:2961,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2962
      start: 2860
    functionDepth: 3
    functionLinenumber: 2860
    functionLinenumberEnd: 2962
    functionName: run_poll_loop
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - process_runnable_tasks
    - thread_has_tasks
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_OR_FETCH
    - poll
    - _HA_ATOMIC_AND
    - __ha_barrier_atomic_store
    - task_wakeup
    - signal_process_queue
    - _HA_ATOMIC_OR
    - wake_expired_tasks
    - next_timer_expiry
    - wake_thread
    - clock_update_date
    linkageType: ''
    returnType: void
    signature: void run_poll_loop()
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ha_set_thread
      Src: /src/haproxy/src/haproxy.c:2974,1
    - Dst: set_thread_cpu_affinity
      Src: /src/haproxy/src/haproxy.c:2975,1
    - Dst: clock_set_local_source
      Src: /src/haproxy/src/haproxy.c:2976,1
    - Dst: ha_get_pthread_id
      Src: /src/haproxy/src/haproxy.c:2979,1
    - Dst: __builtin_frame_address
      Src: /src/haproxy/src/haproxy.c:2981,1
    - Dst: MIN
      Src: /src/haproxy/src/haproxy.c:2990,1
    - Dst: thread_harmless_end
      Src: /src/haproxy/src/haproxy.c:2996,1
    - Dst: thread_idle_end
      Src: /src/haproxy/src/haproxy.c:2997,1
    - Dst: _HA_ATOMIC_OR
      Src: /src/haproxy/src/haproxy.c:2998,1
    - Dst: pthread_mutex_lock
      Src: /src/haproxy/src/haproxy.c:3006,1
    - Dst: clock_init_thread_date
      Src: /src/haproxy/src/haproxy.c:3013,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3020,1
    - Dst: struct per_thread_alloc_fct*::fct
      Src: /src/haproxy/src/haproxy.c:3021,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3022,1
    - Dst: pthread_mutex_unlock
      Src: /src/haproxy/src/haproxy.c:3024,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3026,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3034,1
    - Dst: struct per_thread_init_fct*::fct
      Src: /src/haproxy/src/haproxy.c:3035,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3036,1
    - Dst: pthread_mutex_unlock
      Src: /src/haproxy/src/haproxy.c:3038,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3040,1
    - Dst: protocol_enable_all
      Src: /src/haproxy/src/haproxy.c:3049,1
    - Dst: pthread_cond_broadcast
      Src: /src/haproxy/src/haproxy.c:3052,1
    - Dst: pthread_mutex_unlock
      Src: /src/haproxy/src/haproxy.c:3053,1
    - Dst: pthread_mutex_lock
      Src: /src/haproxy/src/haproxy.c:3056,1
    - Dst: pthread_cond_wait
      Src: /src/haproxy/src/haproxy.c:3058,1
    - Dst: pthread_mutex_unlock
      Src: /src/haproxy/src/haproxy.c:3059,1
    - Dst: prctl
      Src: /src/haproxy/src/haproxy.c:3073,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/haproxy.c:3073,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3074,1
    - Dst: setrlimit
      Src: /src/haproxy/src/haproxy.c:3091,1
    - Dst: _HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/haproxy.c:3091,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3092,1
    - Dst: run_poll_loop
      Src: /src/haproxy/src/haproxy.c:3098,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3100,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3103,1
    - Dst: _HA_ATOMIC_AND_FETCH
      Src: /src/haproxy/src/haproxy.c:3107,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:3108,1
    - Dst: _HA_ATOMIC_AND_FETCH
      Src: /src/haproxy/src/haproxy.c:3109,1
    - Dst: _HA_ATOMIC_AND
      Src: /src/haproxy/src/haproxy.c:3110,1
    - Dst: pthread_exit
      Src: /src/haproxy/src/haproxy.c:3112,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 59
    argCount: 1
    argNames:
    - data
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3115
      start: 2964
    functionDepth: 9
    functionLinenumber: 2964
    functionLinenumberEnd: 3115
    functionName: run_thread_poll_loop
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 1
    functionsReached:
    - exit
    - __builtin_frame_address
    - clock_init_thread_date
    - setrlimit
    - _HA_ATOMIC_OR
    - thread_harmless_end
    - pthread_cond_wait
    - run_poll_loop
    - ha_warning
    - MIN
    - pthread_mutex_unlock
    - clock_set_local_source
    - prctl
    - struct per_thread_init_fct*::fct
    - pthread_mutex_lock
    - pthread_exit
    - ha_alert
    - pthread_cond_broadcast
    - _HA_ATOMIC_FETCH_ADD
    - _HA_ATOMIC_AND_FETCH
    - ha_get_pthread_id
    - list_for_each_entry
    - protocol_enable_all
    - struct per_thread_alloc_fct*::fct
    - _HA_ATOMIC_AND
    - ha_set_thread
    - set_thread_cpu_affinity
    - thread_idle_end
    linkageType: ''
    returnType: void
    signature: void *run_thread_poll_loop(void *data)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: geteuid
      Src: /src/haproxy/src/haproxy.c:3120,1
    - Dst: getgroups
      Src: /src/haproxy/src/haproxy.c:3123,1
    - Dst: setgroups
      Src: /src/haproxy/src/haproxy.c:3123,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3124,1
    - Dst: setgid
      Src: /src/haproxy/src/haproxy.c:3127,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3128,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3129,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3130,1
    - Dst: prepare_caps_for_setuid
      Src: /src/haproxy/src/haproxy.c:3135,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3136,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3137,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3138,1
    - Dst: setuid
      Src: /src/haproxy/src/haproxy.c:3142,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3143,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3144,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3145,1
    - Dst: finalize_caps_after_setuid
      Src: /src/haproxy/src/haproxy.c:3149,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3150,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3151,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3152,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3118
    functionDepth: 9
    functionLinenumber: 3118
    functionLinenumberEnd: 3155
    functionName: set_identity
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - setgroups
    - exit
    - getgroups
    - geteuid
    - setuid
    - finalize_caps_after_setuid
    - setgid
    - ha_alert
    - protocol_unbind_all
    - prepare_caps_for_setuid
    linkageType: ''
    returnType: void
    signature: void set_identity(const char *program_name)
  - BBCount: 61
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/haproxy.c:3186,1
    - Dst: setvbuf
      Src: /src/haproxy/src/haproxy.c:3195,1
    - Dst: getrlimit
      Src: /src/haproxy/src/haproxy.c:3198,1
    - Dst: ssl_initialize_random
      Src: /src/haproxy/src/haproxy.c:3211,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3212,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3213,1
    - Dst: ha_random_boot
      Src: /src/haproxy/src/haproxy.c:3216,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3219,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3220,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3221,1
    - Dst: init_early
      Src: /src/haproxy/src/haproxy.c:3224,1
    - Dst: init_args
      Src: /src/haproxy/src/haproxy.c:3227,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3229,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3230,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3234,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3235,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3238,1
    - Dst: step_init_1
      Src: /src/haproxy/src/haproxy.c:3244,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3253,1
    - Dst: strcmp
      Src: /src/haproxy/src/haproxy.c:3255,1
    - Dst: struct unittest_fct*::fct
      Src: /src/haproxy/src/haproxy.c:3256,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3261,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:3267,1
    - Dst: mworker_env_to_proc_list
      Src: /src/haproxy/src/haproxy.c:3268,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3269,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3271,1
    - Dst: backup_env
      Src: /src/haproxy/src/haproxy.c:3278,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3279,1
    - Dst: read_cfg_in_discovery_mode
      Src: /src/haproxy/src/haproxy.c:3282,1
    - Dst: set_verbosity
      Src: /src/haproxy/src/haproxy.c:3287,1
    - Dst: mworker_prepare_master
      Src: /src/haproxy/src/haproxy.c:3295,1
    - Dst: getenv
      Src: /src/haproxy/src/haproxy.c:3302,1
    - Dst: apply_daemon_mode
      Src: /src/haproxy/src/haproxy.c:3304,1
    - Dst: mworker_apply_master_worker_mode
      Src: /src/haproxy/src/haproxy.c:3309,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/haproxy.c:3314,1
    - Dst: clean_env
      Src: /src/haproxy/src/haproxy.c:3316,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3317,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3318,1
    - Dst: restore_env
      Src: /src/haproxy/src/haproxy.c:3321,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3322,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3323,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:3325,1
    - Dst: setenv
      Src: /src/haproxy/src/haproxy.c:3333,1
    - Dst: read_cfg
      Src: /src/haproxy/src/haproxy.c:3342,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:3343,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3344,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3345,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3347,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/haproxy.c:3350,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3351,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/haproxy.c:3353,1
    - Dst: step_init_2
      Src: /src/haproxy/src/haproxy.c:3360,1
    - Dst: RUN_INITCALLS
      Src: /src/haproxy/src/haproxy.c:3362,1
    - Dst: step_init_3
      Src: /src/haproxy/src/haproxy.c:3366,1
    - Dst: get_listeners_fd
      Src: /src/haproxy/src/haproxy.c:3373,1
    - Dst: bind_listeners
      Src: /src/haproxy/src/haproxy.c:3375,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3390,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3392,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3400,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3403,1
    - Dst: sock_drop_unused_old_sockets
      Src: /src/haproxy/src/haproxy.c:3409,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:3412,1
    - Dst: signal_register_fct
      Src: /src/haproxy/src/haproxy.c:3413,1
    - Dst: step_init_4
      Src: /src/haproxy/src/haproxy.c:3418,1
    - Dst: mworker_run_master
      Src: /src/haproxy/src/haproxy.c:3422,1
    - Dst: open
      Src: /src/haproxy/src/haproxy.c:3428,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3430,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3431,1
    - Dst: fcntl
      Src: /src/haproxy/src/haproxy.c:3433,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3434,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3435,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3436,1
    - Dst: setpriority
      Src: /src/haproxy/src/haproxy.c:3443,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3444,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:3445,1
    - Dst: handle_pidfile
      Src: /src/haproxy/src/haproxy.c:3454,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:3456,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3457,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3459,1
    - Dst: chroot
      Src: /src/haproxy/src/haproxy.c:3467,1
    - Dst: chdir
      Src: /src/haproxy/src/haproxy.c:3467,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3468,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:3470,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3471,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3472,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3476,1
    - Dst: tell_old_pids
      Src: /src/haproxy/src/haproxy.c:3487,1
    - Dst: set_identity
      Src: /src/haproxy/src/haproxy.c:3491,1
    - Dst: getuid
      Src: /src/haproxy/src/haproxy.c:3497,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3503,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3506,1
    - Dst: protocol_unbind_all
      Src: /src/haproxy/src/haproxy.c:3511,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3512,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3517,1
    - Dst: geteuid
      Src: /src/haproxy/src/haproxy.c:3521,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3522,1
    - Dst: stdio_quiet
      Src: /src/haproxy/src/haproxy.c:3548,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3551,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:3554,1
    - Dst: fork_poller
      Src: /src/haproxy/src/haproxy.c:3562,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3572,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/haproxy.c:3582,1
    - Dst: sched_setaffinity
      Src: /src/haproxy/src/haproxy.c:3586,1
    - Dst: cpuset_setaffinity
      Src: /src/haproxy/src/haproxy.c:3589,1
    - Dst: setrlimit
      Src: /src/haproxy/src/haproxy.c:3603,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3605,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3607,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3610,1
    - Dst: setrlimit
      Src: /src/haproxy/src/haproxy.c:3616,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3618,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3620,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3623,1
    - Dst: prctl
      Src: /src/haproxy/src/haproxy.c:3629,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3630,1
    - Dst: procctl
      Src: /src/haproxy/src/haproxy.c:3635,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:3635,1
    - Dst: ha_warning
      Src: /src/haproxy/src/haproxy.c:3636,1
    - Dst: setup_extra_threads
      Src: /src/haproxy/src/haproxy.c:3644,1
    - Dst: haproxy_unblock_signals
      Src: /src/haproxy/src/haproxy.c:3647,1
    - Dst: socketpair
      Src: /src/haproxy/src/haproxy.c:3659,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3660,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3663,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/haproxy.c:3666,1
    - Dst: send_fd_uxst
      Src: /src/haproxy/src/haproxy.c:3671,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3672,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3674,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3675,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3677,1
    - Dst: memprintf
      Src: /src/haproxy/src/haproxy.c:3680,1
    - Dst: getpid
      Src: /src/haproxy/src/haproxy.c:3680,1
    - Dst: send
      Src: /src/haproxy/src/haproxy.c:3681,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:3681,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:3681,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3682,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3684,1
    - Dst: shutdown
      Src: /src/haproxy/src/haproxy.c:3693,1
    - Dst: read
      Src: /src/haproxy/src/haproxy.c:3694,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3695,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3696,1
    - Dst: ha_free
      Src: /src/haproxy/src/haproxy.c:3697,1
    - Dst: startup_logs_dup
      Src: /src/haproxy/src/haproxy.c:3700,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3702,1
    - Dst: startup_logs_free
      Src: /src/haproxy/src/haproxy.c:3703,1
    - Dst: write
      Src: /src/haproxy/src/haproxy.c:3712,1
    - Dst: strlen
      Src: /src/haproxy/src/haproxy.c:3712,1
    - Dst: ha_alert
      Src: /src/haproxy/src/haproxy.c:3713,1
    - Dst: strerror
      Src: /src/haproxy/src/haproxy.c:3713,1
    - Dst: exit
      Src: /src/haproxy/src/haproxy.c:3714,1
    - Dst: close
      Src: /src/haproxy/src/haproxy.c:3716,1
    - Dst: reset_usermsgs_ctx
      Src: /src/haproxy/src/haproxy.c:3723,1
    - Dst: run_thread_poll_loop
      Src: /src/haproxy/src/haproxy.c:3726,1
    - Dst: wait_for_threads_completion
      Src: /src/haproxy/src/haproxy.c:3729,1
    - Dst: deinit_and_exit
      Src: /src/haproxy/src/haproxy.c:3731,1
    CyclomaticComplexity: 82
    EdgeCount: 82
    ICount: 255
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3732
      start: 3157
    functionDepth: 13
    functionLinenumber: 3157
    functionLinenumberEnd: 3732
    functionName: main
    functionSourceFile: /src/haproxy/src/haproxy.c
    functionUses: 21
    functionsReached:
    - read_cfg_in_discovery_mode
    - getuid
    - procctl
    - getpid
    - haproxy_unblock_signals
    - init_early
    - getenv
    - exit
    - setup_extra_threads
    - startup_logs_free
    - fork_poller
    - read
    - setrlimit
    - close
    - struct unittest_fct*::fct
    - sock_drop_unused_old_sockets
    - ssl_initialize_random
    - clean_env
    - step_init_4
    - strerror
    - ha_cpuset_count
    - wait_for_threads_completion
    - read_cfg
    - set_verbosity
    - signal_register_fct
    - usermsgs_clr
    - ha_warning
    - run_thread_poll_loop
    - strcmp
    - list_for_each_entry_safe
    - open
    - ha_free
    - geteuid
    - sched_setaffinity
    - mworker_run_master
    - fprintf
    - prctl
    - send_fd_uxst
    - strlen
    - backup_env
    - mworker_env_to_proc_list
    - protocol_unbind_all
    - restore_env
    - send
    - write
    - step_init_2
    - init_args
    - reset_usermsgs_ctx
    - step_init_3
    - startup_logs_dup
    - deinit_and_exit
    - mworker_apply_master_worker_mode
    - set_identity
    - fcntl
    - RUN_INITCALLS
    - chroot
    - socketpair
    - setvbuf
    - cpuset_setaffinity
    - ha_alert
    - memprintf
    - bind_listeners
    - ha_random_boot
    - stdio_quiet
    - get_listeners_fd
    - getrlimit
    - apply_daemon_mode
    - tell_old_pids
    - list_for_each_entry
    - setenv
    - handle_pidfile
    - shutdown
    - chdir
    - setpriority
    - mworker_prepare_master
    - step_init_1
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - 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
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - counters
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 32
    functionDepth: 3
    functionLinenumber: 32
    functionLinenumberEnd: 56
    functionName: _counters_shared_drop
    functionSourceFile: /src/haproxy/src/counters.c
    functionUses: 0
    functionsReached:
    - free
    - container_of
    - HA_ATOMIC_OR
    linkageType: ''
    returnType: void
    signature: void _counters_shared_drop(void *counters)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _counters_shared_drop
      Src: /src/haproxy/src/counters.c:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counters
    argTypes:
    - struct fe_counters_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 62
    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:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - counters
    argTypes:
    - struct be_counters_shared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 68
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/counters.c:94,1
    - Dst: memprintf
      Src: /src/haproxy/src/counters.c:96,1
    - Dst: shm_stats_file_add_object
      Src: /src/haproxy/src/counters.c:101,1
    - Dst: snprintf
      Src: /src/haproxy/src/counters.c:103,1
    - Dst: guid_get
      Src: /src/haproxy/src/counters.c:103,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/counters.c:115,1
    - Dst: _counters_shared_drop
      Src: /src/haproxy/src/counters.c:119,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/counters.c:128,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/counters.c:128,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 4
    argNames:
    - shared
    - guid
    - is_be
    - errmsg
    argTypes:
    - struct counters_shared*
    - struct guid_node*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 79
    functionDepth: 5
    functionLinenumber: 79
    functionLinenumberEnd: 130
    functionName: _counters_shared_prepare
    functionSourceFile: /src/haproxy/src/counters.c
    functionUses: 0
    functionsReached:
    - guid_get
    - snprintf
    - HA_ATOMIC_STORE
    - shm_stats_file_add_object
    - _counters_shared_drop
    - ns_to_sec
    - memprintf
    - calloc
    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:135,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: 136
      start: 133
    functionDepth: 6
    functionLinenumber: 133
    functionLinenumberEnd: 136
    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:141,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: 142
      start: 139
    functionDepth: 6
    functionLinenumber: 139
    functionLinenumberEnd: 142
    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:54,1
    - Dst: quic_aead_iv_build
      Src: /src/haproxy/src/quic_tx.c:57,1
    - Dst: quic_tls_encrypt
      Src: /src/haproxy/src/quic_tx.c:59,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:61,1
    - Dst: enc_debug_info_init
      Src: /src/haproxy/src/quic_tx.c:63,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:66,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: 67
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 67
    functionName: quic_packet_encrypt
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - quic_aead_iv_build
    - TRACE_ERROR
    - enc_debug_info_init
    - quic_tls_encrypt
    - TRACE_LEAVE
    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:78,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_tx.c:83,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:84,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tx.c:85,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:88,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: 89
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 89
    functionName: free_quic_tx_packet
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - pool_free
    - list_for_each_entry_safe
    - TRACE_ENTER
    - qc_frm_free
    - TRACE_LEAVE
    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:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 102
    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:115,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:115,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:117,1
    - Dst: b_free
      Src: /src/haproxy/src/quic_tx.c:118,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/quic_tx.c:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 121
    functionName: qc_txb_release
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 1
    functionsReached:
    - b_data
    - BUG_ON_HOT
    - b_free
    - offer_buffers
    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:132,1
    - Dst: b_is_null
      Src: /src/haproxy/src/quic_tx.c:134,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_tx.c:135,1
    - Dst: b_make
      Src: /src/haproxy/src/quic_tx.c:141,1
    - Dst: qc_txb_alloc
      Src: /src/haproxy/src/quic_tx.c:144,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: qc_get_txb
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - qc_txb_alloc
    - b_is_null
    - pool_alloc
    - TRACE_PROTO
    - 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:165,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_tx.c:165,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:168,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:169,1
    - Dst: write_u16
      Src: /src/haproxy/src/quic_tx.c:172,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_tx.c:172,1
    - Dst: write_ptr
      Src: /src/haproxy/src/quic_tx.c:173,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_tx.c:173,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_tx.c:174,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: 175
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 175
    functionName: qc_txb_store
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - qc_is_back
    - write_ptr
    - BUG_ON
    - b_tail
    - BUG_ON_HOT
    - write_u16
    - b_contig_space
    - b_add
    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:205,1
    - Dst: quic_enc_level_char_from_qel
      Src: /src/haproxy/src/quic_tx.c:207,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_tx.c:208,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:208,1
    - Dst: quic_tls_has_tx_sec
      Src: /src/haproxy/src/quic_tx.c:217,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:219,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: 224
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 224
    functionName: qc_may_build_pkt
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_PRINTF
    - quic_tls_has_tx_sec
    - LIST_ISEMPTY
    - 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:233,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:236,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:237,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - qc
    - l
    argTypes:
    - struct quic_conn*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 241
    functionName: qc_free_frm_list
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - qc_frm_free
    - LIST_DEL_INIT
    - TRACE_ENTER
    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:236,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 238
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 79
    functionsReached:
    - qc_frm_free
    - LIST_DEL_INIT
    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:249,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:252,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_tx.c:254,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:257,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: 258
      start: 244
    functionDepth: 3
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: qc_free_tx_coalesced_pkts
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - pool_free
    - qc_free_frm_list
    - TRACE_LEAVE
    - TRACE_ENTER
    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:263,1
    - Dst: read_u16
      Src: /src/haproxy/src/quic_tx.c:267,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:267,1
    - Dst: read_ptr
      Src: /src/haproxy/src/quic_tx.c:268,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:268,1
    - Dst: qc_free_tx_coalesced_pkts
      Src: /src/haproxy/src/quic_tx.c:269,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_tx.c:270,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:273,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - qc
    - buf
    argTypes:
    - struct quic_conn*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 261
    functionDepth: 4
    functionLinenumber: 261
    functionLinenumberEnd: 274
    functionName: qc_purge_tx_buf
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - read_ptr
    - b_data
    - b_contig_data
    - BUG_ON
    - b_del
    - b_head
    - read_u16
    - qc_free_tx_coalesced_pkts
    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:294,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/quic_tx.c:295,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:303,1
    - Dst: read_u16
      Src: /src/haproxy/src/quic_tx.c:304,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:305,1
    - Dst: likely
      Src: /src/haproxy/src/quic_tx.c:309,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:310,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:314,1
    - Dst: read_ptr
      Src: /src/haproxy/src/quic_tx.c:321,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:326,1
    - Dst: qc_snd_buf
      Src: /src/haproxy/src/quic_tx.c:328,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:332,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:335,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:337,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/quic_tx.c:338,1
    - Dst: __objt_server
      Src: /src/haproxy/src/quic_tx.c:341,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:342,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/quic_tx.c:343,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:351,1
    - Dst: qc_kill_conn
      Src: /src/haproxy/src/quic_tx.c:352,1
    - Dst: qc_free_tx_coalesced_pkts
      Src: /src/haproxy/src/quic_tx.c:353,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_tx.c:354,1
    - Dst: qc_purge_tx_buf
      Src: /src/haproxy/src/quic_tx.c:355,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/quic_tx.c:360,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:361,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:367,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_tx.c:376,1
    - Dst: task_mono_time
      Src: /src/haproxy/src/quic_tx.c:379,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:396,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_tx.c:401,1
    - Dst: write_u16
      Src: /src/haproxy/src/quic_tx.c:402,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:402,1
    - Dst: write_ptr
      Src: /src/haproxy/src/quic_tx.c:403,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:403,1
    - Dst: qc_idle_timer_rearm
      Src: /src/haproxy/src/quic_tx.c:416,1
    - Dst: struct quic_cc*::algo::on_transmit
      Src: /src/haproxy/src/quic_tx.c:418,1
    - Dst: struct quic_cc*::algo::drs_on_transmit
      Src: /src/haproxy/src/quic_tx.c:420,1
    - Dst: qc_detach_th_ctx_list
      Src: /src/haproxy/src/quic_tx.c:425,1
    - Dst: qc_idle_timer_do_rearm
      Src: /src/haproxy/src/quic_tx.c:436,1
    - Dst: task_destroy
      Src: /src/haproxy/src/quic_tx.c:438,1
    - Dst: quic_tune_test
      Src: /src/haproxy/src/quic_tx.c:444,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: 35
    EdgeCount: 35
    ICount: 125
    argCount: 2
    argNames:
    - buf
    - ctx
    argTypes:
    - struct buffer*
    - struct ssl_sock_ctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 287
    functionDepth: 5
    functionLinenumber: 287
    functionLinenumberEnd: 478
    functionName: qc_send_ppkts
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - read_ptr
    - struct quic_cc*::algo::on_transmit
    - qc_test_fd
    - task_destroy
    - b_head
    - task_mono_time
    - quic_pktns_discard
    - TRACE_LEAVE
    - quic_tune_test
    - qc_snd_buf
    - qc_kill_conn
    - quic_tx_packet_refinc
    - struct quic_cc*::algo::drs_on_transmit
    - likely
    - read_u16
    - qc_el_rx_pkts_del
    - HA_ATOMIC_OR
    - __objt_server
    - b_contig_data
    - qc_detach_th_ctx_list
    - qc_purge_tx_buf
    - BUG_ON
    - eb64_insert
    - TRACE_PROTO
    - quic_tls_pktns_is_dcd
    - qc_release_pktns_frms
    - write_u16
    - struct quic_cc*::algo::hystart_start_round
    - qc_is_back
    - write_ptr
    - qc_idle_timer_rearm
    - TRACE_ENTER
    - TRACE_ERROR
    - BUG_ON_HOT
    - b_del
    - qc_idle_timer_do_rearm
    - qc_set_timer
    - qc_free_tx_coalesced_pkts
    - b_add
    linkageType: ''
    returnType: int
    signature: int qc_send_ppkts(struct buffer *buf, struct ssl_sock_ctx *ctx)
  - 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:
    - TRACE_DEVEL
    - qc_txb_release
    - b_data
    - BUG_ON
    - qc_test_fd
    - TRACE_ENTER
    - qc_send_ppkts
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qc_purge_txbuf(struct quic_conn *qc, struct buffer *buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:516,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:520,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:521,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:525,1
    - Dst: quic_build_post_handshake_frames
      Src: /src/haproxy/src/quic_tx.c:532,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:533,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:534,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:539,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:542,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:543,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:544,1
    - Dst: struct quic_conn*::path::cc::algo::check_app_limited
      Src: /src/haproxy/src/quic_tx.c:547,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:553,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:554,1
    - Dst: quic_pacing_sent_done
      Src: /src/haproxy/src/quic_tx.c:556,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:559,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 3
    argNames:
    - qc
    - frms
    - pacer
    argTypes:
    - struct quic_conn*
    - struct list*
    - struct quic_pacer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 513
    functionDepth: 4
    functionLinenumber: 513
    functionLinenumberEnd: 561
    functionName: qc_send_mux
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - struct quic_conn*::path::cc::algo::check_app_limited
    - BUG_ON
    - qel_register_send
    - TRACE_ENTER
    - qc_send
    - TRACE_STATE
    - quic_build_post_handshake_frames
    - quic_pacing_sent_done
    - LIST_HEAD_INIT
    - LIST_ISEMPTY
    - TRACE_LEAVE
    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: 582
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 582
    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:611,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:615,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:620,1
    - Dst: qc_select_tls_ver
      Src: /src/haproxy/src/quic_tx.c:635,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_tx.c:638,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_tx.c:647,1
    - Dst: qc_may_build_pkt
      Src: /src/haproxy/src/quic_tx.c:648,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:656,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:659,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:661,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:661,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:662,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_tx.c:674,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:674,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_tx.c:675,1
    - Dst: quic_may_send_bytes
      Src: /src/haproxy/src/quic_tx.c:675,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:680,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:681,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:702,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:702,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:705,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:725,1
    - Dst: quic_enc_level_pkt_type
      Src: /src/haproxy/src/quic_tx.c:728,1
    - Dst: qc_build_pkt
      Src: /src/haproxy/src/quic_tx.c:729,1
    - Dst: qc_purge_tx_buf
      Src: /src/haproxy/src/quic_tx.c:736,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:749,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:751,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_tx.c:755,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:799,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:809,1
    - Dst: quic_tune_test
      Src: /src/haproxy/src/quic_tx.c:813,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:816,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:828,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:842,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:847,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:850,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:851,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:855,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:859,1
    CyclomaticComplexity: 66
    EdgeCount: 66
    ICount: 129
    argCount: 4
    argNames:
    - qc
    - buf
    - qels
    - max_dgrams
    argTypes:
    - struct quic_conn*
    - struct buffer*
    - struct list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 597
    functionDepth: 5
    functionLinenumber: 597
    functionLinenumberEnd: 861
    functionName: qc_prep_pkts
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_peer_validated_addr
    - b_head
    - ABORT_NOW
    - TRACE_LEAVE
    - quic_tune_test
    - LIST_NEXT
    - qc_txb_store
    - LIST_ISEMPTY
    - QUIC_MIN
    - quic_enc_level_pkt_type
    - qc_build_pkt
    - qc_purge_tx_buf
    - BUG_ON
    - quic_may_send_bytes
    - qc_may_build_pkt
    - TRACE_PROTO
    - b_wrap
    - b_contig_space
    - qc_select_tls_ver
    - qc_is_back
    - TRACE_ENTER
    - BUG_ON_HOT
    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_select_tls_ver
      Src: /src/haproxy/src/quic_tx.c:635,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/quic_tx.c:638,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_tx.c:647,1
    - Dst: qc_may_build_pkt
      Src: /src/haproxy/src/quic_tx.c:648,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:656,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_tx.c:659,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:661,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:661,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:662,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_tx.c:674,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:674,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_tx.c:675,1
    - Dst: quic_may_send_bytes
      Src: /src/haproxy/src/quic_tx.c:675,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:680,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:681,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:702,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:702,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:705,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_tx.c:725,1
    - Dst: quic_enc_level_pkt_type
      Src: /src/haproxy/src/quic_tx.c:728,1
    - Dst: qc_build_pkt
      Src: /src/haproxy/src/quic_tx.c:729,1
    - Dst: qc_purge_tx_buf
      Src: /src/haproxy/src/quic_tx.c:736,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:749,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:751,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_tx.c:755,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:799,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:809,1
    - Dst: quic_tune_test
      Src: /src/haproxy/src/quic_tx.c:813,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_tx.c:816,1
    - Dst: qc_txb_store
      Src: /src/haproxy/src/quic_tx.c:828,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:842,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 623
    functionDepth: 5
    functionLinenumber: 623
    functionLinenumberEnd: 843
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 79
    functionsReached:
    - TRACE_DEVEL
    - quic_peer_validated_addr
    - b_head
    - ABORT_NOW
    - quic_tune_test
    - LIST_NEXT
    - qc_txb_store
    - LIST_ISEMPTY
    - QUIC_MIN
    - quic_enc_level_pkt_type
    - qc_build_pkt
    - qc_purge_tx_buf
    - BUG_ON
    - quic_may_send_bytes
    - qc_may_build_pkt
    - TRACE_PROTO
    - b_wrap
    - b_contig_space
    - qc_select_tls_ver
    - qc_is_back
    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:884,1
    - Dst: qc_get_txb
      Src: /src/haproxy/src/quic_tx.c:886,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:888,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:893,1
    - Dst: qc_purge_txbuf
      Src: /src/haproxy/src/quic_tx.c:893,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:894,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:900,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:908,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_tx.c:915,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:915,1
    - Dst: b_reset
      Src: /src/haproxy/src/quic_tx.c:916,1
    - Dst: qc_prep_pkts
      Src: /src/haproxy/src/quic_tx.c:918,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:919,1
    - Dst: b_data
      Src: /src/haproxy/src/quic_tx.c:921,1
    - Dst: qc_send_ppkts
      Src: /src/haproxy/src/quic_tx.c:921,1
    - Dst: qc_txb_release
      Src: /src/haproxy/src/quic_tx.c:923,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:930,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:935,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:936,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:937,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:943,1
    - Dst: qc_txb_release
      Src: /src/haproxy/src/quic_tx.c:948,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:952,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:958,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:962,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: 964
      start: 877
    functionDepth: 7
    functionLinenumber: 877
    functionLinenumberEnd: 964
    functionName: qc_send
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 3
    functionsReached:
    - TRACE_DEVEL
    - b_reset
    - qc_txb_release
    - b_data
    - TRACE_STATE
    - BUG_ON
    - qc_get_txb
    - TRACE_ENTER
    - TRACE_ERROR
    - BUG_ON_HOT
    - LIST_DEL_INIT
    - qc_prep_pkts
    - LIST_ISEMPTY
    - qc_purge_txbuf
    - qc_send_ppkts
    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:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 960
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 79
    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:973,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/quic_tx.c:973,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:975,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: 977
      start: 969
    functionDepth: 1
    functionLinenumber: 969
    functionLinenumberEnd: 977
    functionName: qel_register_send
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 3
    functionsReached:
    - LIST_APPEND
    - LIST_INLIST
    - BUG_ON
    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:985,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: 989
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 989
    functionName: qel_need_sending
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 2
    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:1002,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1011,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1012,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1013,1
    - Dst: qc_prep_hdshk_fast_retrans
      Src: /src/haproxy/src/quic_tx.c:1015,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1016,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1017,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1019,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1021,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1022,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1024,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1027,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1028,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1029,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1039,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1040,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1041,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1042,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:1049,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1061,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1062,1
    - Dst: qc_prep_fast_retrans
      Src: /src/haproxy/src/quic_tx.c:1064,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1065,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1066,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1068,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1069,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1070,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:1075,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1080,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1081,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1082,1
    - Dst: qc_prep_fast_retrans
      Src: /src/haproxy/src/quic_tx.c:1085,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1086,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1087,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1089,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1091,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1092,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1093,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1095,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1100,1
    - Dst: qel_register_send
      Src: /src/haproxy/src/quic_tx.c:1102,1
    - Dst: qc_send
      Src: /src/haproxy/src/quic_tx.c:1103,1
    - Dst: qc_free_frm_list
      Src: /src/haproxy/src/quic_tx.c:1104,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_tx.c:1108,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1116,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 89
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 994
    functionDepth: 8
    functionLinenumber: 994
    functionLinenumberEnd: 1118
    functionName: qc_dgrams_retransmit
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 2
    functionsReached:
    - TRACE_DEVEL
    - qc_free_frm_list
    - qc_prep_hdshk_fast_retrans
    - qel_register_send
    - TRACE_ENTER
    - qc_send
    - TRACE_STATE
    - TRACE_PROTO
    - LIST_HEAD_INIT
    - LIST_ISEMPTY
    - TRACE_LEAVE
    - qc_prep_fast_retrans
    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:1135,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1137,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_tx.c:1143,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1144,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1157,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1162,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tx.c:1167,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1168,1
    - Dst: sendto
      Src: /src/haproxy/src/quic_tx.c:1172,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1177,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: 1179
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1179
    functionName: send_version_negotiation
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - sendto
    - TRACE_ENTER
    - RAND_bytes
    - TRACE_ERROR
    - htonl
    - get_addr_len
    - memcpy
    - TRACE_LEAVE
    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:1190,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1194,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1213,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_tx.c:1218,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_tx.c:1232,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1233,1
    - Dst: quic_stateless_reset_token_cpy
      Src: /src/haproxy/src/quic_tx.c:1239,1
    - Dst: sendto
      Src: /src/haproxy/src/quic_tx.c:1243,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_tx.c:1247,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1248,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1250,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: 1252
      start: 1185
    functionDepth: 2
    functionLinenumber: 1185
    functionLinenumberEnd: 1252
    functionName: send_stateless_reset
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_INC
    - sendto
    - TRACE_ENTER
    - EXTRA_COUNTERS_GET
    - RAND_bytes
    - TRACE_ERROR
    - TRACE_PROTO
    - quic_stateless_reset_token_cpy
    - get_addr_len
    - TRACE_LEAVE
    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: 1272
      start: 1255
    functionDepth: 0
    functionLinenumber: 1255
    functionLinenumberEnd: 1272
    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:1286,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1289,1
    - Dst: quic_pkt_type
      Src: /src/haproxy/src/quic_tx.c:1293,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/quic_tx.c:1294,1
    - Dst: write_n32
      Src: /src/haproxy/src/quic_tx.c:1296,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1301,1
    - Dst: RAND_bytes
      Src: /src/haproxy/src/quic_tx.c:1307,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1308,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1313,1
    - Dst: quic_generate_retry_token
      Src: /src/haproxy/src/quic_tx.c:1317,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1319,1
    - Dst: quic_tls_generate_retry_integrity_tag
      Src: /src/haproxy/src/quic_tx.c:1327,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1329,1
    - Dst: sendto
      Src: /src/haproxy/src/quic_tx.c:1335,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1336,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1342,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: 1344
      start: 1280
    functionDepth: 3
    functionLinenumber: 1280
    functionLinenumberEnd: 1344
    functionName: send_retry
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - quic_generate_retry_token
    - statistical_prng_range
    - sendto
    - TRACE_ENTER
    - RAND_bytes
    - memcpy
    - TRACE_ERROR
    - quic_pkt_type
    - quic_tls_generate_retry_integrity_tag
    - get_addr_len
    - write_n32
    - TRACE_LEAVE
    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:1357,1
    - Dst: htonl
      Src: /src/haproxy/src/quic_tx.c:1357,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: 1361
      start: 1351
    functionDepth: 1
    functionLinenumber: 1351
    functionLinenumberEnd: 1361
    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: 1385
      start: 1366
    functionDepth: 0
    functionLinenumber: 1366
    functionLinenumberEnd: 1385
    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:1406,1
    - Dst: write_n32
      Src: /src/haproxy/src/quic_tx.c:1414,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: 1420
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1420
    functionName: quic_packet_number_encode
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - write_n32
    - write_n16
    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:1432,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1435,1
    - Dst: quic_pkt_type
      Src: /src/haproxy/src/quic_tx.c:1439,1
    - Dst: quic_write_uint32
      Src: /src/haproxy/src/quic_tx.c:1444,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1448,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1454,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1460,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: 1462
      start: 1426
    functionDepth: 2
    functionLinenumber: 1426
    functionLinenumberEnd: 1462
    functionName: quic_build_packet_long_header
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_LEAVE
    - quic_pkt_type
    - memcpy
    - 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:1476,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1479,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1488,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1494,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: 1496
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1496
    functionName: quic_build_packet_short_header
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_LEAVE
    - memcpy
    - TRACE_ENTER
    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:1517,1
    - Dst: quic_tls_hp_encrypt
      Src: /src/haproxy/src/quic_tx.c:1521,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1522,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1532,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: 1533
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1533
    functionName: quic_apply_header_protection
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - quic_tls_hp_encrypt
    - TRACE_ENTER
    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:1554,1
    - Dst: quic_cc_path_prep_data
      Src: /src/haproxy/src/quic_tx.c:1565,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_tx.c:1570,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1573,1
    - Dst: quic_strm_frm_fillbuf
      Src: /src/haproxy/src/quic_tx.c:1589,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1593,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/quic_tx.c:1597,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1599,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1602,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1604,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1605,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1608,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1609,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_tx.c:1619,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:1620,1
    - Dst: quic_strm_frm_fillbuf
      Src: /src/haproxy/src/quic_tx.c:1625,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1629,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/quic_tx.c:1641,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1643,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1647,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1649,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1650,1
    - Dst: qc_stream_desc_send
      Src: /src/haproxy/src/quic_tx.c:1651,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1656,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1657,1
    - Dst: qc_stream_desc_send
      Src: /src/haproxy/src/quic_tx.c:1658,1
    - Dst: qc_frm_len
      Src: /src/haproxy/src/quic_tx.c:1669,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:1670,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1676,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1677,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1686,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: 1688
      start: 1546
    functionDepth: 2
    functionLinenumber: 1546
    functionLinenumberEnd: 1688
    functionName: qc_build_frms
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_cc_path_prep_data
    - quic_strm_frm_split
    - qc_stream_desc_send
    - BUG_ON
    - LIST_DEL_INIT
    - TRACE_ENTER
    - LIST_APPEND
    - TRACE_ERROR
    - qc_frm_free
    - TRACE_PROTO
    - qc_frm_len
    - quic_strm_frm_fillbuf
    - qc_stream_frm_is_acked
    - QUIC_MIN
    - TRACE_LEAVE
    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:1589,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1593,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/quic_tx.c:1597,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1599,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1602,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1604,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1605,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1608,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1609,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_tx.c:1619,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_tx.c:1620,1
    - Dst: quic_strm_frm_fillbuf
      Src: /src/haproxy/src/quic_tx.c:1625,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1629,1
    - Dst: quic_strm_frm_split
      Src: /src/haproxy/src/quic_tx.c:1641,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_tx.c:1643,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1647,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:1649,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1650,1
    - Dst: qc_stream_desc_send
      Src: /src/haproxy/src/quic_tx.c:1651,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1656,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1657,1
    - Dst: qc_stream_desc_send
      Src: /src/haproxy/src/quic_tx.c:1658,1
    - Dst: qc_frm_len
      Src: /src/haproxy/src/quic_tx.c:1669,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:1670,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:1676,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:1677,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1580
    functionDepth: 2
    functionLinenumber: 1580
    functionLinenumberEnd: 1683
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 79
    functionsReached:
    - TRACE_DEVEL
    - quic_strm_frm_split
    - qc_stream_desc_send
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_APPEND
    - TRACE_ERROR
    - qc_frm_free
    - qc_frm_len
    - quic_strm_frm_fillbuf
    - 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:1703,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_tx.c:1707,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:1736,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: 1738
      start: 1693
    functionDepth: 1
    functionLinenumber: 1693
    functionLinenumberEnd: 1738
    functionName: qc_build_cc_frm
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - unlikely
    - TRACE_ENTER
    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: 1747
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1747
    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: 41
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_tx.c:1787,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_tx.c:1791,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_tx.c:1792,1
    - Dst: quic_enc_level_char_from_qel
      Src: /src/haproxy/src/quic_tx.c:1795,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1804,1
    - Dst: quic_cc_path_prep_data
      Src: /src/haproxy/src/quic_tx.c:1807,1
    - Dst: quic_packet_number_length
      Src: /src/haproxy/src/quic_tx.c:1822,1
    - Dst: quic_build_packet_short_header
      Src: /src/haproxy/src/quic_tx.c:1825,1
    - Dst: quic_build_packet_long_header
      Src: /src/haproxy/src/quic_tx.c:1827,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_tx.c:1832,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_tx.c:1837,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_tx.c:1848,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:1860,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_tx.c:1860,1
    - Dst: quic_compute_ack_delay_us
      Src: /src/haproxy/src/quic_tx.c:1865,1
    - Dst: qc_frm_len
      Src: /src/haproxy/src/quic_tx.c:1878,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1886,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1889,1
    - Dst: qc_build_frms
      Src: /src/haproxy/src/quic_tx.c:1895,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:1897,1
    - Dst: qc_build_cc_frm
      Src: /src/haproxy/src/quic_tx.c:1938,1
    - Dst: qc_frm_len
      Src: /src/haproxy/src/quic_tx.c:1939,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_tx.c:1949,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:1954,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/quic_tx.c:1968,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_tx.c:2002,1
    - Dst: quic_enc_int
      Src: /src/haproxy/src/quic_tx.c:2009,1
    - Dst: quic_packet_number_encode
      Src: /src/haproxy/src/quic_tx.c:2016,1
    - Dst: qc_build_frm
      Src: /src/haproxy/src/quic_tx.c:2022,1
    - Dst: quic_pktns_get_largest_acked_pn
      Src: /src/haproxy/src/quic_tx.c:2025,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_tx.c:2030,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_tx.c:2032,1
    - Dst: qc_build_frm
      Src: /src/haproxy/src/quic_tx.c:2033,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2035,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_tx.c:2040,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/quic_tx.c:2041,1
    - Dst: quic_tx_packet_refinc
      Src: /src/haproxy/src/quic_tx.c:2045,1
    - Dst: qc_build_frm
      Src: /src/haproxy/src/quic_tx.c:2053,1
    - Dst: qc_build_frm
      Src: /src/haproxy/src/quic_tx.c:2059,1
    - Dst: qc_build_frm
      Src: /src/haproxy/src/quic_tx.c:2069,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2075,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:2079,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/quic_tx.c:2089,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2092,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:2094,1
    - Dst: LIST_SPLICE
      Src: /src/haproxy/src/quic_tx.c:2099,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2100,1
    CyclomaticComplexity: 74
    EdgeCount: 74
    ICount: 182
    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: 2102
      start: 1772
    functionDepth: 3
    functionLinenumber: 1772
    functionLinenumberEnd: 2102
    functionName: qc_do_build_pkt
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - qc_build_frms
    - qc_build_cc_frm
    - quic_int_getsize
    - eb_is_empty
    - quic_packet_number_length
    - quic_build_packet_long_header
    - TRACE_LEAVE
    - quic_enc_level_char_from_qel
    - quic_tx_packet_refinc
    - list_for_each_entry_safe
    - qc_frm_len
    - LIST_ISEMPTY
    - LIST_INSERT
    - TRACE_PRINTF
    - BUG_ON
    - LIST_DEL_INIT
    - quic_packet_number_encode
    - TRACE_PROTO
    - quic_enc_int
    - quic_build_packet_short_header
    - quic_cc_path_prep_data
    - LIST_SPLICE
    - quic_pktns_get_largest_acked_pn
    - qc_build_frm
    - quic_compute_ack_delay_us
    - TRACE_ENTER
    - LIST_HEAD_INIT
    - memcpy
    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:2110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - pkt
    - type
    argTypes:
    - struct quic_tx_packet*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2118
    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:2144,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2145,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_tx.c:2147,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:2149,1
    - Dst: quic_tx_packet_init
      Src: /src/haproxy/src/quic_tx.c:2154,1
    - Dst: qc_do_build_pkt
      Src: /src/haproxy/src/quic_tx.c:2160,1
    - Dst: quic_packet_encrypt
      Src: /src/haproxy/src/quic_tx.c:2172,1
    - Dst: WARN_ON
      Src: /src/haproxy/src/quic_tx.c:2175,1
    - Dst: quic_apply_header_protection
      Src: /src/haproxy/src/quic_tx.c:2182,1
    - Dst: WARN_ON
      Src: /src/haproxy/src/quic_tx.c:2185,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_tx.c:2193,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2195,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_tx.c:2213,1
    - Dst: task_queue
      Src: /src/haproxy/src/quic_tx.c:2216,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2217,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_tx.c:2223,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_tx.c:2224,1
    - Dst: free_quic_tx_packet
      Src: /src/haproxy/src/quic_tx.c:2229,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_tx.c:2230,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: 2232
      start: 2127
    functionDepth: 4
    functionLinenumber: 2127
    functionLinenumberEnd: 2232
    functionName: qc_build_pkt
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 2
    functionsReached:
    - TRACE_DEVEL
    - free_quic_tx_packet
    - quic_peer_validated_addr
    - quic_apply_header_protection
    - quic_packet_encrypt
    - TRACE_ENTER
    - tick_isset
    - quic_tx_packet_init
    - pool_alloc
    - TRACE_PROTO
    - task_queue
    - WARN_ON
    - qc_do_build_pkt
    - TRACE_LEAVE
    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:2248,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_tx.c:2268,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_tx.c:2273,1
    - Dst: qc_do_build_pkt
      Src: /src/haproxy/src/quic_tx.c:2278,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_tx.c:2286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2234
    functionDepth: 4
    functionLinenumber: 2234
    functionLinenumberEnd: 2289
    functionName: quic_tx_unittest
    functionSourceFile: /src/haproxy/src/quic_tx.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - LIST_APPEND
    - LIST_INIT
    - LIST_HEAD_INIT
    - qc_do_build_pkt
    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:
    - _HA_ATOMIC_LOAD
    - unlikely
    - CHECK_IF
    - epoll_ctl
    - fd_tgid
    - thread_isolated
    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:
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_AND
    - BUG_ON
    - _HA_ATOMIC_OR
    - epoll_ctl
    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:
    - unlikely
    - clock_update_global_date
    - fd_grab_tgid
    - _HA_ATOMIC_OR
    - _HA_ATOMIC_INC
    - thread_idle_now
    - done_update_polling
    - compute_poll_timeout
    - clock_entering_poll
    - tick_is_expired
    - tick_isset
    - epoll_ctl
    - clock_update_local_date
    - COUNT_IF
    - _HA_ATOMIC_LOAD
    - epoll_wait
    - fd_drop_tgid
    - thread_harmless_now
    - _HA_ATOMIC_AND
    - fd_update_events
    - fd_tgid
    - fd_leaving_poll
    - _update_fd
    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
    - vma_set_name_id
    - epoll_create
    - free
    - calloc
    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
    - hap_register_per_thread_init
    - epoll_create
    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:
    - memprintf
    - too_many_args
    - 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: quic_tune_conn_test
      Src: /src/haproxy/src/mux_quic.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: qcc_is_pacing_active
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - 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:56,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_quic.c:57,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:58,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_quic.c:59,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/mux_quic.c:68,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_quic.c:69,1
    - Dst: bdata_ctr_bdec
      Src: /src/haproxy/src/mux_quic.c:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - qcs
    - rxbuf
    argTypes:
    - struct qcs*
    - struct qc_stream_rxbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 71
    functionName: qcs_free_rxbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - offer_buffers
    - pool_free
    - eb64_delete
    - bdata_ctr_bdec
    - ncb_is_null
    - b_free
    - b_make
    linkageType: ''
    returnType: void
    signature: void qcs_free_rxbuf(struct qcs *qcs, struct qc_stream_rxbuf *rxbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:82,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:83,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:86,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:87,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:88,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:89,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:90,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:93,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:93,1
    - Dst: sedesc_free
      Src: /src/haproxy/src/mux_quic.c:94,1
    - Dst: struct qcc*::app_ops::detach
      Src: /src/haproxy/src/mux_quic.c:99,1
    - Dst: qc_stream_desc_sub_send
      Src: /src/haproxy/src/mux_quic.c:103,1
    - Dst: qc_stream_desc_release
      Src: /src/haproxy/src/mux_quic.c:104,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_quic.c:108,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:109,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:109,1
    - Dst: qcs_free_rxbuf
      Src: /src/haproxy/src/mux_quic.c:111,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/mux_quic.c:115,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_quic.c:117,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 77
    functionDepth: 4
    functionLinenumber: 77
    functionLinenumberEnd: 120
    functionName: qcs_free
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qc_stream_desc_release
    - struct qcc*::app_ops::detach
    - pool_free
    - se_fl_test
    - eb64_delete
    - container_of
    - BUG_ON
    - TRACE_STATE
    - LIST_DEL_INIT
    - TRACE_ENTER
    - eb64_first
    - qcs_free_rxbuf
    - eb_is_empty
    - TRACE_LEAVE
    - qc_stream_desc_sub_send
    - 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:127,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_quic.c:129,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:131,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:146,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:147,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:148,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:149,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:150,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/mux_quic.c:155,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:158,1
    - Dst: qfctl_init
      Src: /src/haproxy/src/mux_quic.c:159,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:159,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:162,1
    - Dst: qfctl_init
      Src: /src/haproxy/src/mux_quic.c:163,1
    - Dst: qfctl_init
      Src: /src/haproxy/src/mux_quic.c:166,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:175,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:176,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:179,1
    - Dst: bdata_ctr_init
      Src: /src/haproxy/src/mux_quic.c:183,1
    - Dst: tot_time_reset
      Src: /src/haproxy/src/mux_quic.c:192,1
    - Dst: tot_time_reset
      Src: /src/haproxy/src/mux_quic.c:193,1
    - Dst: tot_time_reset
      Src: /src/haproxy/src/mux_quic.c:194,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:195,1
    - Dst: sedesc_new
      Src: /src/haproxy/src/mux_quic.c:197,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:202,1
    - Dst: se_expect_no_data
      Src: /src/haproxy/src/mux_quic.c:203,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:206,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:209,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:209,1
    - Dst: qc_stream_desc_new
      Src: /src/haproxy/src/mux_quic.c:211,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:213,1
    - Dst: qc_stream_desc_sub_send
      Src: /src/haproxy/src/mux_quic.c:217,1
    - Dst: qc_stream_desc_sub_room
      Src: /src/haproxy/src/mux_quic.c:218,1
    - Dst: struct qcc*::app_ops::attach
      Src: /src/haproxy/src/mux_quic.c:221,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:222,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:227,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:228,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:232,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:233,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 85
    argCount: 3
    argNames:
    - qcc
    - id
    - type
    argTypes:
    - struct qcc*
    - uint64_t
    - enum qcs_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 235
    functionName: qcs_new
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_uni
    - sedesc_new
    - pool_alloc
    - bdata_ctr_init
    - struct qcc*::app_ops::attach
    - qc_stream_desc_sub_send
    - TRACE_LEAVE
    - quic_stream_is_bidi
    - quic_stream_is_local
    - LIST_INIT
    - qc_stream_desc_sub_room
    - qcs_free
    - quic_stream_is_remote
    - se_fl_set
    - eb64_insert
    - tot_time_reset
    - qfctl_init
    - TRACE_STATE
    - TRACE_ENTER
    - qc_stream_desc_new
    - TRACE_ERROR
    - se_expect_no_data
    - tot_time_start
    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: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    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: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:251,1
    - Dst: qcc_reset_idle_start
      Src: /src/haproxy/src/mux_quic.c:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 259
    functionName: qcc_rm_sc
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_reset_idle_start
    - BUG_ON
    linkageType: ''
    returnType: forceinline
    signature: forceinline qcc_rm_sc(struct qcc *qcc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:264,1
    - Dst: qcc_reset_idle_start
      Src: /src/haproxy/src/mux_quic.c:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 272
    functionName: qcc_rm_hreq
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_reset_idle_start
    - BUG_ON
    linkageType: ''
    returnType: forceinline
    signature: forceinline qcc_rm_hreq(struct qcc *qcc)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 291
    functionName: qcc_is_dead
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qcc_is_dead(const 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: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:304,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:307,1
    - Dst: qcc_may_expire
      Src: /src/haproxy/src/mux_quic.c:312,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:313,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_quic.c:315,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:328,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:328,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:329,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:330,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:333,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:334,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:337,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:338,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:338,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:346,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:346,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:347,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:350,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:351,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:355,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:357,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:358,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:362,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:363,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:364,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:376,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_quic.c:377,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:379,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:384,1
    - Dst: tick_is_le
      Src: /src/haproxy/src/mux_quic.c:385,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_quic.c:389,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_quic.c:390,1
    - Dst: tick_add
      Src: /src/haproxy/src/mux_quic.c:397,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/mux_quic.c:398,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_quic.c:402,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:405,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 406
    functionName: qcc_refresh_timeout
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - tick_add
    - unlikely
    - statistical_prng_range
    - task_wakeup
    - tick_remain
    - TRACE_ENTER
    - tick_isset
    - task_queue
    - tick_add_ifset
    - conn_is_back
    - likely
    - qcc_may_expire
    - tick_is_le
    - LIST_ISEMPTY
    - LIST_ELEM
    - TRACE_LEAVE
    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:414,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: qcs_idle_open
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void qcs_idle_open(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:425,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:428,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:431,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:433,1
    - Dst: qcc_rm_hreq
      Src: /src/haproxy/src/mux_quic.c:437,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:441,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:441,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 444
    functionName: qcs_close_local
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_bidi
    - TRACE_STATE
    - BUG_ON_HOT
    - quic_stream_is_remote
    - qcc_rm_hreq
    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:452,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 454
    functionName: qcs_is_completed
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_sc
    - qcs_is_close_local
    linkageType: ''
    returnType: int
    signature: int qcs_is_completed(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:459,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:462,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:465,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:467,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:472,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:472,1
    - Dst: qcs_is_completed
      Src: /src/haproxy/src/mux_quic.c:476,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:477,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:477,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:478,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:479,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 481
    functionName: qcs_close_remote
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_bidi
    - quic_stream_is_local
    - qcs_is_completed
    - TRACE_STATE
    - BUG_ON
    - LIST_APPEND
    - BUG_ON_HOT
    - LIST_INLIST
    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: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    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: 491
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 491
    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:501,1
    - Dst: b_alloc
      Src: /src/haproxy/src/mux_quic.c:502,1
    - Dst: ncb_make
      Src: /src/haproxy/src/mux_quic.c:505,1
    - Dst: ncb_init
      Src: /src/haproxy/src/mux_quic.c:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - qcs
    - ncbuf
    argTypes:
    - struct qcs*
    - struct ncbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 510
    functionName: qcs_get_ncbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - ncb_make
    - ncb_is_null
    - b_alloc
    - ncb_init
    linkageType: ''
    returnType: struct ncbuf
    signature: struct ncbuf *qcs_get_ncbuf(struct qcs *qcs, struct ncbuf *ncbuf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qcs_notify_recv
      Src: /src/haproxy/src/mux_quic.c:518,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/mux_quic.c:519,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:521,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_quic.c:522,1
    - Dst: struct qcs*::sd::sc::app_ops::wake
      Src: /src/haproxy/src/mux_quic.c:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 525
    functionName: qcs_alert
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_notify_recv
    - qcs_notify_send
    - struct qcs*::sd::sc::app_ops::wake
    - qcs_sc
    - 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:531,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:533,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:534,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:540,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:543,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:545,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: 548
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 548
    functionName: qcs_subscribe
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_LEAVE
    - BUG_ON
    - TRACE_ENTER
    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:553,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:554,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 559
    functionName: qcs_notify_recv
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    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:564,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 561
    functionDepth: 1
    functionLinenumber: 561
    functionLinenumberEnd: 570
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: qc_stream_buf_get
      Src: /src/haproxy/src/mux_quic.c:575,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_quic.c:582,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 585
    functionName: qcs_prep_bytes
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - b_data
    - MAX
    - qc_stream_buf_get
    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:596,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:599,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:605,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:612,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/mux_quic.c:614,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:622,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:623,1
    - Dst: qfctl_rinc
      Src: /src/haproxy/src/mux_quic.c:626,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:627,1
    - Dst: qfctl_rinc
      Src: /src/haproxy/src/mux_quic.c:632,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:633,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:637,1
    - Dst: b_full
      Src: /src/haproxy/src/mux_quic.c:638,1
    - Dst: qc_stream_buf_release
      Src: /src/haproxy/src/mux_quic.c:639,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/mux_quic.c:641,1
    - Dst: increment_send_rate
      Src: /src/haproxy/src/mux_quic.c:647,1
    - Dst: qc_stream_buf_get
      Src: /src/haproxy/src/mux_quic.c:650,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:650,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:652,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:653,1
    - Dst: qcs_close_local
      Src: /src/haproxy/src/mux_quic.c:657,1
    - Dst: qc_stream_desc_sub_send
      Src: /src/haproxy/src/mux_quic.c:666,1
    - Dst: qcs_is_completed
      Src: /src/haproxy/src/mux_quic.c:668,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:669,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:670,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:676,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: 677
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 677
    functionName: qmux_ctrl_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qfctl_rinc
    - qcs_notify_send
    - qcs_idle_open
    - qcs_close_local
    - BUG_ON
    - TRACE_STATE
    - TRACE_ENTER
    - LIST_DEL_INIT
    - qcs_is_completed
    - LIST_APPEND
    - qc_stream_buf_release
    - increment_send_rate
    - b_full
    - qcs_prep_bytes
    - qc_stream_desc_sub_send
    - qc_stream_buf_get
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qmux_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: 684
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 684
    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:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stream
    - room
    argTypes:
    - struct qc_stream_desc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 692
    functionName: qmux_ctrl_room
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_notify_buf
    linkageType: ''
    returnType: void
    signature: void qmux_ctrl_room(struct qc_stream_desc *stream, uint64_t room)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:703,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:706,1
    - Dst: qcc_bufwnd_full
      Src: /src/haproxy/src/mux_quic.c:709,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:713,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:722,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:723,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:724,1
    - Dst: tot_time_stop
      Src: /src/haproxy/src/mux_quic.c:725,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/mux_quic.c:726,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:729,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - qcc
    - free_size
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 699
    functionDepth: 2
    functionLinenumber: 699
    functionLinenumberEnd: 730
    functionName: qcc_notify_buf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - qcs_notify_send
    - TRACE_STATE
    - BUG_ON
    - TRACE_ENTER
    - LIST_DEL_INIT
    - tot_time_stop
    - qcc_bufwnd_full
    - LIST_ELEM
    - LIST_ISEMPTY
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qcc_notify_buf(struct qcc *qcc, uint64_t free_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:740,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:742,1
    - Dst: quic_err_app
      Src: /src/haproxy/src/mux_quic.c:745,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/mux_quic.c:745,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - qcc
    - err
    - app
    argTypes:
    - struct qcc*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 755
    functionName: qcc_set_error
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - tasklet_wakeup
    - quic_err_transport
    - TRACE_STATE
    - BUG_ON
    - quic_err_app
    linkageType: ''
    returnType: void
    signature: void qcc_set_error(struct qcc *qcc, int err, int app)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: QUIC_TUNE_FB_CONN_GET
      Src: /src/haproxy/src/mux_quic.c:762,1
    - Dst: struct qcc*::app_ops::report_susp
      Src: /src/haproxy/src/mux_quic.c:768,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:769,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - qcc
    - inc
    argTypes:
    - struct qcc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 760
    functionDepth: 2
    functionLinenumber: 760
    functionLinenumberEnd: 778
    functionName: _qcc_report_glitch
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - struct qcc*::app_ops::report_susp
    - qcc_set_error
    - 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:785,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - qcc
    - bidi
    argTypes:
    - struct qcc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 793
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:807,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:811,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:813,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:816,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:818,1
    - Dst: qcs_new
      Src: /src/haproxy/src/mux_quic.c:821,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:823,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:824,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:828,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:832,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - qcc
    - bidi
    argTypes:
    - struct qcc*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 801
    functionDepth: 6
    functionLinenumber: 801
    functionLinenumberEnd: 834
    functionName: qcc_init_stream_local
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcs_new
    - BUG_ON
    - TRACE_ENTER
    - qcc_set_error
    - TRACE_PROTO
    - conn_is_back
    - TRACE_LEAVE
    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:849,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:852,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:852,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:854,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:856,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:860,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:869,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:872,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:873,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:878,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:881,1
    - Dst: qcs_new
      Src: /src/haproxy/src/mux_quic.c:887,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:889,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:890,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:894,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:899,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:903,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 843
    functionDepth: 6
    functionLinenumber: 843
    functionLinenumberEnd: 905
    functionName: qcc_init_stream_remote
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_bidi
    - qcs_new
    - quic_stream_is_local
    - BUG_ON
    - TRACE_ENTER
    - TRACE_ERROR
    - qcc_set_error
    - TRACE_PROTO
    - conn_is_back
    - TRACE_LEAVE
    linkageType: ''
    returnType: struct qcs
    signature: struct qcs *qcc_init_stream_remote(struct qcc *qcc, uint64_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:913,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:915,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_quic.c:915,1
    - Dst: qc_stream_desc_sub_room
      Src: /src/haproxy/src/mux_quic.c:918,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 919
    functionName: qcs_send_metadata
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qc_stream_desc_sub_room
    - BUG_ON
    - eb_is_empty
    linkageType: ''
    returnType: void
    signature: void qcs_send_metadata(struct qcs *qcs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:938,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:941,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/mux_quic.c:946,1
    - Dst: sc_new_from_endp
      Src: /src/haproxy/src/mux_quic.c:948,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:949,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:956,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:970,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:970,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:971,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:977,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:978,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_quic.c:979,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:990,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:990,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:991,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_quic.c:992,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:996,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - qcs
    - buf
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 933
    functionDepth: 5
    functionLinenumber: 933
    functionLinenumberEnd: 998
    functionName: qcs_attach_sc
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - se_fl_set
    - unlikely
    - se_expect_data
    - ns_to_ms
    - TRACE_STATE
    - LIST_DEL_INIT
    - TRACE_ENTER
    - BUG_ON_HOT
    - se_fl_set_error
    - qcs_is_close_local
    - sc_new_from_endp
    - LIST_INLIST
    - TRACE_LEAVE
    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:1008,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/mux_quic.c:1008,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:1010,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:1011,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1003
    functionDepth: 2
    functionLinenumber: 1003
    functionLinenumberEnd: 1020
    functionName: qcc_stream_id_is_closed
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - eb64_lookup
    - BUG_ON_HOT
    - quic_stream_is_uni
    - 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:1037,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:1040,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:1040,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1041,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1042,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:1046,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:1046,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1047,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1048,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/mux_quic.c:1053,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:1055,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1056,1
    - Dst: qcc_stream_id_is_closed
      Src: /src/haproxy/src/mux_quic.c:1061,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1062,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:1071,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1079,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1080,1
    - Dst: qcc_init_stream_remote
      Src: /src/haproxy/src/mux_quic.c:1085,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1087,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1093,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1097,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: 1099
      start: 1032
    functionDepth: 7
    functionLinenumber: 1032
    functionLinenumberEnd: 1099
    functionName: qcc_get_qcs
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - eb64_lookup
    - quic_stream_is_uni
    - quic_stream_is_local
    - TRACE_DATA
    - eb64_entry
    - TRACE_ENTER
    - TRACE_ERROR
    - qcc_set_error
    - qcc_stream_id_is_closed
    - qcc_init_stream_remote
    - quic_stream_is_remote
    - TRACE_LEAVE
    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:1106,1
    - Dst: ncb_orig
      Src: /src/haproxy/src/mux_quic.c:1106,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - b
    argTypes:
    - struct qc_stream_rxbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1102
    functionDepth: 6
    functionLinenumber: 1102
    functionLinenumberEnd: 1111
    functionName: qcs_b_dup
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - ncb_orig
    - ncb_data
    - b_make
    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:1128,1
    - Dst: ncb_is_full
      Src: /src/haproxy/src/mux_quic.c:1128,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:1130,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:1134,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1136,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/mux_quic.c:1137,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/mux_quic.c:1138,1
    - Dst: qcs_b_dup
      Src: /src/haproxy/src/mux_quic.c:1140,1
    - Dst: qcs_b_dup
      Src: /src/haproxy/src/mux_quic.c:1141,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_quic.c:1142,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1142,1
    - Dst: ncb_size
      Src: /src/haproxy/src/mux_quic.c:1142,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1142,1
    - Dst: ncb_add
      Src: /src/haproxy/src/mux_quic.c:1144,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1144,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_quic.c:1145,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1146,1
    - Dst: ncb_advance
      Src: /src/haproxy/src/mux_quic.c:1148,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1149,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1152,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/mux_quic.c:1153,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1156,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/mux_quic.c:1159,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:1162,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_quic.c:1163,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_quic.c:1164,1
    - Dst: bdata_ctr_bdec
      Src: /src/haproxy/src/mux_quic.c:1165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 2
    argNames:
    - qcs
    - rxbuf
    argTypes:
    - struct qcs*
    - struct qc_stream_rxbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1119
    functionDepth: 7
    functionLinenumber: 1119
    functionLinenumberEnd: 1173
    functionName: qcs_transfer_rx_data
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - offer_buffers
    - ncb_data
    - ncb_is_full
    - MIN
    - eb64_next
    - b_data
    - eb64_delete
    - container_of
    - qcs_b_dup
    - BUG_ON
    - ncb_size
    - ncb_add
    - ncb_advance
    - eb64_insert
    - pool_free
    - bdata_ctr_bdec
    - b_head
    - b_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:1183,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:1187,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1178
    functionDepth: 1
    functionLinenumber: 1178
    functionLinenumberEnd: 1196
    functionName: qcs_get_curr_rxbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - container_of
    - eb64_first
    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:1204,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1202
    functionDepth: 6
    functionLinenumber: 1202
    functionLinenumberEnd: 1206
    functionName: qcs_rx_avail_data
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - ncb_data
    - qcs_get_curr_rxbuf
    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:1218,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:1221,1
    - Dst: ncb_advance
      Src: /src/haproxy/src/mux_quic.c:1224,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/mux_quic.c:1226,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:1231,1
    - Dst: qmux_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1242,1
    - Dst: qmux_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1248,1
    - Dst: qmux_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1249,1
    - Dst: qmux_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1250,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:1257,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1259,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1264,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1268,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:1274,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1280,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:1281,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1283,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1291,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:1292,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1295,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: 1296
      start: 1211
    functionDepth: 6
    functionLinenumber: 1211
    functionLinenumberEnd: 1296
    functionName: qcs_consume
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - qmux_stream_rx_bufsz
    - ncb_advance
    - TRACE_DATA
    - TRACE_ENTER
    - LIST_APPEND
    - BUG_ON_HOT
    - qcc_set_error
    - qc_frm_alloc
    - ABORT_NOW
    - TRACE_LEAVE
    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:1318,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1321,1
    - Dst: qcs_get_curr_rxbuf
      Src: /src/haproxy/src/mux_quic.c:1327,1
    - Dst: qcs_b_dup
      Src: /src/haproxy/src/mux_quic.c:1328,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:1331,1
    - Dst: struct qcc*::app_ops::rcv_buf
      Src: /src/haproxy/src/mux_quic.c:1335,1
    - Dst: session_add_glitch_ctr
      Src: /src/haproxy/src/mux_quic.c:1338,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1341,1
    - Dst: ncb_data
      Src: /src/haproxy/src/mux_quic.c:1350,1
    - Dst: qcs_transfer_rx_data
      Src: /src/haproxy/src/mux_quic.c:1351,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1352,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:1358,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:1358,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_quic.c:1359,1
    - Dst: qcs_alert
      Src: /src/haproxy/src/mux_quic.c:1360,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1365,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1366,1
    - Dst: qcs_consume
      Src: /src/haproxy/src/mux_quic.c:1371,1
    - Dst: ncb_is_empty
      Src: /src/haproxy/src/mux_quic.c:1373,1
    - Dst: qcs_free_rxbuf
      Src: /src/haproxy/src/mux_quic.c:1374,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_quic.c:1381,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:1382,1
    - Dst: qcs_close_remote
      Src: /src/haproxy/src/mux_quic.c:1384,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1389,1
    - Dst: qcs_notify_recv
      Src: /src/haproxy/src/mux_quic.c:1390,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1392,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1396,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 59
    argCount: 2
    argNames:
    - qcc
    - qcs
    argTypes:
    - struct qcc*
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1310
    functionDepth: 8
    functionLinenumber: 1310
    functionLinenumberEnd: 1398
    functionName: qcc_decode_qcs
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcs_is_close_remote
    - TRACE_DATA
    - qcs_b_dup
    - qcs_alert
    - ncb_is_empty
    - eb_is_empty
    - qcs_close_remote
    - TRACE_LEAVE
    - qcs_rx_avail_data
    - b_data
    - struct qcc*::app_ops::rcv_buf
    - session_add_glitch_ctr
    - se_fl_test
    - se_fl_set_error
    - qcs_consume
    - qcs_notify_recv
    - ncb_data
    - qcs_sc
    - qcs_get_curr_rxbuf
    - TRACE_ENTER
    - TRACE_ERROR
    - qcs_free_rxbuf
    - qcs_transfer_rx_data
    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:1406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1407
      start: 1404
    functionDepth: 1
    functionLinenumber: 1404
    functionLinenumberEnd: 1407
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: qc_stream_buf_get
      Src: /src/haproxy/src/mux_quic.c:1425,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1428,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:1428,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:1433,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1435,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:1436,1
    - Dst: qcc_bufwnd_full
      Src: /src/haproxy/src/mux_quic.c:1440,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1441,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1442,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:1443,1
    - Dst: qc_stream_buf_alloc
      Src: /src/haproxy/src/mux_quic.c:1449,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1451,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:1456,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1457,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 3
    argNames:
    - qcs
    - err
    - small
    argTypes:
    - struct qcs*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1422
    functionDepth: 3
    functionLinenumber: 1422
    functionLinenumberEnd: 1462
    functionName: qcc_get_stream_txbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - qc_stream_buf_alloc
    - qcc_bufwnd_full
    - tot_time_start
    - BUG_ON
    - TRACE_STATE
    - LIST_APPEND
    - TRACE_ERROR
    - likely
    - b_size
    - LIST_INLIST
    - qc_stream_buf_get
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *qcc_get_stream_txbuf(struct qcs *qcs, int *err, int
      small)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: qc_stream_buf_get
      Src: /src/haproxy/src/mux_quic.c:1474,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1477,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:1477,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:1479,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1483,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1483,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1484,1
    - Dst: qc_stream_buf_realloc
      Src: /src/haproxy/src/mux_quic.c:1487,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1489,1
    - Dst: likely
      Src: /src/haproxy/src/mux_quic.c:1493,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1494,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:1497,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1471
    functionDepth: 2
    functionLinenumber: 1471
    functionLinenumberEnd: 1498
    functionName: qcc_realloc_stream_txbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - TRACE_ERROR
    - qc_stream_buf_realloc
    - likely
    - b_size
    - LIST_INLIST
    - qc_stream_buf_get
    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:1507,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1507,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_quic.c:1508,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:1508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - qcs
    - out
    argTypes:
    - struct qcs*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1505
    functionDepth: 2
    functionLinenumber: 1505
    functionLinenumberEnd: 1513
    functionName: qcc_realign_stream_txbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_prep_bytes
    - b_data
    - 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:1526,1
    - Dst: qc_stream_buf_release
      Src: /src/haproxy/src/mux_quic.c:1534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1524
    functionDepth: 2
    functionLinenumber: 1524
    functionLinenumberEnd: 1536
    functionName: qcc_release_stream_txbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - qc_stream_buf_release
    - qcs_prep_bytes
    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:1541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1539
    functionDepth: 1
    functionLinenumber: 1539
    functionLinenumberEnd: 1542
    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:1551,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:1552,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:1553,1
    - Dst: tot_time_stop
      Src: /src/haproxy/src/mux_quic.c:1554,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/mux_quic.c:1555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1547
    functionDepth: 2
    functionLinenumber: 1547
    functionLinenumberEnd: 1557
    functionName: qcc_notify_fctl
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_notify_send
    - LIST_DEL_INIT
    - 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:1562,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:1563,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:1564,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/mux_quic.c:1565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1567
      start: 1560
    functionDepth: 2
    functionLinenumber: 1560
    functionLinenumberEnd: 1567
    functionName: qcc_clear_frms
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qc_frm_free
    - LIST_ISEMPTY
    - LIST_ELEM
    - TRACE_STATE
    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:1578,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1582,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:1584,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/mux_quic.c:1585,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:1588,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:1589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - qcs
    - urg
    argTypes:
    - struct qcs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1574
    functionDepth: 3
    functionLinenumber: 1574
    functionLinenumberEnd: 1591
    functionName: _qcc_send_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - LIST_INSERT
    - qcc_clear_frms
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_APPEND
    - LIST_INLIST
    linkageType: ''
    returnType: void
    signature: void _qcc_send_stream(struct qcs *qcs, int urg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:1597,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:1599,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1606,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:1611,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1614,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:1618,1
    - Dst: qcc_notify_fctl
      Src: /src/haproxy/src/mux_quic.c:1619,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:1626,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_quic.c:1627,1
    - Dst: qcs_alert
      Src: /src/haproxy/src/mux_quic.c:1628,1
    - Dst: _qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:1631,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:1632,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - qcs
    - err
    argTypes:
    - struct qcs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1594
    functionDepth: 4
    functionLinenumber: 1594
    functionLinenumberEnd: 1633
    functionName: qcc_reset_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - qfctl_sblocked
    - qcs_sc
    - TRACE_STATE
    - BUG_ON
    - qcc_notify_fctl
    - qcs_alert
    - se_fl_set_error
    - qcs_is_close_local
    - _qcc_send_stream
    - qcs_prep_bytes
    linkageType: ''
    returnType: void
    signature: void qcc_reset_stream(struct qcs *qcs, int err)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1643,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:1646,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:1646,1
    - Dst: _qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:1648,1
    - Dst: qfctl_sinc
      Src: /src/haproxy/src/mux_quic.c:1651,1
    - Dst: qfctl_sinc
      Src: /src/haproxy/src/mux_quic.c:1652,1
    - Dst: bdata_ctr_add
      Src: /src/haproxy/src/mux_quic.c:1653,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - qcs
    - urg
    - count
    argTypes:
    - struct qcs*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1639
    functionDepth: 4
    functionLinenumber: 1639
    functionLinenumberEnd: 1657
    functionName: qcc_send_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 2
    functionsReached:
    - BUG_ON
    - TRACE_ENTER
    - bdata_ctr_add
    - qcs_is_close_local
    - _qcc_send_stream
    - qfctl_sinc
    - TRACE_LEAVE
    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:1664,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:1666,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:1669,1
    - Dst: _qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:1672,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:1673,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1676,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1660
    functionDepth: 4
    functionLinenumber: 1660
    functionLinenumberEnd: 1677
    functionName: qcc_abort_stream_read
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_is_close_remote
    - tasklet_wakeup
    - TRACE_STATE
    - TRACE_ENTER
    - _qcc_send_stream
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qcc_abort_stream_read(struct qcs *qcs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1684,1
    - Dst: struct qcc_app_ops*::init
      Src: /src/haproxy/src/mux_quic.c:1686,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1687,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:1691,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1694,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - qcc
    - app_ops
    argTypes:
    - struct qcc*
    - struct qcc_app_ops*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1700
      start: 1682
    functionDepth: 3
    functionLinenumber: 1682
    functionLinenumberEnd: 1700
    functionName: qcc_install_app_ops
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_ENTER
    - struct qcc_app_ops*::init
    - TRACE_ERROR
    - TRACE_PROTO
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qcc_install_app_ops(struct qcc *qcc, const struct qcc_app_ops *app_ops)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1718,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/src/mux_quic.c:1720,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:1722,1
    - Dst: qmux_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1725,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1727,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_quic.c:1728,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1730,1
    - Dst: qmux_stream_rx_bufsz
      Src: /src/haproxy/src/mux_quic.c:1736,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/mux_quic.c:1737,1
    - Dst: bdata_ctr_binc
      Src: /src/haproxy/src/mux_quic.c:1738,1
    - Dst: qcs_get_ncbuf
      Src: /src/haproxy/src/mux_quic.c:1742,1
    - Dst: ncb_is_null
      Src: /src/haproxy/src/mux_quic.c:1742,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1743,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1750,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:1754,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: 1756
      start: 1710
    functionDepth: 5
    functionLinenumber: 1710
    functionLinenumberEnd: 1756
    functionName: qcs_get_rxbuf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qmux_stream_rx_bufsz
    - container_of
    - eb64_insert
    - eb64_lookup_le
    - qcs_get_ncbuf
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - bdata_ctr_binc
    - ncb_is_null
    - TRACE_LEAVE
    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: 19
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1774,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1777,1
    - Dst: qcc_get_qcs
      Src: /src/haproxy/src/mux_quic.c:1788,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1789,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1794,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1808,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1809,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:1813,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1814,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1820,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:1824,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/mux_quic.c:1825,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1840,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1842,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1847,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:1859,1
    - Dst: qcs_get_rxbuf
      Src: /src/haproxy/src/mux_quic.c:1869,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1871,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1872,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_quic.c:1877,1
    - Dst: ncb_add
      Src: /src/haproxy/src/mux_quic.c:1879,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:1895,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:1897,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1901,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:1916,1
    - Dst: qcs_close_remote
      Src: /src/haproxy/src/mux_quic.c:1917,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:1920,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:1921,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:1921,1
    - Dst: qcc_decode_qcs
      Src: /src/haproxy/src/mux_quic.c:1923,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:1924,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:1925,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:1930,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1934,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1938,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 105
    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: 1940
      start: 1765
    functionDepth: 9
    functionLinenumber: 1765
    functionLinenumberEnd: 1940
    functionName: qcc_recv
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_is_close_remote
    - unlikely
    - TRACE_DATA
    - ncb_add
    - qcc_set_error
    - qcs_get_rxbuf
    - qcc_get_qcs
    - qcs_close_remote
    - TRACE_LEAVE
    - qcs_idle_open
    - LIST_DEL_INIT
    - qcc_refresh_timeout
    - TRACE_PROTO
    - MAX
    - qcc_decode_qcs
    - TRACE_ENTER
    - TRACE_ERROR
    - BUG_ON_HOT
    - qcs_rx_avail_data
    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:1949,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:1952,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:1954,1
    - Dst: qfctl_set_max
      Src: /src/haproxy/src/mux_quic.c:1955,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1956,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:1959,1
    - Dst: qcc_notify_fctl
      Src: /src/haproxy/src/mux_quic.c:1962,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:1968,1
    - Dst: qcc_clear_frms
      Src: /src/haproxy/src/mux_quic.c:1969,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:1972,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - qcc
    - max
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1947
    functionDepth: 3
    functionLinenumber: 1947
    functionLinenumberEnd: 1974
    functionName: qcc_recv_max_data
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - qfctl_set_max
    - qfctl_sblocked
    - qcc_clear_frms
    - TRACE_DATA
    - TRACE_ENTER
    - TRACE_PROTO
    - qfctl_rblocked
    - qcc_notify_fctl
    - TRACE_LEAVE
    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:1986,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:1989,1
    - Dst: qcc_get_qcs
      Src: /src/haproxy/src/mux_quic.c:2001,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:2005,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2008,1
    - Dst: qfctl_set_max
      Src: /src/haproxy/src/mux_quic.c:2009,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2010,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:2013,1
    - Dst: tot_time_stop
      Src: /src/haproxy/src/mux_quic.c:2017,1
    - Dst: qcs_notify_send
      Src: /src/haproxy/src/mux_quic.c:2018,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:2022,1
    - Dst: qcc_clear_frms
      Src: /src/haproxy/src/mux_quic.c:2023,1
    - Dst: qcc_may_expire
      Src: /src/haproxy/src/mux_quic.c:2027,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:2028,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2030,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2034,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: 2036
      start: 1982
    functionDepth: 8
    functionLinenumber: 1982
    functionLinenumberEnd: 2036
    functionName: qcc_recv_max_stream_data
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - tasklet_wakeup
    - qcs_notify_send
    - qfctl_sblocked
    - qfctl_set_max
    - qcc_clear_frms
    - qcc_may_expire
    - TRACE_DATA
    - TRACE_ENTER
    - qcc_refresh_timeout
    - TRACE_PROTO
    - qfctl_rblocked
    - qcc_get_qcs
    - tot_time_stop
    - TRACE_LEAVE
    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:2047,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2050,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2062,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:2063,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2067,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2070,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2081,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2085,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 3
    argNames:
    - qcc
    - max
    - bidi
    argTypes:
    - struct qcc*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2045
    functionDepth: 2
    functionLinenumber: 2045
    functionLinenumberEnd: 2087
    functionName: qcc_recv_max_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_DATA
    - TRACE_ENTER
    - TRACE_ERROR
    - qcc_set_error
    - TRACE_PROTO
    - TRACE_LEAVE
    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:2101,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2104,1
    - Dst: qcc_get_qcs
      Src: /src/haproxy/src/mux_quic.c:2113,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2114,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:2125,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2128,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/mux_quic.c:2129,1
    - Dst: struct qcc*::app_ops::close
      Src: /src/haproxy/src/mux_quic.c:2133,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2134,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2141,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:2142,1
    - Dst: qcs_close_remote
      Src: /src/haproxy/src/mux_quic.c:2154,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_quic.c:2155,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:2156,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:2156,1
    - Dst: qcs_free_rxbuf
      Src: /src/haproxy/src/mux_quic.c:2158,1
    - Dst: session_add_glitch_ctr
      Src: /src/haproxy/src/mux_quic.c:2163,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2165,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2169,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: 2171
      start: 2095
    functionDepth: 8
    functionLinenumber: 2095
    functionLinenumberEnd: 2171
    functionName: qcc_recv_reset_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_is_close_remote
    - struct qcc*::app_ops::close
    - session_add_glitch_ctr
    - eb_is_empty
    - qcs_idle_open
    - TRACE_DATA
    - container_of
    - eb64_first
    - TRACE_ENTER
    - TRACE_ERROR
    - qcc_set_error
    - TRACE_PROTO
    - qcs_free_rxbuf
    - qcc_get_qcs
    - qcs_close_remote
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qcc_recv_reset_stream(struct qcc *qcc, uint64_t id, uint64_t err,
      uint64_t final_size)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2184,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2187,1
    - Dst: qcc_get_qcs
      Src: /src/haproxy/src/mux_quic.c:2199,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2205,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:2222,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:2223,1
    - Dst: qcs_idle_open
      Src: /src/haproxy/src/mux_quic.c:2227,1
    - Dst: struct qcc*::app_ops::close
      Src: /src/haproxy/src/mux_quic.c:2230,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2231,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:2237,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:2237,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:2238,1
    - Dst: qcs_alert
      Src: /src/haproxy/src/mux_quic.c:2239,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/mux_quic.c:2262,1
    - Dst: qcc_may_expire
      Src: /src/haproxy/src/mux_quic.c:2264,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:2265,1
    - Dst: session_add_glitch_ctr
      Src: /src/haproxy/src/mux_quic.c:2269,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2271,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2275,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 48
    argCount: 3
    argNames:
    - qcc
    - id
    - err
    argTypes:
    - struct qcc*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2179
    functionDepth: 8
    functionLinenumber: 2179
    functionLinenumberEnd: 2277
    functionName: qcc_recv_stop_sending
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_DATA
    - qcs_alert
    - qcc_get_qcs
    - TRACE_LEAVE
    - struct qcc*::app_ops::close
    - session_add_glitch_ctr
    - qcc_may_expire
    - se_fl_set
    - qcs_idle_open
    - se_fl_test
    - qcc_refresh_timeout
    - TRACE_PROTO
    - qcc_reset_stream
    - qcs_sc
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - qcs_is_close_local
    linkageType: ''
    returnType: int
    signature: int qcc_recv_stop_sending(struct qcc *qcc, uint64_t id, uint64_t err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2288,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/mux_quic.c:2290,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2303,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2313,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:2314,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/mux_quic.c:2316,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2322,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:2323,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2338,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2342,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2284
    functionDepth: 2
    functionLinenumber: 2284
    functionLinenumberEnd: 2344
    functionName: qcc_release_remote_stream
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_bidi
    - TRACE_DEVEL
    - tasklet_wakeup
    - TRACE_DATA
    - TRACE_ENTER
    - LIST_APPEND
    - qcc_set_error
    - qc_frm_alloc
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qcc_release_remote_stream(struct qcc *qcc, uint64_t id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2353,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2359,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:2361,1
    - Dst: qcc_release_remote_stream
      Src: /src/haproxy/src/mux_quic.c:2362,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:2365,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2368
      start: 2347
    functionDepth: 5
    functionLinenumber: 2347
    functionLinenumberEnd: 2368
    functionName: qcs_destroy
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - TRACE_ENTER
    - qcs_free
    - quic_stream_is_remote
    - qcc_release_remote_stream
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qcs_destroy(struct qcs *qcs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: qfctl_rcap
      Src: /src/haproxy/src/mux_quic.c:2384,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:2385,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2388,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2391,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:2391,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2397,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2403,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2413,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:2417,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:2418,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2420,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_quic.c:2431,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:2431,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2454,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2462,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2469,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: 2471
      start: 2379
    functionDepth: 2
    functionLinenumber: 2379
    functionLinenumberEnd: 2471
    functionName: qcs_build_stream_frm
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - b_data
    - TRACE_DATA
    - BUG_ON
    - TRACE_ENTER
    - LIST_APPEND
    - TRACE_ERROR
    - TRACE_PROTO
    - qfctl_rcap
    - b_peek
    - qcs_prep_bytes
    - qc_frm_alloc
    - TRACE_LEAVE
    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:2485,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_quic.c:2486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2488
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2488
    functionName: qcc_subscribe_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - struct connection*::xprt::subscribe
    linkageType: ''
    returnType: int
    signature: int qcc_subscribe_send(struct qcc *qcc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2501,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2503,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2504,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:2508,1
    - Dst: qc_send_mux
      Src: /src/haproxy/src/mux_quic.c:2511,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2513,1
    - Dst: qcc_subscribe_send
      Src: /src/haproxy/src/mux_quic.c:2514,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2521,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2522,1
    - Dst: qcc_subscribe_send
      Src: /src/haproxy/src/mux_quic.c:2523,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2527,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2531,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - qcc
    - frms
    - stream
    argTypes:
    - struct qcc*
    - struct list*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2533
      start: 2496
    functionDepth: 5
    functionLinenumber: 2496
    functionLinenumberEnd: 2533
    functionName: qcc_send_frames
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcc_is_pacing_active
    - qcc_subscribe_send
    - qc_send_mux
    - TRACE_ENTER
    - LIST_ISEMPTY
    - TRACE_LEAVE
    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:2541,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2544,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:2546,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2548,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2556,1
    - Dst: qcc_send_frames
      Src: /src/haproxy/src/mux_quic.c:2557,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2558,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/mux_quic.c:2559,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2560,1
    - Dst: qcs_close_local
      Src: /src/haproxy/src/mux_quic.c:2564,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2539
    functionDepth: 6
    functionLinenumber: 2539
    functionLinenumberEnd: 2569
    functionName: qcs_send_reset
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcc_send_frames
    - qcs_close_local
    - TRACE_ENTER
    - LIST_APPEND
    - qc_frm_free
    - LIST_HEAD_INIT
    - qc_frm_alloc
    - LIST_ISEMPTY
    - TRACE_LEAVE
    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:2577,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2581,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/mux_quic.c:2593,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:2594,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/mux_quic.c:2598,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2600,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2607,1
    - Dst: qcc_send_frames
      Src: /src/haproxy/src/mux_quic.c:2608,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2609,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/mux_quic.c:2610,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2611,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2618,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2620
      start: 2575
    functionDepth: 6
    functionLinenumber: 2575
    functionLinenumberEnd: 2620
    functionName: qcs_send_stop_sending
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcs_is_close_remote
    - qcc_send_frames
    - TRACE_STATE
    - TRACE_ENTER
    - LIST_APPEND
    - qc_frm_free
    - LIST_HEAD_INIT
    - qc_frm_alloc
    - LIST_ISEMPTY
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qcs_send_stop_sending(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: qc_stream_buf_get
      Src: /src/haproxy/src/mux_quic.c:2633,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2637,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2640,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:2640,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:2640,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2643,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:2643,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2649,1
    - Dst: qcs_build_stream_frm
      Src: /src/haproxy/src/mux_quic.c:2655,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2660,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2664,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: 2666
      start: 2630
    functionDepth: 3
    functionLinenumber: 2630
    functionLinenumberEnd: 2666
    functionName: qcs_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_stream_is_uni
    - BUG_ON
    - TRACE_ENTER
    - qcs_build_stream_frm
    - quic_stream_is_remote
    - qcs_prep_bytes
    - qc_stream_buf_get
    - TRACE_LEAVE
    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:2674,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2680,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2682,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:2684,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mux_quic.c:2688,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2689,1
    - Dst: qcc_send_frames
      Src: /src/haproxy/src/mux_quic.c:2691,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2692,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/mux_quic.c:2694,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/mux_quic.c:2695,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:2700,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2700,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/mux_quic.c:2704,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:2706,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2712,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2716,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2672
    functionDepth: 6
    functionLinenumber: 2672
    functionLinenumberEnd: 2718
    functionName: qcc_emit_fctl
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - eb64_lookup
    - LIST_DELETE
    - qcc_send_frames
    - LIST_INSERT
    - eb64_entry
    - TRACE_ENTER
    - LIST_APPEND
    - BUG_ON_HOT
    - LIST_HEAD_INIT
    - LIST_ISEMPTY
    - LIST_ELEM
    - TRACE_LEAVE
    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:2730,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_quic.c:2732,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2734,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:2735,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2744,1
    - Dst: qcs_send_stop_sending
      Src: /src/haproxy/src/mux_quic.c:2756,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:2761,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:2762,1
    - Dst: qcs_send_reset
      Src: /src/haproxy/src/mux_quic.c:2768,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:2778,1
    - Dst: qcs_is_completed
      Src: /src/haproxy/src/mux_quic.c:2779,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:2780,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2781,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2787,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2791,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2793
      start: 2726
    functionDepth: 7
    functionLinenumber: 2726
    functionLinenumberEnd: 2793
    functionName: qcc_emit_rs_ss
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcs_send_stop_sending
    - list_for_each_entry_safe
    - TRACE_DATA
    - BUG_ON
    - LIST_DEL_INIT
    - TRACE_ENTER
    - qcs_is_completed
    - TRACE_STATE
    - LIST_APPEND
    - qcs_send_reset
    - qcs_prep_bytes
    - TRACE_LEAVE
    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:2812,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2815,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2818,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2818,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_quic.c:2820,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2825,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2828,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2830,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:2830,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:2833,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:2835,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:2836,1
    - Dst: qcs_send
      Src: /src/haproxy/src/mux_quic.c:2837,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:2839,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2840,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:2849,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:2850,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2858,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - qcc
    - qcs_failed
    argTypes:
    - struct qcc*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2860
      start: 2808
    functionDepth: 4
    functionLinenumber: 2808
    functionLinenumberEnd: 2860
    functionName: qcc_build_frms
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_send
    - list_for_each_entry_safe
    - TRACE_DATA
    - BUG_ON
    - LIST_DEL_INIT
    - TRACE_ENTER
    - LIST_APPEND
    - qfctl_rcap
    - qfctl_rblocked
    - qcs_prep_bytes
    - LIST_ISEMPTY
    - TRACE_LEAVE
    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:2866,1
    - Dst: MAX
      Src: /src/haproxy/src/mux_quic.c:2868,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:2869,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/mux_quic.c:2869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2863
    functionDepth: 1
    functionLinenumber: 2863
    functionLinenumberEnd: 2871
    functionName: qcc_wakeup_pacing
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - struct qcc*::tx::pacer::cc::algo::pacing_inter
    - MS_TO_TICKS
    - tick_add_ifset
    - MAX
    linkageType: ''
    returnType: void
    signature: void qcc_wakeup_pacing(struct qcc *qcc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2883,1
    - Dst: struct qcc*::app_ops::finalize
      Src: /src/haproxy/src/mux_quic.c:2886,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:2888,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:2893,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:2901,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2905,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2907
      start: 2879
    functionDepth: 1
    functionLinenumber: 2879
    functionLinenumberEnd: 2907
    functionName: qcc_app_init
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - struct qcc*::app_ops::finalize
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qcc_app_init(struct qcc *qcc)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/mux_quic.c:2918,1
    - Dst: qfctl_rcap
      Src: /src/haproxy/src/mux_quic.c:2920,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:2923,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:2925,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2938,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:2946,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/mux_quic.c:2947,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2955,1
    - Dst: qcc_app_init
      Src: /src/haproxy/src/mux_quic.c:2960,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2964,1
    - Dst: qcc_emit_fctl
      Src: /src/haproxy/src/mux_quic.c:2965,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2966,1
    - Dst: qcc_emit_rs_ss
      Src: /src/haproxy/src/mux_quic.c:2971,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:2972,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2977,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2977,1
    - Dst: qcc_build_frms
      Src: /src/haproxy/src/mux_quic.c:2978,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2979,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:2983,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:2983,1
    - Dst: quic_pacing_reload
      Src: /src/haproxy/src/mux_quic.c:2984,1
    - Dst: qcc_wakeup_pacing
      Src: /src/haproxy/src/mux_quic.c:2985,1
    - Dst: qcc_send_frames
      Src: /src/haproxy/src/mux_quic.c:2994,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:2994,1
    - Dst: qfctl_rcap
      Src: /src/haproxy/src/mux_quic.c:2995,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_quic.c:3001,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3006,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:3006,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3009,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:3011,1
    - Dst: qcs_send
      Src: /src/haproxy/src/mux_quic.c:3012,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:3013,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:3014,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3026,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:3026,1
    - Dst: qcc_wakeup_pacing
      Src: /src/haproxy/src/mux_quic.c:3027,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3032,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/mux_quic.c:3033,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:3034,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:3035,1
    - Dst: qfctl_rblocked
      Src: /src/haproxy/src/mux_quic.c:3038,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:3039,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3043,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3048,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 93
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 2914
    functionDepth: 8
    functionLinenumber: 2914
    functionLinenumberEnd: 3050
    functionName: qcc_io_send
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcc_send_frames
    - TRACE_DATA
    - qfctl_rblocked
    - quic_set_connection_close
    - TRACE_LEAVE
    - qcc_is_pacing_active
    - list_for_each_entry_safe
    - quic_pacing_reload
    - qcc_app_init
    - qcc_build_frms
    - LIST_ISEMPTY
    - tasklet_wakeup
    - BUG_ON
    - LIST_DEL_INIT
    - LIST_APPEND
    - qcs_send
    - qcc_wakeup_pacing
    - qcc_emit_fctl
    - TRACE_ENTER
    - TRACE_ERROR
    - qfctl_rcap
    - LIST_HEAD_INIT
    - qcc_emit_rs_ss
    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:3062,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3066,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:3071,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_quic.c:3073,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:3074,1
    - Dst: qcs_notify_recv
      Src: /src/haproxy/src/mux_quic.c:3075,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:3076,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3082,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3083
      start: 3055
    functionDepth: 2
    functionLinenumber: 3055
    functionLinenumberEnd: 3083
    functionName: qcc_wait_for_hs
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_notify_recv
    - eb64_next
    - se_fl_test
    - container_of
    - eb64_first
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qcc_wait_for_hs(struct qcc *qcc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3095,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:3098,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3099,1
    - Dst: qcc_wait_for_hs
      Src: /src/haproxy/src/mux_quic.c:3104,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3106,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:3107,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3109,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:3109,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:3109,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:3111,1
    - Dst: qcc_decode_qcs
      Src: /src/haproxy/src/mux_quic.c:3112,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_quic.c:3113,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3121,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3123
      start: 3090
    functionDepth: 9
    functionLinenumber: 3090
    functionLinenumberEnd: 3123
    functionName: qcc_io_recv
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_uni
    - qcc_wait_for_hs
    - quic_stream_is_local
    - TRACE_DATA
    - BUG_ON
    - qcc_decode_qcs
    - TRACE_ENTER
    - LIST_DEL_INIT
    - qcs_rx_avail_data
    - LIST_ISEMPTY
    - LIST_ELEM
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qcc_io_recv(struct qcc *qcc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_quic.c:3133,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3136,1
    - Dst: qcc_fctl_avail_streams
      Src: /src/haproxy/src/mux_quic.c:3137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3138
      start: 3131
    functionDepth: 1
    functionLinenumber: 3131
    functionLinenumberEnd: 3138
    functionName: qmux_avail_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __objt_server
    - qcc_fctl_avail_streams
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int qmux_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: 3147
      start: 3143
    functionDepth: 0
    functionLinenumber: 3143
    functionLinenumberEnd: 3147
    functionName: qmux_used_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qmux_used_streams(struct connection *conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3154,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3156,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:3157,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3159,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:3160,1
    - Dst: qcs_is_completed
      Src: /src/haproxy/src/mux_quic.c:3160,1
    - Dst: qcs_destroy
      Src: /src/haproxy/src/mux_quic.c:3161,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3165
      start: 3150
    functionDepth: 6
    functionLinenumber: 3150
    functionLinenumberEnd: 3165
    functionName: qcc_purge_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - qcs_is_completed
    - TRACE_ENTER
    - qcs_destroy
    - BUG_ON_HOT
    - LIST_ISEMPTY
    - LIST_ELEM
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qcc_purge_streams(struct qcc *qcc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3173,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_quic.c:3176,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3183,1
    - Dst: struct qcc*::app_ops::shutdown
      Src: /src/haproxy/src/mux_quic.c:3185,1
    - Dst: qcc_io_send
      Src: /src/haproxy/src/mux_quic.c:3186,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/mux_quic.c:3189,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_quic.c:3204,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3208,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3171
    functionDepth: 9
    functionLinenumber: 3171
    functionLinenumberEnd: 3209
    functionName: qcc_shutdown
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_io_send
    - quic_err_transport
    - conn_delete_from_tree
    - TRACE_DATA
    - TRACE_STATE
    - TRACE_ENTER
    - struct qcc*::app_ops::shutdown
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qcc_shutdown(struct qcc *qcc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_quic.c:3219,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:3221,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:3222,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:3223,1
    - Dst: qcs_sc
      Src: /src/haproxy/src/mux_quic.c:3225,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_quic.c:3229,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_quic.c:3230,1
    - Dst: qcs_alert
      Src: /src/haproxy/src/mux_quic.c:3233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3235
      start: 3214
    functionDepth: 2
    functionLinenumber: 3214
    functionLinenumberEnd: 3235
    functionName: qcc_wake_streams
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_sc
    - eb64_next
    - eb64_first
    - eb64_entry
    - qcs_alert
    - se_fl_set_error
    - 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:3245,1
    - Dst: qcc_purge_streams
      Src: /src/haproxy/src/mux_quic.c:3246,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_quic.c:3252,1
    - Dst: qc_test_fd
      Src: /src/haproxy/src/mux_quic.c:3258,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3259,1
    - Dst: qcc_io_send
      Src: /src/haproxy/src/mux_quic.c:3261,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3265,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:3271,1
    - Dst: tick_remain
      Src: /src/haproxy/src/mux_quic.c:3272,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/mux_quic.c:3276,1
    - Dst: qcc_shutdown
      Src: /src/haproxy/src/mux_quic.c:3284,1
    - Dst: qcc_wake_streams
      Src: /src/haproxy/src/mux_quic.c:3289,1
    - Dst: qcc_is_dead
      Src: /src/haproxy/src/mux_quic.c:3292,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3296
      start: 3243
    functionDepth: 10
    functionLinenumber: 3243
    functionLinenumberEnd: 3296
    functionName: qcc_io_process
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcc_io_send
    - qcc_wake_streams
    - unlikely
    - qcc_shutdown
    - statistical_prng_range
    - qc_test_fd
    - tick_isset
    - tick_remain
    - qcc_is_dead
    - LIST_ISEMPTY
    - qcc_purge_streams
    linkageType: ''
    returnType: int
    signature: int qcc_io_process(struct qcc *qcc)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3305,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_quic.c:3307,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_quic.c:3310,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:3315,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:3317,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:3318,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:3319,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:3326,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:3328,1
    - Dst: qc_stream_desc_sub_room
      Src: /src/haproxy/src/mux_quic.c:3329,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:3330,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_quic.c:3338,1
    - Dst: struct connection*::xprt::unsubscribe
      Src: /src/haproxy/src/mux_quic.c:3340,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_quic.c:3345,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/mux_quic.c:3346,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/mux_quic.c:3347,1
    - Dst: qcc_clear_frms
      Src: /src/haproxy/src/mux_quic.c:3350,1
    - Dst: struct qcc*::app_ops::release
      Src: /src/haproxy/src/mux_quic.c:3353,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:3354,1
    - Dst: pool_free
      Src: /src/haproxy/src/mux_quic.c:3356,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3362,1
    - Dst: conn_stop_tracking
      Src: /src/haproxy/src/mux_quic.c:3364,1
    - Dst: conn_full_close
      Src: /src/haproxy/src/mux_quic.c:3365,1
    - Dst: struct connection*::destroy_cb
      Src: /src/haproxy/src/mux_quic.c:3367,1
    - Dst: conn_free
      Src: /src/haproxy/src/mux_quic.c:3368,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3371,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3372
      start: 3299
    functionDepth: 5
    functionLinenumber: 3299
    functionLinenumberEnd: 3372
    functionName: qcc_release
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - eb64_next
    - pool_free
    - conn_full_close
    - eb64_entry
    - task_destroy
    - TRACE_LEAVE
    - tasklet_free
    - struct qcc*::app_ops::release
    - eb64_first
    - qc_stream_desc_sub_room
    - qcs_free
    - LIST_ISEMPTY
    - struct connection*::xprt::unsubscribe
    - qc_frm_free
    - TRACE_PROTO
    - conn_free
    - LIST_ELEM
    - struct connection*::destroy_cb
    - qcc_clear_frms
    - TRACE_ENTER
    - conn_stop_tracking
    linkageType: ''
    returnType: void
    signature: void qcc_release(struct qcc *qcc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_quic.c:3384,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3390,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_quic.c:3391,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3393,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3397,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_quic.c:3405,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_quic.c:3407,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3410,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3414,1
    - Dst: qcc_io_send
      Src: /src/haproxy/src/mux_quic.c:3419,1
    - Dst: qcc_io_recv
      Src: /src/haproxy/src/mux_quic.c:3421,1
    - Dst: qcc_io_process
      Src: /src/haproxy/src/mux_quic.c:3423,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3424,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:3428,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:3431,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:3432,1
    - Dst: task_queue
      Src: /src/haproxy/src/mux_quic.c:3433,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_quic.c:3437,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_quic.c:3445,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_quic.c:3451,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/mux_quic.c:3452,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3453,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3460,1
    - Dst: qcc_shutdown
      Src: /src/haproxy/src/mux_quic.c:3465,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:3466,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3468,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 62
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3471
      start: 3374
    functionDepth: 11
    functionLinenumber: 3374
    functionLinenumberEnd: 3471
    functionName: qcc_io_cb
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_io_process
    - qcc_release
    - HA_SPIN_LOCK
    - session_detach_idle_conn
    - TRACE_LEAVE
    - tasklet_free
    - qcc_is_pacing_active
    - tick_isset
    - _srv_add_idle
    - HA_SPIN_UNLOCK
    - qcc_io_recv
    - __objt_server
    - qcc_refresh_timeout
    - qcc_io_send
    - qcc_shutdown
    - conn_delete_from_tree
    - TRACE_STATE
    - TRACE_ENTER
    - task_queue
    - session_reinsert_idle_conn
    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:3476,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3478,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:3481,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3482,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/mux_quic.c:3487,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3490,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3492
      start: 3473
    functionDepth: 1
    functionLinenumber: 3473
    functionLinenumberEnd: 3492
    functionName: qcc_pacing_task
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - tasklet_wakeup_after
    - tick_is_expired
    - TRACE_ENTER
    - tick_isset
    - TRACE_LEAVE
    linkageType: ''
    returnType: struct task
    signature: struct task *qcc_pacing_task(struct task *t, void *ctx, unsigned int
      state)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_quic.c:3497,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3499,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_quic.c:3503,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3510,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3515,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3516,1
    - Dst: qcc_may_expire
      Src: /src/haproxy/src/mux_quic.c:3520,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3521,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3522,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_quic.c:3531,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/mux_quic.c:3533,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_quic.c:3535,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_quic.c:3538,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3541,1
    - Dst: qcc_is_dead
      Src: /src/haproxy/src/mux_quic.c:3553,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3554,1
    - Dst: qcc_shutdown
      Src: /src/haproxy/src/mux_quic.c:3555,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:3556,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3560,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3564,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3566
      start: 3494
    functionDepth: 10
    functionLinenumber: 3494
    functionLinenumberEnd: 3566
    functionName: qcc_timeout_task
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - tick_is_expired
    - qcc_shutdown
    - qcc_may_expire
    - conn_delete_from_tree
    - TRACE_STATE
    - session_unown_conn
    - TRACE_ENTER
    - qcc_release
    - task_destroy
    - HA_SPIN_LOCK
    - qcc_is_dead
    - HA_SPIN_UNLOCK
    - TRACE_LEAVE
    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:3577,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:3578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3579
      start: 3569
    functionDepth: 1
    functionLinenumber: 3569
    functionLinenumberEnd: 3579
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3588,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/mux_quic.c:3590,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3592,1
    - Dst: _qcc_init
      Src: /src/haproxy/src/mux_quic.c:3596,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:3599,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/mux_quic.c:3602,1
    - Dst: qfctl_init
      Src: /src/haproxy/src/mux_quic.c:3618,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:3627,1
    - Dst: quic_pacing_init
      Src: /src/haproxy/src/mux_quic.c:3628,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_quic.c:3632,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3634,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:3643,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_quic.c:3656,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3658,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:3662,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:3663,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:3664,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:3665,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:3666,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:3675,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:3677,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_quic.c:3682,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_quic.c:3689,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3691,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/mux_quic.c:3696,1
    - Dst: qcc_reset_idle_start
      Src: /src/haproxy/src/mux_quic.c:3698,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/mux_quic.c:3699,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/mux_quic.c:3701,1
    - Dst: qcc_install_app_ops
      Src: /src/haproxy/src/mux_quic.c:3706,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:3707,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:3711,1
    - Dst: proxy_inc_fe_cum_sess_ver_ctr
      Src: /src/haproxy/src/mux_quic.c:3712,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/mux_quic.c:3714,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:3716,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:3719,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3727,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_quic.c:3730,1
    - Dst: qcc_fctl_avail_streams
      Src: /src/haproxy/src/mux_quic.c:3746,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3747,1
    - Dst: qcc_init_stream_local
      Src: /src/haproxy/src/mux_quic.c:3752,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_quic.c:3754,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_quic.c:3759,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3760,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:3762,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3771,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/mux_quic.c:3778,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/mux_quic.c:3779,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:3785,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3789,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 147
    argCount: 4
    argNames:
    - conn
    - prx
    - sess
    - input
    argTypes:
    - struct connection*
    - struct proxy*
    - struct session*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3791
      start: 3581
    functionDepth: 7
    functionLinenumber: 3581
    functionLinenumberEnd: 3791
    functionName: qmux_init
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcc_reset_idle_start
    - qcc_fctl_avail_streams
    - HA_ATOMIC_STORE
    - qcc_release
    - pool_alloc
    - quic_set_connection_close
    - sc_attach_mux
    - quic_pacing_init
    - _qcc_init
    - TRACE_LEAVE
    - proxy_inc_fe_cum_sess_ver_ctr
    - qcc_is_pacing_active
    - tick_isset
    - LIST_INIT
    - tick_add_ifset
    - qcs_free
    - tasklet_wakeup
    - qfctl_init
    - LIST_APPEND
    - TRACE_PROTO
    - struct connection*::xprt::subscribe
    - task_new_here
    - qcc_init_stream_local
    - quic_err_transport
    - tasklet_new
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - qcc_install_app_ops
    - conn_is_back
    linkageType: ''
    returnType: int
    signature: "int qmux_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:3797,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:3798,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3800
      start: 3793
    functionDepth: 6
    functionLinenumber: 3793
    functionLinenumberEnd: 3800
    functionName: qmux_destroy
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - qcc_release
    - TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void qmux_destroy(void *ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3807,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3812,1
    - Dst: qcc_fctl_avail_streams
      Src: /src/haproxy/src/mux_quic.c:3812,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:3815,1
    - Dst: qcc_init_stream_local
      Src: /src/haproxy/src/mux_quic.c:3817,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3819,1
    - Dst: sc_attach_mux
      Src: /src/haproxy/src/mux_quic.c:3823,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3824,1
    - Dst: qcs_free
      Src: /src/haproxy/src/mux_quic.c:3825,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_quic.c:3834,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_quic.c:3835,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - conn
    - sd
    - sess
    argTypes:
    - struct connection*
    - struct sedesc*
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3839
      start: 3802
    functionDepth: 7
    functionLinenumber: 3802
    functionLinenumberEnd: 3839
    functionName: qmux_strm_attach
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcc_fctl_avail_streams
    - sc_attach_mux
    - HA_ATOMIC_AND
    - xprt_set_used
    - BUG_ON
    - TRACE_ENTER
    - qcs_free
    - qcc_init_stream_local
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qmux_strm_attach(struct connection *conn, struct sedesc *sd, struct
      session *sess)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3848,1
    - Dst: qcc_rm_sc
      Src: /src/haproxy/src/mux_quic.c:3859,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:3861,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3863,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:3865,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3867,1
    - Dst: qcs_destroy
      Src: /src/haproxy/src/mux_quic.c:3871,1
    - Dst: qcc_is_dead
      Src: /src/haproxy/src/mux_quic.c:3874,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3877,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_quic.c:3882,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_quic.c:3883,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_quic.c:3896,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_quic.c:3897,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_quic.c:3900,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3901,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3914,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_quic.c:3919,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_quic.c:3920,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_quic.c:3922,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_quic.c:3922,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3924,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/mux_quic.c:3935,1
    - Dst: qmux_avail_streams
      Src: /src/haproxy/src/mux_quic.c:3936,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_quic.c:3937,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3938,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/mux_quic.c:3939,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_quic.c:3939,1
    - Dst: qcc_is_dead
      Src: /src/haproxy/src/mux_quic.c:3944,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3945,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:3949,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:3950,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3954,1
    - Dst: qcc_shutdown
      Src: /src/haproxy/src/mux_quic.c:3958,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:3959,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:3960,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3962
      start: 3841
    functionDepth: 10
    functionLinenumber: 3841
    functionLinenumberEnd: 3962
    functionName: qmux_strm_detach
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcc_release
    - session_add_conn
    - qmux_avail_streams
    - TRACE_LEAVE
    - ceb_intree
    - qcc_rm_sc
    - xprt_set_idle
    - HA_ATOMIC_OR
    - __objt_server
    - qcc_refresh_timeout
    - srv_add_to_avail_list
    - qcc_shutdown
    - objt_server
    - TRACE_STATE
    - TRACE_ENTER
    - qcs_destroy
    - TRACE_ERROR
    - qcs_is_close_local
    - qcc_is_dead
    - session_check_idle_conn
    - srv_add_to_idle_list
    linkageType: ''
    returnType: void
    signature: void qmux_strm_detach(struct sedesc *sd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:3968,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:3973,1
    - Dst: qcs_http_rcv_buf
      Src: /src/haproxy/src/mux_quic.c:3975,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:3977,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:3978,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_quic.c:3981,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3985,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:3986,1
    - Dst: se_expect_data
      Src: /src/haproxy/src/mux_quic.c:3992,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:3999,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4000,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:4005,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4006,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4007,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_quic.c:4011,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4012,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4013,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_quic.c:4016,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_quic.c:4017,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_quic.c:4018,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4027,1
    - Dst: qcs_rx_avail_data
      Src: /src/haproxy/src/mux_quic.c:4027,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:4031,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4032,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4036,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 41
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4039
      start: 3965
    functionDepth: 7
    functionLinenumber: 3965
    functionLinenumberEnd: 4039
    functionName: qmux_strm_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - offer_buffers
    - tasklet_wakeup
    - qcs_rx_avail_data
    - se_fl_set
    - TRACE_LEAVE
    - se_expect_data
    - b_data
    - se_fl_test
    - TRACE_STATE
    - BUG_ON
    - TRACE_ENTER
    - LIST_APPEND
    - qcs_http_rcv_buf
    - b_size
    - b_free
    - se_fl_clr
    linkageType: ''
    returnType: size_t
    signature: "size_t qmux_strm_rcv_buf(struct stconn *sc, struct buffer *buf,\n
      \                               size_t count, int flags)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4044,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:4045,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4049,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4052,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:4052,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:4055,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_quic.c:4059,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4060,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:4064,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4065,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:4069,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4070,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:4072,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4073,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:4075,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:4076,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:4081,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4082,1
    - Dst: tot_time_start
      Src: /src/haproxy/src/mux_quic.c:4084,1
    - Dst: qcs_http_snd_buf
      Src: /src/haproxy/src/mux_quic.c:4088,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4090,1
    - Dst: qcs_prep_bytes
      Src: /src/haproxy/src/mux_quic.c:4095,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:4097,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4101,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4105,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 4
    argNames:
    - sc
    - buf
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4108
      start: 4041
    functionDepth: 5
    functionLinenumber: 4041
    functionLinenumberEnd: 4108
    functionName: qmux_strm_snd_buf
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - tasklet_wakeup
    - qfctl_sblocked
    - se_fl_set
    - BUG_ON
    - TRACE_STATE
    - TRACE_ENTER
    - LIST_APPEND
    - BUG_ON_HOT
    - qcs_is_close_local
    - qcc_send_stream
    - qcs_prep_bytes
    - LIST_INLIST
    - tot_time_start
    - qcs_http_snd_buf
    - TRACE_LEAVE
    linkageType: ''
    returnType: size_t
    signature: "size_t qmux_strm_snd_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:4114,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4117,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4120,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:4120,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/mux_quic.c:4123,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4135,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:4140,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4141,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:4146,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4147,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_quic.c:4148,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4149,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_quic.c:4150,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/mux_quic.c:4156,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_quic.c:4157,1
    - Dst: struct qcs*::qcc::app_ops::nego_ff
      Src: /src/haproxy/src/mux_quic.c:4165,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4170,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4173,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4174,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_quic.c:4175,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_quic.c:4176,1
    - Dst: b_sub
      Src: /src/haproxy/src/mux_quic.c:4177,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_quic.c:4180,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4188,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 4
    argNames:
    - sc
    - input
    - count
    - flags
    argTypes:
    - struct stconn*
    - struct buffer*
    - size_t
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4190
      start: 4111
    functionDepth: 3
    functionLinenumber: 4111
    functionLinenumberEnd: 4190
    functionName: qmux_strm_nego_ff
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - qfctl_sblocked
    - b_sub
    - b_xfer
    - b_data
    - struct qcs*::qcc::app_ops::nego_ff
    - BUG_ON
    - TRACE_ENTER
    - LIST_APPEND
    - BUG_ON_HOT
    - qcs_is_close_local
    - TRACE_LEAVE
    - LIST_INLIST
    - b_add
    linkageType: ''
    returnType: size_t
    signature: "size_t qmux_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:4194,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4199,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4202,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4207,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/mux_quic.c:4213,1
    - Dst: struct qcs*::qcc::app_ops::done_ff
      Src: /src/haproxy/src/mux_quic.c:4218,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:4220,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4228,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4231,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4233
      start: 4192
    functionDepth: 5
    functionLinenumber: 4192
    functionLinenumberEnd: 4233
    functionName: qmux_strm_done_ff
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - tasklet_wakeup
    - TRACE_STATE
    - struct qcs*::qcc::app_ops::done_ff
    - TRACE_ENTER
    - qcc_send_stream
    - qcc_release_stream_txbuf
    - TRACE_LEAVE
    linkageType: ''
    returnType: size_t
    signature: size_t qmux_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: 4238
      start: 4235
    functionDepth: 0
    functionLinenumber: 4235
    functionLinenumberEnd: 4238
    functionName: qmux_strm_resume_ff
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qmux_strm_resume_ff(struct stconn *sc, unsigned int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: qcs_subscribe
      Src: /src/haproxy/src/mux_quic.c:4248,1
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4248,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: 4249
      start: 4245
    functionDepth: 2
    functionLinenumber: 4245
    functionLinenumberEnd: 4249
    functionName: qmux_strm_subscribe
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcs_subscribe
    - __sc_mux_strm
    linkageType: ''
    returnType: int
    signature: "int qmux_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:4257,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4259,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_quic.c:4260,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: 4267
      start: 4255
    functionDepth: 1
    functionLinenumber: 4255
    functionLinenumberEnd: 4267
    functionName: qmux_strm_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int qmux_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:4273,1
    - Dst: qcc_io_process
      Src: /src/haproxy/src/mux_quic.c:4275,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4276,1
    - Dst: qcc_wake_streams
      Src: /src/haproxy/src/mux_quic.c:4284,1
    - Dst: qcc_refresh_timeout
      Src: /src/haproxy/src/mux_quic.c:4286,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4288,1
    - Dst: qcc_shutdown
      Src: /src/haproxy/src/mux_quic.c:4292,1
    - Dst: qcc_release
      Src: /src/haproxy/src/mux_quic.c:4293,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4296
      start: 4269
    functionDepth: 11
    functionLinenumber: 4269
    functionLinenumberEnd: 4296
    functionName: qmux_wake
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - qcc_wake_streams
    - qcc_shutdown
    - qcc_io_process
    - TRACE_STATE
    - qcc_release
    - TRACE_ENTER
    - qcc_refresh_timeout
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int qmux_wake(struct connection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: __sc_mux_strm
      Src: /src/haproxy/src/mux_quic.c:4300,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_quic.c:4306,1
    - Dst: qcs_is_close_local
      Src: /src/haproxy/src/mux_quic.c:4309,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_quic.c:4319,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/mux_quic.c:4322,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/mux_quic.c:4327,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_quic.c:4330,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_quic.c:4334,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: 4335
      start: 4298
    functionDepth: 5
    functionLinenumber: 4298
    functionLinenumberEnd: 4335
    functionName: qmux_strm_shut
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - tasklet_wakeup
    - TRACE_STATE
    - TRACE_ENTER
    - qcs_is_close_local
    - qcc_send_stream
    - qcc_reset_stream
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: void qmux_strm_shut(struct stconn *sc, unsigned int mode, struct se_abort_info
      *reason)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/mux_quic.c:4352,1
    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: 4363
      start: 4337
    functionDepth: 0
    functionLinenumber: 4337
    functionLinenumberEnd: 4363
    functionName: qmux_ctl
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    linkageType: ''
    returnType: int
    signature: int qmux_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_quic.c:4368,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_quic.c:4381,1
    - Dst: qmux_dump_qcs_info
      Src: /src/haproxy/src/mux_quic.c:4384,1
    - Dst: qmux_dump_qcc_info
      Src: /src/haproxy/src/mux_quic.c:4387,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4390,1
    - Dst: struct qcc*::conn::xprt::dump_info
      Src: /src/haproxy/src/mux_quic.c:4393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - sc
    - mux_sctl
    - output
    argTypes:
    - struct stconn*
    - enum mux_sctl_type
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4401
      start: 4365
    functionDepth: 2
    functionLinenumber: 4365
    functionLinenumberEnd: 4401
    functionName: qmux_sctl
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - struct qcc*::conn::xprt::dump_info
    - get_trash_chunk
    - chunk_appendf
    - qmux_dump_qcc_info
    - qmux_dump_qcs_info
    linkageType: ''
    returnType: int
    signature: int qmux_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:4417,1
    - Dst: qcs_st_to_str
      Src: /src/haproxy/src/mux_quic.c:4418,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4421,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4427
      start: 4408
    functionDepth: 1
    functionLinenumber: 4408
    functionLinenumberEnd: 4427
    functionName: qmux_strm_show_sd
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - qcs_st_to_str
    linkageType: ''
    returnType: int
    signature: int qmux_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:4459,1
    - Dst: qcc_is_pacing_active
      Src: /src/haproxy/src/mux_quic.c:4463,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4464,1
    - Dst: eb64_first
      Src: /src/haproxy/src/mux_quic.c:4469,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/mux_quic.c:4471,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4472,1
    - Dst: qcs_st_to_str
      Src: /src/haproxy/src/mux_quic.c:4474,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:4476,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/mux_quic.c:4476,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4477,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4478,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/mux_quic.c:4481,1
    - Dst: quic_stream_is_remote
      Src: /src/haproxy/src/mux_quic.c:4481,1
    - Dst: bdata_ctr_print
      Src: /src/haproxy/src/mux_quic.c:4483,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4484,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_quic.c:4489,1
    - Dst: eb64_next
      Src: /src/haproxy/src/mux_quic.c:4490,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4492
      start: 4454
    functionDepth: 2
    functionLinenumber: 4454
    functionLinenumberEnd: 4492
    functionName: qcc_show_quic
    functionSourceFile: /src/haproxy/src/mux_quic.c
    functionUses: 1
    functionsReached:
    - qcc_is_pacing_active
    - quic_stream_is_uni
    - quic_stream_is_local
    - eb64_next
    - chunk_appendf
    - eb64_first
    - eb64_entry
    - bdata_ctr_print
    - quic_stream_is_remote
    - qcs_st_to_str
    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: 21
    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
    - LIST_INSERT
    - container_of
    - __eb64_lookup
    - typeof
    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:
    - struct lru64*::free
    - LIST_DELETE
    - LIST_INSERT
    - container_of
    - __eb64_delete
    - malloc
    - typeof
    - __eb64_insert
    - free
    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:
    - struct lru64*::free
    - LIST_DELETE
    - eb64_delete
    - container_of
    - free
    - typeof
    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:
    - struct lru64*::free
    - LIST_DELETE
    - eb64_delete
    - container_of
    - free
    - typeof
    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:
    - sum
    - lru64_get
    - lru64_commit
    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: 8
    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:
    - get_value
    - exit
    - printf
    - statistical_prng
    - atoi
    - lru64_new
    - lru64_destroy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: b_contig_data
      Src: /src/haproxy/src/check.c:153,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/check.c:159,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/check.c:164,1
    - Dst: b_orig
      Src: /src/haproxy/src/check.c:164,1
    - Dst: b_size
      Src: /src/haproxy/src/check.c:164,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/check.c:172,1
    - Dst: b_orig
      Src: /src/haproxy/src/check.c:172,1
    - Dst: b_size
      Src: /src/haproxy/src/check.c:172,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: 177
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 177
    functionName: check_trace_buf
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - b_peek_ofs
    - b_orig
    - b_contig_data
    - dump_text_line
    - b_size
    linkageType: ''
    returnType: void
    signature: void check_trace_buf(const struct buffer *buf, size_t ofs, size_t len)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/check.c:193,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:194,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:198,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/check.c:202,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:215,1
    - Dst: get_check_status_info
      Src: /src/haproxy/src/check.c:216,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:221,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:223,1
    - Dst: sc_conn
      Src: /src/haproxy/src/check.c:230,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:232,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:233,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:253,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/check.c:253,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:255,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:262,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:263,1
    - Dst: b_orig
      Src: /src/haproxy/src/check.c:263,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/check.c:264,1
    - Dst: b_size
      Src: /src/haproxy/src/check.c:264,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:265,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:266,1
    - Dst: b_orig
      Src: /src/haproxy/src/check.c:266,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/check.c:267,1
    - Dst: b_size
      Src: /src/haproxy/src/check.c:267,1
    - Dst: b_is_null
      Src: /src/haproxy/src/check.c:270,1
    - Dst: b_is_null
      Src: /src/haproxy/src/check.c:272,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/check.c:278,1
    - Dst: htx_dump
      Src: /src/haproxy/src/check.c:279,1
    - Dst: htxbuf
      Src: /src/haproxy/src/check.c:279,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/check.c:284,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:285,1
    - Dst: check_trace_buf
      Src: /src/haproxy/src/check.c:286,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/check.c:287,1
    - Dst: check_trace_buf
      Src: /src/haproxy/src/check.c:290,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:290,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 96
    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: 296
      start: 180
    functionDepth: 3
    functionLinenumber: 180
    functionLinenumberEnd: 296
    functionName: check_trace
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - b_orig
    - chunk_memcat
    - htxbuf
    - htx_dump
    - b_data
    - chunk_appendf
    - b_is_null
    - check_trace_buf
    - BUG_ON
    - tcpcheck_get_step_id
    - b_size
    - TICKS_TO_MS
    - get_check_status_info
    - b_head_ofs
    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: 371
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 371
    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: 380
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 380
    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: 396
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 396
    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: 412
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 412
    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: 428
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 428
    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:435,1
    - Dst: get_check_status_description
      Src: /src/haproxy/src/check.c:435,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:438,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:443,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/check.c:445,1
    - Dst: strlen
      Src: /src/haproxy/src/check.c:445,1
    - Dst: chunk_asciiencode
      Src: /src/haproxy/src/check.c:446,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:448,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - msg
    - check
    argTypes:
    - struct buffer*
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 453
    functionName: check_append_info
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - chunk_appendf
    - get_check_status_description
    - strlen
    - chunk_initlen
    - chunk_asciiencode
    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:468,1
    - Dst: strncpy
      Src: /src/haproxy/src/check.c:481,1
    - Dst: ns_to_ms
      Src: /src/haproxy/src/check.c:494,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:517,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/check.c:537,1
    - Dst: srv_event_hdl_publish_check
      Src: /src/haproxy/src/check.c:545,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:548,1
    - Dst: check_append_info
      Src: /src/haproxy/src/check.c:556,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:558,1
    - Dst: ha_warning
      Src: /src/haproxy/src/check.c:563,1
    - Dst: send_log
      Src: /src/haproxy/src/check.c:564,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 62
    argCount: 3
    argNames:
    - check
    - status
    - desc
    argTypes:
    - struct check*
    - short
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 462
    functionDepth: 10
    functionLinenumber: 462
    functionLinenumberEnd: 566
    functionName: set_server_check_status
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 12
    functionsReached:
    - ha_warning
    - srv_event_hdl_publish_check
    - HA_ATOMIC_STORE
    - ns_to_ms
    - chunk_printf
    - check_append_info
    - chunk_appendf
    - send_log
    - _HA_ATOMIC_INC
    - TRACE_POINT
    - strncpy
    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: 576
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 576
    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:597,1
    - Dst: srv_set_stopped
      Src: /src/haproxy/src/check.c:598,1
    - Dst: check_notify_cause
      Src: /src/haproxy/src/check.c:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 581
    functionDepth: 2
    functionLinenumber: 581
    functionLinenumberEnd: 599
    functionName: check_notify_failure
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - check_notify_cause
    - srv_set_stopped
    - TRACE_STATE
    linkageType: ''
    returnType: void
    signature: void check_notify_failure(struct check *check)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:631,1
    - Dst: srv_set_running
      Src: /src/haproxy/src/check.c:632,1
    - Dst: check_notify_cause
      Src: /src/haproxy/src/check.c:632,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 13
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 612
    functionDepth: 2
    functionLinenumber: 612
    functionLinenumberEnd: 633
    functionName: check_notify_success
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - check_notify_cause
    - TRACE_STATE
    - srv_set_running
    linkageType: ''
    returnType: void
    signature: void check_notify_success(struct check *check)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:660,1
    - Dst: srv_set_stopping
      Src: /src/haproxy/src/check.c:661,1
    - Dst: check_notify_cause
      Src: /src/haproxy/src/check.c:661,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 13
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 662
    functionName: check_notify_stopping
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - srv_set_stopping
    - check_notify_cause
    - 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:692,1
    - Dst: HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/check.c:696,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:699,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:700,1
    - Dst: get_analyze_status
      Src: /src/haproxy/src/check.c:700,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/check.c:702,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: set_server_check_status
      Src: /src/haproxy/src/check.c:731,1
    - Dst: check_notify_failure
      Src: /src/haproxy/src/check.c:733,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/check.c:741,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/check.c:743,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:745,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:752,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 50
    argCount: 2
    argNames:
    - s
    - status
    argTypes:
    - struct server*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 667
    functionDepth: 11
    functionLinenumber: 667
    functionLinenumberEnd: 754
    functionName: __health_adjust
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_ADD_FETCH
    - set_server_check_status
    - HA_ATOMIC_STORE
    - chunk_printf
    - _HA_ATOMIC_INC
    - get_analyze_status
    - task_wakeup
    - HA_ATOMIC_LOAD
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - check_notify_failure
    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:770,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/check.c:773,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/check.c:776,1
    - Dst: getsockopt
      Src: /src/haproxy/src/check.c:778,1
    - Dst: unclean_errno
      Src: /src/haproxy/src/check.c:781,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 796
    functionName: retrieve_errno_from_socket
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - conn_ctrl_ready
    - unclean_errno
    - BUG_ON
    - getsockopt
    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:813,1
    - Dst: unclean_errno
      Src: /src/haproxy/src/check.c:822,1
    - Dst: retrieve_errno_from_socket
      Src: /src/haproxy/src/check.c:824,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/check.c:826,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/check.c:833,1
    - Dst: tcpcheck_get_step_id
      Src: /src/haproxy/src/check.c:837,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:839,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:840,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:843,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:847,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:849,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:850,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:857,1
    - Dst: istlen
      Src: /src/haproxy/src/check.c:857,1
    - Dst: istptr
      Src: /src/haproxy/src/check.c:857,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:860,1
    - Dst: dump_binary
      Src: /src/haproxy/src/check.c:861,1
    - Dst: istptr
      Src: /src/haproxy/src/check.c:861,1
    - Dst: istlen
      Src: /src/haproxy/src/check.c:861,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:862,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:865,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:868,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:871,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:874,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:877,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:880,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:883,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:886,1
    - Dst: istlen
      Src: /src/haproxy/src/check.c:886,1
    - Dst: istptr
      Src: /src/haproxy/src/check.c:886,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:889,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:892,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:895,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:898,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:901,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:904,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:905,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:909,1
    - Dst: unclean_errno
      Src: /src/haproxy/src/check.c:914,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:915,1
    - Dst: conn_err_code_str
      Src: /src/haproxy/src/check.c:915,1
    - Dst: strerror
      Src: /src/haproxy/src/check.c:915,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:918,1
    - Dst: conn_err_code_str
      Src: /src/haproxy/src/check.c:918,1
    - Dst: unclean_errno
      Src: /src/haproxy/src/check.c:923,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/check.c:924,1
    - Dst: strerror
      Src: /src/haproxy/src/check.c:924,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:935,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:940,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:944,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:945,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:947,1
    - Dst: resolv_trigger_resolution
      Src: /src/haproxy/src/check.c:954,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:959,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:960,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:962,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:964,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:966,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:975,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:980,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/check.c:983,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 125
    argCount: 3
    argNames:
    - check
    - errno_bck
    - expired
    argTypes:
    - struct check*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 810
    functionDepth: 11
    functionLinenumber: 810
    functionLinenumberEnd: 985
    functionName: chk_report_conn_err
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 2
    functionsReached:
    - sc_conn
    - TRACE_DEVEL
    - istlen
    - set_server_check_status
    - get_trash_chunk
    - sc_ep_test
    - retrieve_errno_from_socket
    - chunk_printf
    - chunk_appendf
    - resolv_trigger_resolution
    - istptr
    - dump_binary
    - TRACE_ENTER
    - tcpcheck_get_step_id
    - strerror
    - unclean_errno
    - conn_err_code_str
    - TRACE_LEAVE
    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:1018,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/check.c:1022,1
    - Dst: snprintf
      Src: /src/haproxy/src/check.c:1024,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:1028,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/check.c:1037,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/check.c:1038,1
    - Dst: MAX
      Src: /src/haproxy/src/check.c:1039,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/check.c:1039,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/check.c:1040,1
    - Dst: b_data
      Src: /src/haproxy/src/check.c:1043,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - s
    - buf
    argTypes:
    - struct server*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1044
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1044
    functionName: httpchk_build_status_header
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - addr_to_str
    - snprintf
    - b_data
    - chunk_appendf
    - ns_to_sec
    - MAX
    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:1057,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/check.c:1060,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/check.c:1062,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/check.c:1066,1
    - Dst: tcpcheck_main
      Src: /src/haproxy/src/check.c:1069,1
    - Dst: sc_conn
      Src: /src/haproxy/src/check.c:1072,1
    - Dst: unlikely
      Src: /src/haproxy/src/check.c:1074,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:1074,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/check.c:1081,1
    - Dst: chk_report_conn_err
      Src: /src/haproxy/src/check.c:1082,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1083,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1090,1
    - Dst: task_queue
      Src: /src/haproxy/src/check.c:1095,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/check.c:1098,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/check.c:1101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1054
    functionDepth: 12
    functionLinenumber: 1054
    functionLinenumberEnd: 1103
    functionName: wake_srv_chk
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - sc_ep_test
    - unlikely
    - task_wakeup
    - BUG_ON
    - tcpcheck_main
    - TRACE_ENTER
    - TRACE_ERROR
    - __sc_check
    - task_queue
    - HA_SPIN_LOCK
    - chk_report_conn_err
    - HA_SPIN_UNLOCK
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int wake_srv_chk(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wake_srv_chk
      Src: /src/haproxy/src/check.c:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1106
    functionDepth: 13
    functionLinenumber: 1106
    functionLinenumberEnd: 1112
    functionName: srv_chk_io_cb
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - wake_srv_chk
    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:1121,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1122,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1123,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - thr1
    - thr2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1144
    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:1154,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - thr1
    - thr2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1152
    functionDepth: 1
    functionLinenumber: 1152
    functionLinenumberEnd: 1162
    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:1178,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/check.c:1180,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1194,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1195,1
    - Dst: MIN
      Src: /src/haproxy/src/check.c:1196,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1213,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1214,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/check.c:1215,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/src/check.c:1220,1
    - Dst: check_thread_cmp_active
      Src: /src/haproxy/src/check.c:1222,1
    - Dst: check_thread_cmp_load
      Src: /src/haproxy/src/check.c:1224,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:1232,1
    - Dst: task_unlink_wq
      Src: /src/haproxy/src/check.c:1233,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/check.c:1235,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1236,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/check.c:1237,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:1242,1
    - Dst: task_set_thread
      Src: /src/haproxy/src/check.c:1246,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1254,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1256,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1257,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/check.c:1259,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:1271,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/check.c:1277,1
    - Dst: tick_isset
      Src: /src/haproxy/src/check.c:1284,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1285,1
    - Dst: unlikely
      Src: /src/haproxy/src/check.c:1290,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1291,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/check.c:1299,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1301,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/check.c:1301,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1301,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/check.c:1303,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1304,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1309,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1319,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:1324,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1327,1
    - Dst: sc_new_from_check
      Src: /src/haproxy/src/check.c:1331,1
    - Dst: set_server_check_status
      Src: /src/haproxy/src/check.c:1333,1
    - Dst: tcpcheck_main
      Src: /src/haproxy/src/check.c:1336,1
    - Dst: likely
      Src: /src/haproxy/src/check.c:1344,1
    - Dst: sc_conn
      Src: /src/haproxy/src/check.c:1346,1
    - Dst: sc_ep_test
      Src: /src/haproxy/src/check.c:1351,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/check.c:1352,1
    - Dst: chk_report_conn_err
      Src: /src/haproxy/src/check.c:1353,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1357,1
    - Dst: sc_reset_endp
      Src: /src/haproxy/src/check.c:1359,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/src/check.c:1363,1
    - Dst: tcpcheck_main
      Src: /src/haproxy/src/check.c:1365,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1368,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1375,1
    - Dst: sc_conn
      Src: /src/haproxy/src/check.c:1380,1
    - Dst: se_shutdown
      Src: /src/haproxy/src/check.c:1388,1
    - Dst: sc_destroy
      Src: /src/haproxy/src/check.c:1392,1
    - Dst: vars_prune
      Src: /src/haproxy/src/check.c:1397,1
    - Dst: session_free
      Src: /src/haproxy/src/check.c:1398,1
    - Dst: likely
      Src: /src/haproxy/src/check.c:1403,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1406,1
    - Dst: check_notify_failure
      Src: /src/haproxy/src/check.c:1407,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1411,1
    - Dst: check_notify_stopping
      Src: /src/haproxy/src/check.c:1412,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/check.c:1416,1
    - Dst: check_notify_success
      Src: /src/haproxy/src/check.c:1417,1
    - Dst: b_dequeue
      Src: /src/haproxy/src/check.c:1421,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/check.c:1423,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/check.c:1424,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/check.c:1425,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/src/check.c:1426,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1436,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/check.c:1437,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/check.c:1438,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/check.c:1441,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/check.c:1444,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1447,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1454,1
    - Dst: statistical_prng
      Src: /src/haproxy/src/check.c:1455,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1457,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/check.c:1457,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1457,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/check.c:1468,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1469,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/check.c:1469,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/check.c:1474,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/check.c:1477,1
    - Dst: unlikely
      Src: /src/haproxy/src/check.c:1483,1
    - Dst: free_check
      Src: /src/haproxy/src/check.c:1484,1
    - Dst: srv_drop
      Src: /src/haproxy/src/check.c:1486,1
    CyclomaticComplexity: 61
    EdgeCount: 61
    ICount: 182
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1171
    functionDepth: 12
    functionLinenumber: 1171
    functionLinenumberEnd: 1492
    functionName: process_chk_conn
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - sc_conn
    - HA_ATOMIC_INC
    - unlikely
    - se_shutdown
    - task_wakeup
    - vars_prune
    - HA_SPIN_LOCK
    - _HA_ATOMIC_INC
    - TRACE_LEAVE
    - sc_ep_test
    - MIN
    - tick_is_expired
    - sc_ep_clr
    - free_check
    - tick_isset
    - tcpcheck_main
    - ALREADY_CHECKED
    - srv_drop
    - likely
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - check_notify_failure
    - b_dequeue
    - task_set_thread
    - _HA_ATOMIC_DEC
    - sc_new_from_check
    - set_server_check_status
    - task_unlink_wq
    - LIST_DEL_INIT
    - HA_ATOMIC_LOAD
    - check_thread_cmp_load
    - LIST_APPEND
    - check_release_buf
    - session_free
    - chk_report_conn_err
    - MS_TO_TICKS
    - LIST_ELEM
    - tick_add
    - _HA_ATOMIC_LOAD
    - check_notify_stopping
    - statistical_prng_range
    - sc_destroy
    - statistical_prng
    - TRACE_STATE
    - check_thread_cmp_active
    - TRACE_ENTER
    - sc_reset_endp
    - TRACE_ERROR
    - check_notify_success
    - srv_getinter
    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:1508,1
    - Dst: b_alloc
      Src: /src/haproxy/src/check.c:1510,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1511,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/check.c:1513,1
    - Dst: b_alloc
      Src: /src/haproxy/src/check.c:1516,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/check.c:1517,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/check.c:1519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - target
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1524
    functionName: check_buf_available
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - TRACE_STATE
    - tasklet_wakeup
    - b_alloc
    - BUG_ON
    linkageType: ''
    returnType: int
    signature: int check_buf_available(void *target)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/src/check.c:1533,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/check.c:1533,1
    - Dst: unlikely
      Src: /src/haproxy/src/check.c:1534,1
    - Dst: b_alloc
      Src: /src/haproxy/src/check.c:1534,1
    - Dst: b_queue
      Src: /src/haproxy/src/check.c:1535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - check
    - bptr
    argTypes:
    - struct check*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1538
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1538
    functionName: check_get_buf
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 2
    functionsReached:
    - LIST_INLIST
    - unlikely
    - likely
    - b_alloc
    - b_queue
    linkageType: ''
    returnType: struct buffer
    signature: struct buffer *check_get_buf(struct check *check, struct buffer *bptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: b_free
      Src: /src/haproxy/src/check.c:1547,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/check.c:1548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - check
    - bptr
    argTypes:
    - struct check*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1544
    functionDepth: 1
    functionLinenumber: 1544
    functionLinenumberEnd: 1550
    functionName: check_release_buf
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 5
    functionsReached:
    - 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:1558,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:1559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - check
    - type
    argTypes:
    - struct check*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1561
      start: 1552
    functionDepth: 1
    functionLinenumber: 1552
    functionLinenumberEnd: 1561
    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:1574,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1575,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1578,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1579,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1580,1
    - Dst: task_destroy
      Src: /src/haproxy/src/check.c:1581,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/check.c:1583,1
    - Dst: check_release_buf
      Src: /src/haproxy/src/check.c:1584,1
    - Dst: sc_destroy
      Src: /src/haproxy/src/check.c:1586,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1589
      start: 1567
    functionDepth: 8
    functionLinenumber: 1567
    functionLinenumberEnd: 1589
    functionName: free_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 3
    functionsReached:
    - sc_destroy
    - ha_free
    - task_destroy
    - check_release_buf
    - free_tcpcheck_vars
    linkageType: ''
    returnType: void
    signature: void free_check(struct check *check)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: task_wakeup
      Src: /src/haproxy/src/check.c:1600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - check
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1601
      start: 1597
    functionDepth: 1
    functionLinenumber: 1597
    functionLinenumberEnd: 1601
    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:1611,1
    - Dst: process_chk_conn
      Src: /src/haproxy/src/check.c:1612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1606
    functionDepth: 13
    functionLinenumber: 1606
    functionLinenumberEnd: 1614
    functionName: process_chk
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - process_chk_conn
    - process_chk_proc
    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:1624,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/check.c:1626,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1635,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1636,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1641,1
    - Dst: ha_random32
      Src: /src/haproxy/src/check.c:1642,1
    - Dst: tick_add
      Src: /src/haproxy/src/check.c:1650,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/check.c:1650,1
    - Dst: task_queue
      Src: /src/haproxy/src/check.c:1652,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1657,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: 1660
      start: 1617
    functionDepth: 9
    functionLinenumber: 1617
    functionLinenumberEnd: 1660
    functionName: start_check_task
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - tick_add
    - ha_random32
    - task_new_on
    - task_new_anywhere
    - task_queue
    - ha_alert
    - MS_TO_TICKS
    - srv_getinter
    linkageType: ''
    returnType: int
    signature: "int start_check_task(struct check *check, int mininter,\n\t\t\t    int
      nbcheck, int srvpos)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: setup_new_proxy
      Src: /src/haproxy/src/check.c:1675,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1676,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:1677,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: srv_getinter
      Src: /src/haproxy/src/check.c:1704,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1705,1
    - Dst: srv_getinter
      Src: /src/haproxy/src/check.c:1706,1
    - Dst: srand
      Src: /src/haproxy/src/check.c:1714,1
    - Dst: time
      Src: /src/haproxy/src/check.c:1714,1
    - Dst: init_pid_list
      Src: /src/haproxy/src/check.c:1723,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1724,1
    - Dst: prepare_external_check
      Src: /src/haproxy/src/check.c:1733,1
    - Dst: start_check_task
      Src: /src/haproxy/src/check.c:1736,1
    - Dst: start_check_task
      Src: /src/haproxy/src/check.c:1743,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1751
      start: 1666
    functionDepth: 10
    functionLinenumber: 1666
    functionLinenumberEnd: 1751
    functionName: start_checks
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - start_check_task
    - time
    - srand
    - ha_free
    - prepare_external_check
    - init_pid_list
    - setup_new_proxy
    - ha_alert
    - srv_getinter
    linkageType: ''
    returnType: int
    signature: int start_checks()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: deinit_proxy
      Src: /src/haproxy/src/check.c:1757,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1758
      start: 1754
    functionDepth: 1
    functionLinenumber: 1754
    functionLinenumberEnd: 1758
    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:1777,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct check*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1765
    functionDepth: 1
    functionLinenumber: 1765
    functionLinenumberEnd: 1794
    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: 20
    BranchProfiles: []
    Callsites:
    - Dst: is_addr
      Src: /src/haproxy/src/check.c:1818,1
    - Dst: xprt_get
      Src: /src/haproxy/src/check.c:1822,1
    - Dst: xprt_get
      Src: /src/haproxy/src/check.c:1826,1
    - Dst: xprt_get
      Src: /src/haproxy/src/check.c:1834,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1851,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1852,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/check.c:1859,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/check.c:1860,1
    - Dst: ist
      Src: /src/haproxy/src/check.c:1860,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1861,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1862,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1868,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1869,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1874,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1875,1
    - Dst: srv_check_healthcheck_port
      Src: /src/haproxy/src/check.c:1883,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/check.c:1884,1
    - Dst: is_addr
      Src: /src/haproxy/src/check.c:1884,1
    - Dst: is_inet_addr
      Src: /src/haproxy/src/check.c:1884,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1887,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1888,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1889,1
    - Dst: get_first_tcpcheck_rule
      Src: /src/haproxy/src/check.c:1895,1
    - Dst: get_host_port
      Src: /src/haproxy/src/check.c:1896,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1897,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1899,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/check.c:1905,1
    - Dst: get_host_port
      Src: /src/haproxy/src/check.c:1906,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1907,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1909,1
    - Dst: init_check
      Src: /src/haproxy/src/check.c:1916,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1918,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1919,1
    - Dst: srv_take
      Src: /src/haproxy/src/check.c:1924,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 84
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1935
      start: 1799
    functionDepth: 9
    functionLinenumber: 1799
    functionLinenumberEnd: 1935
    functionName: init_srv_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - get_host_port
    - srv_take
    - list_for_each_entry
    - srv_check_healthcheck_port
    - get_first_tcpcheck_rule
    - xprt_get
    - srv_is_quic
    - get_mux_proto
    - ha_alert
    - proxy_type_str
    - init_check
    - ist
    - LIST_ISEMPTY
    - is_inet_addr
    - 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:1952,1
    - Dst: calloc
      Src: /src/haproxy/src/check.c:1954,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1956,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1958,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/check.c:1964,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/check.c:1971,1
    - Dst: init_check
      Src: /src/haproxy/src/check.c:1975,1
    - Dst: ha_alert
      Src: /src/haproxy/src/check.c:1977,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:1978,1
    - Dst: srv_take
      Src: /src/haproxy/src/check.c:1987,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1940
    functionDepth: 9
    functionLinenumber: 1940
    functionLinenumberEnd: 1998
    functionName: init_srv_agent_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - srv_take
    - LIST_INSERT
    - ha_alert
    - proxy_type_str
    - init_check
    - get_first_tcpcheck_rule
    - LIST_ISEMPTY
    - calloc
    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:2003,1
    - Dst: srv_drop
      Src: /src/haproxy/src/check.c:2005,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2000
    functionDepth: 9
    functionLinenumber: 2000
    functionLinenumberEnd: 2009
    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:2015,1
    - Dst: srv_drop
      Src: /src/haproxy/src/check.c:2017,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2022
      start: 2012
    functionDepth: 9
    functionLinenumber: 2012
    functionLinenumberEnd: 2022
    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:2038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2039
      start: 2033
    functionDepth: 1
    functionLinenumber: 2033
    functionLinenumberEnd: 2039
    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:2066,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/check.c:2070,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2073,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: 2088
      start: 2058
    functionDepth: 5
    functionLinenumber: 2058
    functionLinenumberEnd: 2088
    functionName: srv_parse_addr
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - str2sa_range
    - memprintf
    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:2098,1
    - Dst: memset
      Src: /src/haproxy/src/check.c:2101,1
    - Dst: str2ip
      Src: /src/haproxy/src/check.c:2102,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2103,1
    - Dst: set_srv_agent_addr
      Src: /src/haproxy/src/check.c:2106,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: 2114
      start: 2091
    functionDepth: 5
    functionLinenumber: 2091
    functionLinenumberEnd: 2114
    functionName: srv_parse_agent_addr
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - set_srv_agent_addr
    - memset
    - memprintf
    - str2ip
    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:2129,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:2130,1
    - Dst: calloc
      Src: /src/haproxy/src/check.c:2135,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2137,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:2140,1
    - Dst: find_tcpcheck_ruleset
      Src: /src/haproxy/src/check.c:2146,1
    - Dst: create_tcpcheck_ruleset
      Src: /src/haproxy/src/check.c:2150,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2152,1
    - Dst: parse_tcpcheck_send
      Src: /src/haproxy/src/check.c:2156,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2159,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/check.c:2163,1
    - Dst: parse_tcpcheck_expect
      Src: /src/haproxy/src/check.c:2165,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2169,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/check.c:2174,1
    - Dst: deinit_srv_agent_check
      Src: /src/haproxy/src/check.c:2186,1
    - Dst: free_tcpcheck_ruleset
      Src: /src/haproxy/src/check.c:2187,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 5
    argNames:
    - args
    - cur_arg
    - curpx
    - srv
    - errmsg
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct server*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2117
    functionDepth: 10
    functionLinenumber: 2117
    functionLinenumberEnd: 2190
    functionName: srv_parse_agent_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - find_tcpcheck_ruleset
    - create_tcpcheck_ruleset
    - LIST_APPEND
    - LIST_INIT
    - parse_tcpcheck_expect
    - memprintf
    - deinit_srv_agent_check
    - proxy_type_str
    - free_tcpcheck_ruleset
    - parse_tcpcheck_send
    - calloc
    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:2201,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/check.c:2205,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2207,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2212,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2217,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2222,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/check.c:2228,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2229,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: 2240
      start: 2193
    functionDepth: 5
    functionLinenumber: 2193
    functionLinenumberEnd: 2240
    functionName: srv_parse_agent_inter
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - warn_if_lower
    - parse_time_err
    - memprintf
    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:2249,1
    - Dst: set_srv_agent_port
      Src: /src/haproxy/src/check.c:2260,1
    - Dst: atol
      Src: /src/haproxy/src/check.c:2260,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: 2268
      start: 2243
    functionDepth: 5
    functionLinenumber: 2243
    functionLinenumberEnd: 2268
    functionName: srv_parse_agent_port
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    - 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:2276,1
    - Dst: create_tcpcheck_var
      Src: /src/haproxy/src/check.c:2277,1
    - Dst: ist
      Src: /src/haproxy/src/check.c:2277,1
    - Dst: free_tcpcheck_vars
      Src: /src/haproxy/src/check.c:2281,1
    - Dst: strlen
      Src: /src/haproxy/src/check.c:2285,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:2286,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/check.c:2287,1
    - Dst: free
      Src: /src/haproxy/src/check.c:2292,1
    - Dst: free
      Src: /src/haproxy/src/check.c:2293,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - srv
    - send
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2295
      start: 2270
    functionDepth: 5
    functionLinenumber: 2270
    functionLinenumberEnd: 2295
    functionName: set_srv_agent_send
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 1
    functionsReached:
    - create_tcpcheck_var
    - strdup
    - LIST_APPEND
    - strlen
    - free
    - LIST_INIT
    - free_tcpcheck_vars
    - ist
    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:2305,1
    - Dst: calloc
      Src: /src/haproxy/src/check.c:2310,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2312,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/check.c:2315,1
    - Dst: set_srv_agent_send
      Src: /src/haproxy/src/check.c:2319,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2320,1
    - Dst: deinit_srv_agent_check
      Src: /src/haproxy/src/check.c:2328,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: 2331
      start: 2298
    functionDepth: 10
    functionLinenumber: 2298
    functionLinenumberEnd: 2331
    functionName: srv_parse_agent_send
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - deinit_srv_agent_check
    - memprintf
    - set_srv_agent_send
    - calloc
    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:2337,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: 2339
      start: 2334
    functionDepth: 10
    functionLinenumber: 2334
    functionLinenumberEnd: 2339
    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:2346,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/check.c:2347,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: 2353
      start: 2342
    functionDepth: 5
    functionLinenumber: 2342
    functionLinenumberEnd: 2353
    functionName: srv_parse_check
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - memprintf
    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: 2361
      start: 2356
    functionDepth: 0
    functionLinenumber: 2356
    functionLinenumberEnd: 2361
    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: 2369
      start: 2364
    functionDepth: 0
    functionLinenumber: 2364
    functionLinenumberEnd: 2369
    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:2375,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: 2377
      start: 2372
    functionDepth: 10
    functionLinenumber: 2372
    functionLinenumberEnd: 2377
    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: 2386
      start: 2380
    functionDepth: 0
    functionLinenumber: 2380
    functionLinenumberEnd: 2386
    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: 2394
      start: 2389
    functionDepth: 0
    functionLinenumber: 2389
    functionLinenumberEnd: 2394
    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:2404,1
    - Dst: ha_free
      Src: /src/haproxy/src/check.c:2408,1
    - Dst: strdup
      Src: /src/haproxy/src/check.c:2409,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2411,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: 2421
      start: 2397
    functionDepth: 5
    functionLinenumber: 2397
    functionLinenumberEnd: 2421
    functionName: srv_parse_check_pool_conn_name
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_free
    - memprintf
    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:2431,1
    - Dst: get_mux_proto
      Src: /src/haproxy/src/check.c:2434,1
    - Dst: ist
      Src: /src/haproxy/src/check.c:2434,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2436,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: 2446
      start: 2425
    functionDepth: 5
    functionLinenumber: 2425
    functionLinenumberEnd: 2446
    functionName: srv_parse_check_proto
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - get_mux_proto
    - memprintf
    - 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: 2455
      start: 2449
    functionDepth: 0
    functionLinenumber: 2449
    functionLinenumberEnd: 2455
    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:2465,1
    - Dst: atol
      Src: /src/haproxy/src/check.c:2469,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2471,1
    - Dst: deinit_srv_agent_check
      Src: /src/haproxy/src/check.c:2482,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: 2485
      start: 2459
    functionDepth: 10
    functionLinenumber: 2459
    functionLinenumberEnd: 2485
    functionName: srv_parse_check_rise
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - deinit_srv_agent_check
    - memprintf
    - atol
    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:2494,1
    - Dst: atol
      Src: /src/haproxy/src/check.c:2498,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2500,1
    - Dst: deinit_srv_agent_check
      Src: /src/haproxy/src/check.c:2508,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: 2511
      start: 2488
    functionDepth: 10
    functionLinenumber: 2488
    functionLinenumberEnd: 2511
    functionName: srv_parse_check_fall
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - deinit_srv_agent_check
    - memprintf
    - atol
    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:2522,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/check.c:2526,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2528,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2533,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2538,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2543,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/check.c:2549,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2550,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: 2561
      start: 2514
    functionDepth: 5
    functionLinenumber: 2514
    functionLinenumberEnd: 2561
    functionName: srv_parse_check_inter
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - warn_if_lower
    - parse_time_err
    - memprintf
    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:2573,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/check.c:2577,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2579,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2584,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2589,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2594,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/check.c:2600,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2601,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: 2612
      start: 2565
    functionDepth: 5
    functionLinenumber: 2565
    functionLinenumberEnd: 2612
    functionName: srv_parse_check_fastinter
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - warn_if_lower
    - parse_time_err
    - memprintf
    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:2624,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/check.c:2628,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2630,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2635,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2640,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2645,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/check.c:2651,1
    - Dst: memprintf
      Src: /src/haproxy/src/check.c:2652,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: 2663
      start: 2616
    functionDepth: 5
    functionLinenumber: 2616
    functionLinenumberEnd: 2663
    functionName: srv_parse_check_downinter
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - warn_if_lower
    - parse_time_err
    - memprintf
    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:2672,1
    - Dst: atol
      Src: /src/haproxy/src/check.c:2683,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: 2694
      start: 2666
    functionDepth: 5
    functionLinenumber: 2666
    functionLinenumberEnd: 2694
    functionName: srv_parse_check_port
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    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:2701,1
    - Dst: atoi
      Src: /src/haproxy/src/check.c:2703,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: 2705
      start: 2697
    functionDepth: 7
    functionLinenumber: 2697
    functionLinenumberEnd: 2705
    functionName: check_parse_global_max_checks
    functionSourceFile: /src/haproxy/src/check.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - atoi
    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:
    - TRACE_DEVEL
    - eb64_lookup
    - qc_stream_frm_mv_fwd
    - BUG_ON
    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:
    - TRACE_DEVEL
    - LIST_SPLICE
    - TRACE_ENTER
    - LIST_APPEND
    - TRACE_ERROR
    - LIST_HEAD_INIT
    - qc_frm_dup
    - qc_stream_frm_is_acked
    - TRACE_LEAVE
    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: 83
    functionsReached:
    - TRACE_DEVEL
    - LIST_APPEND
    - TRACE_ERROR
    - qc_frm_dup
    - 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:
    - quic_peer_validated_addr
    - eb64_next
    - TRACE_PRINTF
    - qc_is_back
    - eb64_first
    - BUG_ON
    - eb64_entry
    - TRACE_ENTER
    - quic_may_send_bytes
    - qc_pkt_with_only_acked_frms
    - TRACE_PROTO
    - TRACE_LEAVE
    - LIST_ISEMPTY
    - 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_DEVEL
    - LIST_SPLICE
    - quic_peer_validated_addr
    - eb64_next
    - TRACE_PRINTF
    - qc_is_back
    - eb64_first
    - eb64_entry
    - TRACE_ENTER
    - quic_may_send_bytes
    - qc_pkt_with_only_acked_frms
    - TRACE_PROTO
    - LIST_HEAD_INIT
    - LIST_ISEMPTY
    - TRACE_LEAVE
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: create_aligned_pool
      Src: /src/haproxy/src/dynbuf.c:35,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:40,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:41,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:42,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:43,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/dynbuf.c:44,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/dynbuf.c:48,1
    - Dst: MAX
      Src: /src/haproxy/src/dynbuf.c:60,1
    - Dst: pool_alloc_nocache
      Src: /src/haproxy/src/dynbuf.c:65,1
    - Dst: pool_free
      Src: /src/haproxy/src/dynbuf.c:68,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 71
    functionName: init_buffer
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 1
    functionsReached:
    - pool_free
    - create_aligned_pool
    - BUG_ON
    - LIST_INIT
    - MAX
    - pool_alloc_nocache
    linkageType: ''
    returnType: int
    signature: int init_buffer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:78,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:79,1
    - Dst: b_orig
      Src: /src/haproxy/src/dynbuf.c:80,1
    - Dst: b_size
      Src: /src/haproxy/src/dynbuf.c:80,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/dynbuf.c:80,1
    - Dst: b_tail_ofs
      Src: /src/haproxy/src/dynbuf.c:80,1
    - Dst: b_data
      Src: /src/haproxy/src/dynbuf.c:80,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:82,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:83,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:88,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:90,1
    - Dst: b_orig
      Src: /src/haproxy/src/dynbuf.c:90,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:92,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:98,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:100,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:102,1
    - Dst: fprintf
      Src: /src/haproxy/src/dynbuf.c:104,1
    - Dst: isprint
      Src: /src/haproxy/src/dynbuf.c:104,1
    - Dst: b_orig
      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:110,1
    - Dst: fflush
      Src: /src/haproxy/src/dynbuf.c:111,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: 112
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 112
    functionName: buffer_dump
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - b_orig
    - b_tail_ofs
    - b_data
    - fflush
    - isprint
    - fprintf
    - b_size
    - b_head_ofs
    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:129,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dynbuf.c:129,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/dynbuf.c:131,1
    - Dst: struct buffer_wait*::wakeup_cb
      Src: /src/haproxy/src/dynbuf.c:135,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/dynbuf.c:138,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/dynbuf.c:141,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 2
    argNames:
    - from
    - count
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 144
    functionName: __offer_buffers
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - LIST_DEL_INIT
    - struct buffer_wait*::wakeup_cb
    - BUG_ON_HOT
    - LIST_ISEMPTY
    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:153,1
    - Dst: atoi
      Src: /src/haproxy/src/dynbuf.c:156,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:158,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: 169
      start: 147
    functionDepth: 7
    functionLinenumber: 147
    functionLinenumberEnd: 169
    functionName: cfg_parse_tune_buffers_limit
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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:178,1
    - Dst: atoi
      Src: /src/haproxy/src/dynbuf.c:181,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:183,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: 189
      start: 172
    functionDepth: 7
    functionLinenumber: 172
    functionLinenumberEnd: 189
    functionName: cfg_parse_tune_buffers_reserve
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - atoi
    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:199,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:203,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/dynbuf.c:207,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:209,1
    - Dst: memprintf
      Src: /src/haproxy/src/dynbuf.c:214,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: 223
      start: 192
    functionDepth: 7
    functionLinenumber: 192
    functionLinenumberEnd: 223
    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:231,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/dynbuf.c:237,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/dynbuf.c:238,1
    - Dst: pool_alloc_flag
      Src: /src/haproxy/src/dynbuf.c:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 245
    functionName: alloc_emergency_buffers_per_thread
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - pool_alloc_flag
    - _HA_ATOMIC_LOAD
    - calloc
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: int
    signature: int alloc_emergency_buffers_per_thread(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/dynbuf.c:254,1
    - Dst: ha_free
      Src: /src/haproxy/src/dynbuf.c:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 258
    functionName: free_emergency_buffers_per_thread
    functionSourceFile: /src/haproxy/src/dynbuf.c
    functionUses: 0
    functionsReached:
    - pool_free
    - ha_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: 68
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 68
    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:87,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:93,1
    - Dst: quic_tls_hp_decrypt
      Src: /src/haproxy/src/quic_rx.c:99,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:100,1
    - Dst: decode_packet_number
      Src: /src/haproxy/src/quic_rx.c:111,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:118,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: 120
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 120
    functionName: qc_do_rm_hp
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - decode_packet_number
    - quic_tls_hp_decrypt
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_PROTO
    - TRACE_LEAVE
    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:133,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:139,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:156,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:166,1
    - Dst: quic_aead_iv_build
      Src: /src/haproxy/src/quic_rx.c:175,1
    - Dst: quic_tls_decrypt
      Src: /src/haproxy/src/quic_rx.c:177,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:181,1
    - Dst: quic_tls_rotate_keys
      Src: /src/haproxy/src/quic_rx.c:187,1
    - Dst: quic_tls_key_update
      Src: /src/haproxy/src/quic_rx.c:193,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:194,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:203,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: 205
      start: 127
    functionDepth: 4
    functionLinenumber: 127
    functionLinenumberEnd: 205
    functionName: qc_pkt_decrypt
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - quic_tls_rotate_keys
    - TRACE_ENTER
    - quic_aead_iv_build
    - TRACE_ERROR
    - TRACE_PROTO
    - qc_select_tls_ctx
    - quic_tls_key_update
    - TRACE_LEAVE
    - quic_tls_decrypt
    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:216,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:217,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/quic_rx.c:234,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:236,1
    - Dst: qc_release_frm
      Src: /src/haproxy/src/quic_rx.c:237,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:241,1
    - Dst: qc_stream_desc_ack
      Src: /src/haproxy/src/quic_rx.c:243,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:247,1
    - Dst: qc_stream_desc_done
      Src: /src/haproxy/src/quic_rx.c:250,1
    - Dst: qc_stream_desc_free
      Src: /src/haproxy/src/quic_rx.c:252,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:255,1
    - Dst: qc_check_close_on_released_mux
      Src: /src/haproxy/src/quic_rx.c:256,1
    - Dst: qc_release_frm
      Src: /src/haproxy/src/quic_rx.c:259,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:262,1
    - Dst: qc_release_frm
      Src: /src/haproxy/src/quic_rx.c:264,1
    - Dst: qc_release_frm
      Src: /src/haproxy/src/quic_rx.c:274,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:279,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 2
    argNames:
    - qc
    - frm
    argTypes:
    - struct quic_conn*
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 212
    functionDepth: 5
    functionLinenumber: 212
    functionLinenumberEnd: 281
    functionName: qc_handle_newly_acked_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - eb64_lookup
    - qc_check_close_on_released_mux
    - eb64_entry
    - qc_stream_desc_done
    - TRACE_ENTER
    - TRACE_PROTO
    - qc_release_frm
    - qc_stream_desc_free
    - qc_stream_desc_ack
    - TRACE_LEAVE
    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:296,1
    - Dst: eb64_lookup_ge
      Src: /src/haproxy/src/quic_rx.c:298,1
    - Dst: eb64_lookup_le
      Src: /src/haproxy/src/quic_rx.c:302,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:307,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:308,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_rx.c:309,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:310,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:314,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: 315
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 315
    functionName: qc_newly_acked_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - eb64_lookup_ge
    - eb64_next
    - eb64_delete
    - eb64_lookup_le
    - eb64_entry
    - TRACE_ENTER
    - LIST_APPEND
    - TRACE_LEAVE
    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:327,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:333,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:334,1
    - Dst: qc_handle_newly_acked_frm
      Src: /src/haproxy/src/quic_rx.c:335,1
    - Dst: quic_tx_packet_dgram_detach
      Src: /src/haproxy/src/quic_rx.c:341,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:342,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:347,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: 349
      start: 321
    functionDepth: 6
    functionLinenumber: 321
    functionLinenumberEnd: 349
    functionName: qc_handle_newly_acked_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_tx_packet_dgram_detach
    - qc_handle_newly_acked_frm
    - list_for_each_entry_safe
    - eb64_delete
    - TRACE_ENTER
    - TRACE_LEAVE
    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:333,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:334,1
    - Dst: qc_handle_newly_acked_frm
      Src: /src/haproxy/src/quic_rx.c:335,1
    - Dst: quic_tx_packet_dgram_detach
      Src: /src/haproxy/src/quic_rx.c:341,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 329
    functionDepth: 6
    functionLinenumber: 329
    functionLinenumberEnd: 343
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 86
    functionsReached:
    - TRACE_DEVEL
    - quic_tx_packet_dgram_detach
    - qc_handle_newly_acked_frm
    - list_for_each_entry_safe
    - eb64_delete
    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:367,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:371,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:372,1
    - Dst: qc_frm_unref
      Src: /src/haproxy/src/quic_rx.c:376,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_rx.c:380,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:381,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:393,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:396,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:397,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:402,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:403,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:405,1
    - Dst: QUIC_TUNE_FB_GET
      Src: /src/haproxy/src/quic_rx.c:408,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:411,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:412,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:412,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:413,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:417,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:418,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:423,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: 425
      start: 358
    functionDepth: 3
    functionLinenumber: 358
    functionLinenumberEnd: 425
    functionName: qc_handle_frms_of_lost_pkt
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 2
    functionsReached:
    - TRACE_DEVEL
    - quic_err_transport
    - LIST_DEL_INIT
    - TRACE_ENTER
    - LIST_APPEND
    - quic_tx_packet_refdec
    - qc_frm_free
    - qc_frm_unref
    - TRACE_ERROR
    - qc_notify_err
    - quic_set_connection_close
    - QUIC_TUNE_FB_GET
    - qc_stream_frm_is_acked
    - TRACE_LEAVE
    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:371,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:372,1
    - Dst: qc_frm_unref
      Src: /src/haproxy/src/quic_rx.c:376,1
    - Dst: qc_stream_frm_is_acked
      Src: /src/haproxy/src/quic_rx.c:380,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:381,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:393,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:396,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:397,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:402,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:403,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:405,1
    - Dst: QUIC_TUNE_FB_GET
      Src: /src/haproxy/src/quic_rx.c:408,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:411,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:412,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:412,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:413,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:417,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:418,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 369
    functionDepth: 3
    functionLinenumber: 369
    functionLinenumberEnd: 420
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 86
    functionsReached:
    - TRACE_DEVEL
    - quic_err_transport
    - LIST_DEL_INIT
    - LIST_APPEND
    - quic_tx_packet_refdec
    - qc_frm_free
    - qc_frm_unref
    - TRACE_ERROR
    - qc_notify_err
    - quic_set_connection_close
    - QUIC_TUNE_FB_GET
    - 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:440,1
    - Dst: task_mono_time
      Src: /src/haproxy/src/quic_rx.c:442,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:444,1
    - Dst: qc_treat_ack_of_ack
      Src: /src/haproxy/src/quic_rx.c:456,1
    - Dst: quic_cc_event
      Src: /src/haproxy/src/quic_rx.c:463,1
    - Dst: quic_cc_drs_update_rate_sample
      Src: /src/haproxy/src/quic_rx.c:466,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:467,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:468,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:476,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:479,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: 481
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 481
    functionName: qc_notify_cc_of_newly_acked_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - quic_cc_drs_update_rate_sample
    - qc_treat_ack_of_ack
    - TRACE_ENTER
    - LIST_DEL_INIT
    - quic_tx_packet_refdec
    - quic_cc_event
    - quic_cc_drs_on_ack_recv
    - struct quic_cc_path*::cc::algo::on_ack_rcvd
    - task_mono_time
    - struct quic_cc_path*::cc::algo::get_drs
    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:456,1
    - Dst: quic_cc_event
      Src: /src/haproxy/src/quic_rx.c:463,1
    - Dst: quic_cc_drs_update_rate_sample
      Src: /src/haproxy/src/quic_rx.c:466,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:467,1
    - Dst: quic_tx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:468,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 469
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 86
    functionsReached:
    - quic_cc_drs_update_rate_sample
    - LIST_DEL_INIT
    - qc_treat_ack_of_ack
    - quic_tx_packet_refdec
    - quic_cc_event
    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:500,1
    - Dst: LIST_HEAD_INIT
      Src: /src/haproxy/src/quic_rx.c:501,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:505,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:509,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:515,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/quic_rx.c:527,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:529,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:533,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:539,1
    - Dst: qc_newly_acked_pkts
      Src: /src/haproxy/src/quic_rx.c:544,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_rx.c:549,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:550,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:555,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_rx.c:561,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:562,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:567,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:577,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_rx.c:581,1
    - Dst: qc_handle_newly_acked_pkts
      Src: /src/haproxy/src/quic_rx.c:584,1
    - Dst: tick_remain
      Src: /src/haproxy/src/quic_rx.c:588,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/quic_rx.c:592,1
    - Dst: qc_packet_loss_lookup
      Src: /src/haproxy/src/quic_rx.c:593,1
    - Dst: qc_release_lost_pkts
      Src: /src/haproxy/src/quic_rx.c:594,1
    - Dst: qc_notify_cc_of_newly_acked_pkts
      Src: /src/haproxy/src/quic_rx.c:598,1
    - Dst: quic_peer_validated_addr
      Src: /src/haproxy/src/quic_rx.c:600,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_rx.c:602,1
    - Dst: qc_notify_send
      Src: /src/haproxy/src/quic_rx.c:603,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:608,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:613,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:614,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_rx.c:615,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: 618
      start: 489
    functionDepth: 7
    functionLinenumber: 489
    functionLinenumberEnd: 618
    functionName: qc_parse_ack_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_peer_validated_addr
    - eb64_entry
    - eb_is_empty
    - TRACE_LEAVE
    - qc_packet_loss_lookup
    - quic_dec_int
    - qc_notify_cc_of_newly_acked_pkts
    - list_for_each_entry_safe
    - tick_remain
    - LIST_ISEMPTY
    - qc_handle_newly_acked_pkts
    - qc_newly_acked_pkts
    - eb64_insert
    - LIST_DEL_INIT
    - TRACE_PROTO
    - eb64_lookup
    - TRACE_ENTER
    - qc_release_lost_pkts
    - TRACE_ERROR
    - qc_notify_send
    - LIST_HEAD_INIT
    - qc_set_timer
    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:640,1
    - Dst: qcc_recv
      Src: /src/haproxy/src/quic_rx.c:642,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:646,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: 648
      start: 626
    functionDepth: 10
    functionLinenumber: 626
    functionLinenumberEnd: 648
    functionName: qc_handle_strm_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - qcc_recv
    - TRACE_ENTER
    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:674,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_rx.c:676,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:681,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:687,1
    - Dst: quic_get_ncbuf
      Src: /src/haproxy/src/quic_rx.c:696,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/quic_rx.c:696,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:697,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/quic_rx.c:712,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:713,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:714,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:714,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/quic_rx.c:718,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:720,1
    - Dst: ncbmb_data
      Src: /src/haproxy/src/quic_rx.c:723,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/quic_rx.c:724,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_rx.c:725,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:729,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:733,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: 735
      start: 658
    functionDepth: 2
    functionLinenumber: 658
    functionLinenumberEnd: 735
    functionName: qc_handle_crypto_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_err_transport
    - HA_ATOMIC_OR
    - ncbmb_is_null
    - unlikely
    - tasklet_wakeup
    - ncbmb_add
    - ncbmb_size
    - BUG_ON
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_PROTO
    - ncbmb_data
    - quic_get_ncbuf
    - quic_set_connection_close
    - TRACE_LEAVE
    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:751,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:759,1
    - Dst: eb64_lookup
      Src: /src/haproxy/src/quic_rx.c:768,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:770,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:774,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_rx.c:778,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:779,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:787,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:790,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:790,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:791,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: 793
      start: 741
    functionDepth: 2
    functionLinenumber: 741
    functionLinenumberEnd: 793
    functionName: qc_handle_retire_connection_id_frm
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - eb64_lookup
    - quic_err_transport
    - memcmp
    - eb64_entry
    - TRACE_ENTER
    - qc_notify_err
    - TRACE_PROTO
    - quic_set_connection_close
    - TRACE_LEAVE
    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: 803
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 803
    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: 59
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:816,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:831,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:831,1
    - Dst: qc_frm_alloc
      Src: /src/haproxy/src/quic_rx.c:836,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:837,1
    - Dst: qc_parse_frm
      Src: /src/haproxy/src/quic_rx.c:841,1
    - Dst: qc_parse_ack_frm
      Src: /src/haproxy/src/quic_rx.c:857,1
    - Dst: quic_application_pktns
      Src: /src/haproxy/src/quic_rx.c:865,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_rx.c:867,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_rx.c:867,1
    - Dst: quic_ack_delay_ms
      Src: /src/haproxy/src/quic_rx.c:867,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/quic_rx.c:868,1
    - Dst: quic_ack_delay_ms
      Src: /src/haproxy/src/quic_rx.c:868,1
    - Dst: quic_loss_srtt_update
      Src: /src/haproxy/src/quic_rx.c:869,1
    - Dst: qcc_recv_reset_stream
      Src: /src/haproxy/src/quic_rx.c:876,1
    - Dst: qcc_recv_stop_sending
      Src: /src/haproxy/src/quic_rx.c:883,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:885,1
    - Dst: qc_handle_crypto_frm
      Src: /src/haproxy/src/quic_rx.c:892,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:896,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:897,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:905,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:905,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/quic_rx.c:920,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:926,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:929,1
    - Dst: qc_h3_request_reject
      Src: /src/haproxy/src/quic_rx.c:931,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:932,1
    - Dst: qc_handle_strm_frm
      Src: /src/haproxy/src/quic_rx.c:946,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:947,1
    - Dst: qcc_recv_max_data
      Src: /src/haproxy/src/quic_rx.c:956,1
    - Dst: qcc_recv_max_stream_data
      Src: /src/haproxy/src/quic_rx.c:962,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:964,1
    - Dst: qcc_recv_max_streams
      Src: /src/haproxy/src/quic_rx.c:984,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:985,1
    - Dst: qc_handle_retire_connection_id_frm
      Src: /src/haproxy/src/quic_rx.c:1009,1
    - Dst: quic_cid_delete
      Src: /src/haproxy/src/quic_rx.c:1015,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:1016,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:1017,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1018,1
    - Dst: new_quic_cid
      Src: /src/haproxy/src/quic_rx.c:1020,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1022,1
    - Dst: _quic_cid_insert
      Src: /src/haproxy/src/quic_rx.c:1025,1
    - Dst: qc_build_new_connection_id_frm
      Src: /src/haproxy/src/quic_rx.c:1026,1
    - Dst: quic_conn_closed_err_count_inc
      Src: /src/haproxy/src/quic_rx.c:1037,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_rx.c:1039,1
    - Dst: qc_detach_th_ctx_list
      Src: /src/haproxy/src/quic_rx.c:1050,1
    - Dst: qc_idle_timer_do_rearm
      Src: /src/haproxy/src/quic_rx.c:1051,1
    - Dst: qc_notify_err
      Src: /src/haproxy/src/quic_rx.c:1052,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:1056,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1057,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:1066,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:1066,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/quic_rx.c:1074,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:1079,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1085,1
    - Dst: qc_prep_hdshk_fast_retrans
      Src: /src/haproxy/src/quic_rx.c:1086,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:1094,1
    - Dst: quic_tls_pktns_is_dcd
      Src: /src/haproxy/src/quic_rx.c:1096,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1098,1
    - Dst: quic_pktns_discard
      Src: /src/haproxy/src/quic_rx.c:1099,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_rx.c:1100,1
    - Dst: qc_el_rx_pkts_del
      Src: /src/haproxy/src/quic_rx.c:1101,1
    - Dst: qc_release_pktns_frms
      Src: /src/haproxy/src/quic_rx.c:1102,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1109,1
    - Dst: qc_frm_free
      Src: /src/haproxy/src/quic_rx.c:1114,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:1116,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 211
    argCount: 3
    argNames:
    - qc
    - pkt
    - qel
    argTypes:
    - struct quic_conn*
    - struct quic_rx_packet*
    - struct quic_enc_level*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 809
    functionDepth: 11
    functionLinenumber: 809
    functionLinenumberEnd: 1118
    functionName: qc_parse_pkt_frms
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - qc_parse_frm
    - quic_loss_srtt_update
    - TRACE_DEVEL
    - qcc_recv_reset_stream
    - quic_stream_is_uni
    - pool_free
    - TRACE_DATA
    - qc_parse_ack_frm
    - qcc_recv_max_data
    - quic_set_connection_close
    - qc_frm_alloc
    - ABORT_NOW
    - quic_pktns_discard
    - TRACE_LEAVE
    - qc_build_new_connection_id_frm
    - qc_handle_crypto_frm
    - qc_handle_retire_connection_id_frm
    - _quic_cid_insert
    - QUIC_MIN
    - qc_el_rx_pkts_del
    - qc_detach_th_ctx_list
    - qcc_recv_stop_sending
    - qc_frm_free
    - TRACE_PROTO
    - quic_tls_pktns_is_dcd
    - qc_release_pktns_frms
    - MS_TO_TICKS
    - quic_cid_delete
    - qc_h3_request_reject
    - quic_err_transport
    - qcc_recv_max_stream_data
    - quic_ack_delay_ms
    - qc_is_back
    - eb64_delete
    - new_quic_cid
    - qc_handle_strm_frm
    - TRACE_ENTER
    - TRACE_STATE
    - TRACE_ERROR
    - qc_notify_err
    - qc_prep_hdshk_fast_retrans
    - qc_set_timer
    - qc_idle_timer_do_rearm
    - quic_conn_closed_err_count_inc
    - quic_application_pktns
    - qcc_recv_max_streams
    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:1130,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: 1142
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1142
    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:1151,1
    - Dst: qc_is_back
      Src: /src/haproxy/src/quic_rx.c:1153,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1154,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:1159,1
    - Dst: qc_select_tls_ctx
      Src: /src/haproxy/src/quic_rx.c:1162,1
    - Dst: qc_do_rm_hp
      Src: /src/haproxy/src/quic_rx.c:1163,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1165,1
    - Dst: qc_handle_spin_bit
      Src: /src/haproxy/src/quic_rx.c:1168,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_rx.c:1173,1
    - Dst: quic_rx_packet_refinc
      Src: /src/haproxy/src/quic_rx.c:1174,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1175,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/quic_rx.c:1177,1
    - Dst: quic_rx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:1178,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1182,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: 1183
      start: 1147
    functionDepth: 2
    functionLinenumber: 1147
    functionLinenumberEnd: 1183
    functionName: qc_rm_hp_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - quic_rx_packet_refinc
    - list_for_each_entry_safe
    - quic_rx_packet_refdec
    - qc_is_back
    - eb64_insert
    - qc_handle_spin_bit
    - TRACE_ENTER
    - LIST_DEL_INIT
    - TRACE_ERROR
    - TRACE_PROTO
    - qc_select_tls_ctx
    - qc_do_rm_hp
    - TRACE_LEAVE
    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:1194,1
    - Dst: quic_tls_has_rx_sec
      Src: /src/haproxy/src/quic_rx.c:1199,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1200,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1205,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1212,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1218,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: 1220
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1220
    functionName: qc_qel_may_rm_hp
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_PROTO
    - quic_tls_has_rx_sec
    - TRACE_ENTER
    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:1233,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/quic_rx.c:1235,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/quic_rx.c:1237,1
    - Dst: qc_qel_may_rm_hp
      Src: /src/haproxy/src/quic_rx.c:1237,1
    - Dst: qc_rm_hp_pkts
      Src: /src/haproxy/src/quic_rx.c:1238,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_rx.c:1240,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:1244,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:1245,1
    - Dst: qc_pkt_decrypt
      Src: /src/haproxy/src/quic_rx.c:1247,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1249,1
    - Dst: qc_parse_pkt_frms
      Src: /src/haproxy/src/quic_rx.c:1253,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1255,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/quic_rx.c:1271,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:1274,1
    - Dst: HA_ATOMIC_DEC
      Src: /src/haproxy/src/quic_rx.c:1275,1
    - Dst: quic_update_ack_ranges_list
      Src: /src/haproxy/src/quic_rx.c:1279,1
    - Dst: qc_idle_timer_rearm
      Src: /src/haproxy/src/quic_rx.c:1287,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1296,1
    - Dst: eb64_next
      Src: /src/haproxy/src/quic_rx.c:1301,1
    - Dst: eb64_delete
      Src: /src/haproxy/src/quic_rx.c:1302,1
    - Dst: quic_rx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:1303,1
    - Dst: qc_enc_level_free
      Src: /src/haproxy/src/quic_rx.c:1316,1
    - Dst: quic_pktns_release
      Src: /src/haproxy/src/quic_rx.c:1317,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1326,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 59
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1225
    functionDepth: 12
    functionLinenumber: 1225
    functionLinenumberEnd: 1328
    functionName: qc_treat_rx_pkts
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_DEC
    - eb64_next
    - qc_pkt_decrypt
    - TRACE_DATA
    - eb64_entry
    - qc_parse_pkt_frms
    - TRACE_LEAVE
    - qc_enc_level_free
    - quic_rx_packet_refdec
    - list_for_each_entry_safe
    - eb64_first
    - qc_rm_hp_pkts
    - LIST_ISEMPTY
    - qc_qel_may_rm_hp
    - quic_pktns_release
    - BUG_ON
    - quic_update_ack_ranges_list
    - eb64_delete
    - qc_idle_timer_rearm
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    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:1339,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1342,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1350,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1362,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:1366,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1375,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:1380,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1386,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: 1388
      start: 1333
    functionDepth: 1
    functionLinenumber: 1333
    functionLinenumberEnd: 1388
    functionName: quic_packet_read_long_header
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - TRACE_ERROR
    - memcpy
    - TRACE_ENTER
    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:1413,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:1414,1
    - Dst: quic_packet_type_enc_level
      Src: /src/haproxy/src/quic_rx.c:1422,1
    - Dst: qc_quic_enc_level
      Src: /src/haproxy/src/quic_rx.c:1423,1
    - Dst: qel_to_qel_addr
      Src: /src/haproxy/src/quic_rx.c:1425,1
    - Dst: qel_to_quic_pktns
      Src: /src/haproxy/src/quic_rx.c:1426,1
    - Dst: qc_enc_level_alloc
      Src: /src/haproxy/src/quic_rx.c:1428,1
    - Dst: quic_to_ssl_enc_level
      Src: /src/haproxy/src/quic_rx.c:1428,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1429,1
    - Dst: qc_qel_may_rm_hp
      Src: /src/haproxy/src/quic_rx.c:1436,1
    - Dst: qc_select_tls_ctx
      Src: /src/haproxy/src/quic_rx.c:1438,1
    - Dst: qc_do_rm_hp
      Src: /src/haproxy/src/quic_rx.c:1444,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1446,1
    - Dst: qc_handle_spin_bit
      Src: /src/haproxy/src/quic_rx.c:1450,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1454,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1458,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1461,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:1462,1
    - Dst: quic_rx_packet_refinc
      Src: /src/haproxy/src/quic_rx.c:1463,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:1468,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:1469,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_rx.c:1469,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_rx.c:1470,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_rx.c:1471,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1475,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: 1477
      start: 1404
    functionDepth: 5
    functionLinenumber: 1404
    functionLinenumberEnd: 1477
    functionName: qc_try_rm_hp
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - quic_to_ssl_enc_level
    - b_tail
    - qel_to_qel_addr
    - TRACE_LEAVE
    - quic_rx_packet_refinc
    - qc_qel_may_rm_hp
    - BUG_ON
    - qc_handle_spin_bit
    - LIST_APPEND
    - TRACE_PROTO
    - quic_packet_type_enc_level
    - TRACE_ENTER
    - qc_quic_enc_level
    - qc_enc_level_alloc
    - qc_select_tls_ctx
    - qc_do_rm_hp
    - qel_to_quic_pktns
    - memcpy
    - b_add
    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:1491,1
    - Dst: read_u32
      Src: /src/haproxy/src/quic_rx.c:1491,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: 1495
      start: 1484
    functionDepth: 1
    functionLinenumber: 1484
    functionLinenumberEnd: 1495
    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:1511,1
    - Dst: quic_read_uint32
      Src: /src/haproxy/src/quic_rx.c:1521,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1522,1
    - Dst: qc_supported_version
      Src: /src/haproxy/src/quic_rx.c:1526,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1557,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: 1559
      start: 1504
    functionDepth: 2
    functionLinenumber: 1504
    functionLinenumberEnd: 1559
    functionName: qc_parse_hd_form
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 1
    functionsReached:
    - qc_supported_version
    - quic_read_uint32
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_LEAVE
    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: 1573
      start: 1566
    functionDepth: 0
    functionLinenumber: 1566
    functionLinenumberEnd: 1573
    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:1586,1
    - Dst: quic_retry_token_check
      Src: /src/haproxy/src/quic_rx.c:1590,1
    - Dst: quic_token_check
      Src: /src/haproxy/src/quic_rx.c:1593,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1600,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1609,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:1612,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: 1614
      start: 1579
    functionDepth: 3
    functionLinenumber: 1579
    functionLinenumberEnd: 1614
    functionName: quic_token_validate
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - quic_token_check
    - quic_retry_token_check
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_PROTO
    - TRACE_LEAVE
    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: 23
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1638,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/quic_rx.c:1643,1
    - Dst: retrieve_qc_conn_from_cid
      Src: /src/haproxy/src/quic_rx.c:1645,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_rx.c:1648,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:1655,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_rx.c:1662,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_rx.c:1662,1
    - Dst: quic_listener_max_handshake
      Src: /src/haproxy/src/quic_rx.c:1663,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:1664,1
    - Dst: unlikely
      Src: /src/haproxy/src/quic_rx.c:1669,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_rx.c:1669,1
    - Dst: quic_listener_max_accept
      Src: /src/haproxy/src/quic_rx.c:1670,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:1671,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1677,1
    - Dst: quic_token_validate
      Src: /src/haproxy/src/quic_rx.c:1679,1
    - Dst: send_retry
      Src: /src/haproxy/src/quic_rx.c:1681,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1682,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:1686,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1695,1
    - Dst: quic_init_exec_rules
      Src: /src/haproxy/src/quic_rx.c:1698,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/quic_rx.c:1699,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/quic_rx.c:1706,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1709,1
    - Dst: send_retry
      Src: /src/haproxy/src/quic_rx.c:1711,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1712,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:1717,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1729,1
    - Dst: new_quic_cid
      Src: /src/haproxy/src/quic_rx.c:1743,1
    - Dst: qc_new_conn
      Src: /src/haproxy/src/quic_rx.c:1747,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:1751,1
    - Dst: quic_hash64_from_cid
      Src: /src/haproxy/src/quic_rx.c:1757,1
    - Dst: quic_cid_insert
      Src: /src/haproxy/src/quic_rx.c:1760,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:1761,1
    - Dst: quic_conn_release
      Src: /src/haproxy/src/quic_rx.c:1762,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_rx.c:1770,1
    - Dst: quic_set_connection_close
      Src: /src/haproxy/src/quic_rx.c:1775,1
    - Dst: quic_err_transport
      Src: /src/haproxy/src/quic_rx.c:1775,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1786,1
    - Dst: send_stateless_reset
      Src: /src/haproxy/src/quic_rx.c:1787,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1788,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1793,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:1797,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:1799,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 108
    argCount: 4
    argNames:
    - pkt
    - dgram
    - l
    - new_tid
    argTypes:
    - struct quic_rx_packet*
    - struct quic_dgram*
    - struct listener*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1801
      start: 1628
    functionDepth: 7
    functionLinenumber: 1628
    functionLinenumberEnd: 1801
    functionName: quic_rx_pkt_retrieve_conn
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - quic_token_validate
    - quic_hash64_from_cid
    - unlikely
    - pool_free
    - quic_conn_release
    - TRACE_DATA
    - retrieve_qc_conn_from_cid
    - qc_new_conn
    - EXTRA_COUNTERS_GET
    - quic_set_connection_close
    - send_stateless_reset
    - TRACE_LEAVE
    - send_retry
    - quic_init_exec_rules
    - TRACE_USER
    - quic_cid_insert
    - eb64_insert
    - BUG_ON
    - HA_ATOMIC_LOAD
    - quic_listener_max_handshake
    - TRACE_PROTO
    - quic_err_transport
    - new_quic_cid
    - TRACE_ENTER
    - TRACE_ERROR
    - BUG_ON_HOT
    - quic_listener_max_accept
    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: 31
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/src/quic_rx.c:1820,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:1822,1
    - Dst: qc_counters
      Src: /src/haproxy/src/quic_rx.c:1824,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1827,1
    - Dst: quic_padding_check
      Src: /src/haproxy/src/quic_rx.c:1834,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1844,1
    - Dst: qc_parse_hd_form
      Src: /src/haproxy/src/quic_rx.c:1849,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1850,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1856,1
    - Dst: quic_packet_read_long_header
      Src: /src/haproxy/src/quic_rx.c:1858,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1859,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_rx.c:1868,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1869,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1875,1
    - Dst: send_version_negotiation
      Src: /src/haproxy/src/quic_rx.c:1884,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1885,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1889,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_rx.c:1899,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1901,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1908,1
    - Dst: quic_retry_packet_check
      Src: /src/haproxy/src/quic_rx.c:1918,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_rx.c:1922,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:1924,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:1927,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:1934,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:1937,1
    - Dst: quic_pktns_discard
      Src: /src/haproxy/src/quic_rx.c:1942,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_rx.c:1943,1
    - Dst: qc_el_rx_pkts_del
      Src: /src/haproxy/src/quic_rx.c:1944,1
    - Dst: quic_tls_ctx_secs_free
      Src: /src/haproxy/src/quic_rx.c:1948,1
    - Dst: qc_new_isecs
      Src: /src/haproxy/src/quic_rx.c:1949,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_rx.c:1953,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1960,1
    - Dst: quic_dec_int
      Src: /src/haproxy/src/quic_rx.c:1966,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1968,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:1993,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:1994,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:2011,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2019,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2025,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2027,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_rx.c:2031,1
    - Dst: memcmp
      Src: /src/haproxy/src/quic_rx.c:2039,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2040,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2051,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2052,1
    - Dst: HA_ATOMIC_INC
      Src: /src/haproxy/src/quic_rx.c:2057,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2061,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2062,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 160
    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: 2064
      start: 1814
    functionDepth: 3
    functionLinenumber: 1814
    functionLinenumberEnd: 2064
    functionName: quic_rx_pkt_parse
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_INC
    - quic_retry_packet_check
    - pool_alloc
    - quic_pktns_discard
    - qc_counters
    - quic_dec_int
    - qc_new_isecs
    - TRACE_LEAVE
    - qc_parse_hd_form
    - qc_el_rx_pkts_del
    - tasklet_wakeup
    - TRACE_PROTO
    - send_version_negotiation
    - quic_padding_check
    - memcmp
    - TRACE_ENTER
    - objt_listener
    - TRACE_ERROR
    - quic_tls_ctx_secs_free
    - qc_set_timer
    - quic_packet_read_long_header
    - memcpy
    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:2080,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: 2090
      start: 2074
    functionDepth: 1
    functionLinenumber: 2074
    functionLinenumberEnd: 2090
    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:2101,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_rx.c:2102,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_rx.c:2106,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_rx.c:2107,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/quic_rx.c:2110,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_rx.c:2111,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_rx.c:2112,1
    - Dst: b_head
      Src: /src/haproxy/src/quic_rx.c:2113,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_rx.c:2115,1
    - Dst: b_del
      Src: /src/haproxy/src/quic_rx.c:2123,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/quic_rx.c:2124,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:2125,1
    - Dst: b_realign_if_empty
      Src: /src/haproxy/src/quic_rx.c:2129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2130
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2130
    functionName: quic_rx_pkts_del
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - b_realign_if_empty
    - LIST_DELETE
    - pool_free
    - list_for_each_entry_safe
    - b_contig_data
    - TRACE_PRINTF
    - b_del
    - b_head
    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:2154,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2155,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2159,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/quic_rx.c:2161,1
    - Dst: qc_set_timer
      Src: /src/haproxy/src/quic_rx.c:2167,1
    - Dst: tick_isset
      Src: /src/haproxy/src/quic_rx.c:2168,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/quic_rx.c:2168,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/quic_rx.c:2169,1
    - Dst: quic_tls_pkt_type_pktns_dcd
      Src: /src/haproxy/src/quic_rx.c:2173,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2174,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2179,1
    - Dst: quic_rx_pkts_del
      Src: /src/haproxy/src/quic_rx.c:2185,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_rx.c:2186,1
    - Dst: TRACE_PRINTF
      Src: /src/haproxy/src/quic_rx.c:2188,1
    - Dst: b_tail
      Src: /src/haproxy/src/quic_rx.c:2191,1
    - Dst: b_wrap
      Src: /src/haproxy/src/quic_rx.c:2191,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2192,1
    - Dst: b_putchr
      Src: /src/haproxy/src/quic_rx.c:2200,1
    - Dst: b_add
      Src: /src/haproxy/src/quic_rx.c:2203,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/quic_rx.c:2204,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2205,1
    - Dst: qc_try_rm_hp
      Src: /src/haproxy/src/quic_rx.c:2212,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2213,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/quic_rx.c:2217,1
    - Dst: quic_rx_packet_refinc
      Src: /src/haproxy/src/quic_rx.c:2221,1
    - Dst: eb64_insert
      Src: /src/haproxy/src/quic_rx.c:2222,1
    - Dst: tasklet_wakeup_after
      Src: /src/haproxy/src/quic_rx.c:2225,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2229,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2230,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/quic_rx.c:2235,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2236,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: 2237
      start: 2146
    functionDepth: 6
    functionLinenumber: 2146
    functionLinenumberEnd: 2237
    functionName: qc_rx_pkt_handle
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - task_wakeup
    - TRACE_DATA
    - b_tail
    - quic_tls_pkt_type_pktns_dcd
    - TRACE_LEAVE
    - tick_isset
    - tasklet_wakeup_after
    - tick_is_lt
    - quic_rx_packet_refinc
    - qc_try_rm_hp
    - TRACE_PRINTF
    - eb64_insert
    - TRACE_PROTO
    - b_wrap
    - b_putchr
    - b_contig_space
    - quic_rx_pkts_del
    - TRACE_ENTER
    - qc_set_timer
    - b_add
    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: TRACE_ENTER
      Src: /src/haproxy/src/quic_rx.c:2267,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/quic_rx.c:2272,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:2274,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/quic_rx.c:2278,1
    - Dst: quic_rx_packet_refinc
      Src: /src/haproxy/src/quic_rx.c:2297,1
    - Dst: quic_rx_pkt_parse
      Src: /src/haproxy/src/quic_rx.c:2298,1
    - Dst: objt_listener
      Src: /src/haproxy/src/quic_rx.c:2307,1
    - Dst: quic_rx_pkt_retrieve_conn
      Src: /src/haproxy/src/quic_rx.c:2309,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/src/quic_rx.c:2315,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/quic_rx.c:2317,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:2318,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/quic_rx.c:2331,1
    - Dst: eb64_entry
      Src: /src/haproxy/src/quic_rx.c:2332,1
    - Dst: eb64_first
      Src: /src/haproxy/src/quic_rx.c:2332,1
    - Dst: qc_finalize_tid_rebind
      Src: /src/haproxy/src/quic_rx.c:2336,1
    - Dst: qc_rx_check_closing
      Src: /src/haproxy/src/quic_rx.c:2338,1
    - Dst: ipcmp
      Src: /src/haproxy/src/quic_rx.c:2345,1
    - Dst: qc_handle_conn_migration
      Src: /src/haproxy/src/quic_rx.c:2346,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/quic_rx.c:2348,1
    - Dst: qc_rx_pkt_handle
      Src: /src/haproxy/src/quic_rx.c:2354,1
    - Dst: quic_rx_packet_refdec
      Src: /src/haproxy/src/quic_rx.c:2358,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:2362,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/quic_rx.c:2362,1
    - Dst: pool_free
      Src: /src/haproxy/src/quic_rx.c:2363,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:2374,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/quic_rx.c:2375,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/quic_rx.c:2377,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2380,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/quic_rx.c:2385,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_rx.c:2386,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 87
    argCount: 3
    argNames:
    - dgram
    - from_qc
    - o
    argTypes:
    - struct quic_dgram*
    - struct quic_conn*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2259
    functionDepth: 8
    functionLinenumber: 2259
    functionLinenumberEnd: 2388
    functionName: quic_dgram_parse
    functionSourceFile: /src/haproxy/src/quic_rx.c
    functionUses: 2
    functionsReached:
    - quic_rx_pkt_parse
    - qc_rx_pkt_handle
    - pool_free
    - HA_ATOMIC_STORE
    - eb64_entry
    - pool_alloc
    - ipcmp
    - LIST_INLIST
    - TRACE_LEAVE
    - MT_LIST_APPEND
    - qc_rx_check_closing
    - quic_rx_packet_refdec
    - eb64_first
    - qc_handle_conn_migration
    - LIST_INIT
    - qc_finalize_tid_rebind
    - tasklet_wakeup
    - quic_rx_packet_refinc
    - BUG_ON
    - quic_rx_pkt_retrieve_conn
    - TRACE_ENTER
    - TRACE_ERROR
    - objt_listener
    - BUG_ON_HOT
    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:
    - 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
    - strerror
    - capset
    - capget
    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
    - prctl
    - capset
    - strerror
    - 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
    - strerror
    - ha_alert
    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:
    - strcmp
    - memprintf
    - 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:
    - TO_STR
    - printf
    - ceb_imm_default_dump_tree
    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: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    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: 119
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 119
    functionName: h3_debug_hexdump
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: h3_debug_hexdump(...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:188,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:191,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/h3.c:191,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:193,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:196,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:203,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:204,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:205,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:219,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:220,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:221,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:231,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:232,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:233,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:247,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/h3.c:248,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:255,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:259,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 3
    argNames:
    - h3c
    - qcs
    - b
    argTypes:
    - struct h3c*
    - struct qcs*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 180
    functionDepth: 5
    functionLinenumber: 180
    functionLinenumberEnd: 261
    functionName: h3_init_uni_stream
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_stream_is_uni
    - b_quic_dec_int
    - TRACE_DATA
    - BUG_ON
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - qcc_set_error
    - qcc_abort_stream_read
    - qcc_report_glitch
    - TRACE_LEAVE
    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:274,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/h3.c:274,1
    - Dst: qpack_decode_dec
      Src: /src/haproxy/src/h3.c:278,1
    - Dst: qpack_decode_enc
      Src: /src/haproxy/src/h3.c:282,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/h3.c:288,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - qcs
    - b
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 293
    functionName: h3_parse_uni_stream_no_h3
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - qpack_decode_dec
    - quic_stream_is_uni
    - BUG_ON
    - 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:307,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:308,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: 313
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 313
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:325,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 33
    argCount: 3
    argNames:
    - h3c
    - qcs
    - ftype
    argTypes:
    - struct h3c*
    - struct qcs*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 437
    functionName: h3_check_frame_valid
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - 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:452,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:455,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:472,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:474,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - qcs
    - fin
    argTypes:
    - struct qcs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 480
    functionName: h3_check_body_size
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - TRACE_ENTER
    - TRACE_ERROR
    - qcc_report_glitch
    - TRACE_LEAVE
    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:500,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:500,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:501,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:506,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:507,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: 513
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 513
    functionName: h3_set_authority
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - isttest
    - isteq
    - istlen
    - TRACE_ERROR
    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:519,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:520,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h3.c:520,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:521,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - qcs
    - h
    argTypes:
    - struct qcs*
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 529
    functionName: _h3_handle_phdr
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_ERROR
    - http_header_has_forbidden_char
    - ist_find_ctl
    - unlikely
    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:539,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:539,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:542,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:542,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:543,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:547,1
    - Dst: istptr
      Src: /src/haproxy/src/h3.c:548,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h3.c:549,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:550,1
    - 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: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - qcs
    - hdr
    argTypes:
    - struct qcs*
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 576
    functionName: _h3_handle_hdr
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - istmatch
    - isteq
    - istlen
    - unlikely
    - istptr
    - TRACE_ERROR
    - HTTP_IS_TOKEN
    - http_header_has_forbidden_char
    - ist_find_ctl
    - ist
    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:584,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:584,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:586,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:586,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 591
    functionName: _h3_trim_header
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - HTTP_IS_LWS
    - unlikely
    linkageType: ''
    returnType: struct ist
    signature: struct ist _h3_trim_header(struct ist value)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/h3.c:607,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:640,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:645,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:645,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:645,1
    - Dst: qpack_decode_fs
      Src: /src/haproxy/src/h3.c:646,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:646,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:649,1
    - Dst: qpack_err_decode
      Src: /src/haproxy/src/h3.c:650,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:652,1
    - Dst: b_alloc
      Src: /src/haproxy/src/h3.c:658,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:659,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:663,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:663,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:664,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:681,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:681,1
    - Dst: _h3_handle_phdr
      Src: /src/haproxy/src/h3.c:694,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:696,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:704,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:704,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:705,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:706,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:708,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:713,1
    - Dst: http_method_has_forbidden_char
      Src: /src/haproxy/src/h3.c:713,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:714,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:716,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:723,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:723,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:724,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:725,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:727,1
    - Dst: ist_find_range
      Src: /src/haproxy/src/h3.c:736,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:737,1
    - Dst: http_path_has_forbidden_char
      Src: /src/haproxy/src/h3.c:737,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:738,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:740,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:748,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:748,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:749,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:751,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:753,1
    - Dst: isteqi
      Src: /src/haproxy/src/h3.c:759,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:759,1
    - Dst: isteqi
      Src: /src/haproxy/src/h3.c:761,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:761,1
    - Dst: http_validate_scheme
      Src: /src/haproxy/src/h3.c:763,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:764,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:766,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:773,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:773,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:774,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:775,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:777,1
    - Dst: h3_set_authority
      Src: /src/haproxy/src/h3.c:782,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:784,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:790,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:792,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:800,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:800,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:807,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:807,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:807,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:808,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:810,1
    - Dst: isteqi
      Src: /src/haproxy/src/h3.c:828,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:828,1
    - Dst: isteqi
      Src: /src/haproxy/src/h3.c:828,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:828,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:829,1
    - Dst: istptr
      Src: /src/haproxy/src/h3.c:830,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:830,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:830,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:831,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:833,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h3.c:845,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:846,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:848,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:853,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:858,1
    - Dst: ist2bin
      Src: /src/haproxy/src/h3.c:860,1
    - Dst: istcat
      Src: /src/haproxy/src/h3.c:861,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:861,1
    - Dst: istcat
      Src: /src/haproxy/src/h3.c:862,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:863,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:863,1
    - Dst: istcat
      Src: /src/haproxy/src/h3.c:864,1
    - Dst: istptr
      Src: /src/haproxy/src/h3.c:887,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:888,1
    - Dst: HTTP_IS_CTL
      Src: /src/haproxy/src/h3.c:888,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:889,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:891,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h3.c:897,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:897,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/h3.c:906,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:908,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h3.c:909,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:909,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:917,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:917,1
    - Dst: _h3_handle_hdr
      Src: /src/haproxy/src/h3.c:920,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:922,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:927,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:927,1
    - Dst: http_authority_has_forbidden_char
      Src: /src/haproxy/src/h3.c:930,1
    - Dst: h3_set_authority
      Src: /src/haproxy/src/h3.c:931,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:933,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:938,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:944,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:944,1
    - Dst: http_cookie_register
      Src: /src/haproxy/src/h3.c:945,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:949,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:949,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h3.c:950,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:954,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:956,1
    - Dst: h3_check_body_size
      Src: /src/haproxy/src/h3.c:971,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:976,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:976,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:977,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:977,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:978,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:978,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:979,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:979,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:980,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:980,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:990,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:992,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:996,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:996,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:997,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:997,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1004,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1006,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h3.c:1011,1
    - Dst: _h3_trim_header
      Src: /src/haproxy/src/h3.c:1011,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:1025,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1026,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1028,1
    - Dst: http_cookie_merge
      Src: /src/haproxy/src/h3.c:1034,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h3.c:1041,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h3.c:1046,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1054,1
    - Dst: qcs_attach_sc
      Src: /src/haproxy/src/h3.c:1057,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1078,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:1083,1
    - Dst: b_free
      Src: /src/haproxy/src/h3.c:1084,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/h3.c:1085,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1088,1
    CyclomaticComplexity: 109
    EdgeCount: 109
    ICount: 313
    argCount: 4
    argNames:
    - qcs
    - buf
    - len
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - uint64_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1090
      start: 601
    functionDepth: 6
    functionLinenumber: 601
    functionLinenumberEnd: 1090
    functionName: h3_req_headers_to_htx
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - http_cookie_merge
    - isteq
    - offer_buffers
    - get_trash_chunk
    - unlikely
    - HTTP_IS_CTL
    - htx_add_stline
    - ist_find_range
    - http_path_has_forbidden_char
    - b_head
    - htx_from_buf
    - http_cookie_register
    - qcc_report_glitch
    - htx_add_endof
    - b_free
    - TRACE_LEAVE
    - http_validate_scheme
    - istlen
    - http_authority_has_forbidden_char
    - find_http_meth
    - http_parse_cont_len_header
    - h3_check_body_size
    - qcs_attach_sc
    - HTTP_IS_LWS
    - _h3_trim_header
    - htx_add_header
    - htx_nbblks
    - ist2bin
    - BUG_ON
    - _h3_handle_phdr
    - isteqi
    - b_wrap
    - http_method_has_forbidden_char
    - b_size
    - h3_set_authority
    - qpack_decode_fs
    - ist
    - istmatch
    - istptr
    - TRACE_ENTER
    - istcat
    - TRACE_ERROR
    - _h3_handle_hdr
    - isttest
    - qpack_err_decode
    - b_alloc
    - htx_to_buf
    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: 24
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/h3.c:1107,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:1137,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1140,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1140,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:1140,1
    - Dst: qpack_decode_fs
      Src: /src/haproxy/src/h3.c:1141,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1141,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1144,1
    - Dst: qpack_err_decode
      Src: /src/haproxy/src/h3.c:1145,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1147,1
    - Dst: qcc_get_stream_rxbuf
      Src: /src/haproxy/src/h3.c:1153,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1154,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1154,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1155,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:1155,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:1156,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:1173,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1173,1
    - Dst: _h3_handle_phdr
      Src: /src/haproxy/src/h3.c:1186,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1188,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1196,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1196,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:1197,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1198,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1200,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1208,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1210,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:1221,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1222,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1224,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1233,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1235,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/h3.c:1240,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1240,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1240,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1242,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1254,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1254,1
    - Dst: _h3_handle_hdr
      Src: /src/haproxy/src/h3.c:1257,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1259,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1264,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1264,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1265,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1265,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1266,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1266,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1267,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1267,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1268,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1268,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1270,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1272,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1276,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1276,1
    - Dst: http_parse_cont_len_header
      Src: /src/haproxy/src/h3.c:1277,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1281,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1283,1
    - Dst: h3_check_body_size
      Src: /src/haproxy/src/h3.c:1298,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/h3.c:1304,1
    - Dst: _h3_trim_header
      Src: /src/haproxy/src/h3.c:1304,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h3.c:1312,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h3.c:1317,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:1327,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1328,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:1328,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:1332,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1338,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1340,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 154
    argCount: 4
    argNames:
    - qcs
    - buf
    - len
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - uint64_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1101
    functionDepth: 3
    functionLinenumber: 1101
    functionLinenumberEnd: 1342
    functionName: h3_resp_headers_to_htx
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - isteq
    - get_trash_chunk
    - htx_add_stline
    - b_head
    - htx_from_buf
    - qcc_report_glitch
    - htx_add_endof
    - TRACE_LEAVE
    - istlen
    - b_data
    - http_parse_cont_len_header
    - h3_check_body_size
    - TRACE_USER
    - _h3_trim_header
    - htx_add_header
    - htx_nbblks
    - BUG_ON
    - _h3_handle_phdr
    - b_wrap
    - b_size
    - qpack_decode_fs
    - ist
    - istmatch
    - TRACE_ENTER
    - TRACE_ERROR
    - conn_is_back
    - qcc_get_stream_rxbuf
    - isttest
    - qpack_err_decode
    - _h3_handle_hdr
    - htx_to_buf
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/h3.c:1358,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:1369,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1372,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1372,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:1372,1
    - Dst: qpack_decode_fs
      Src: /src/haproxy/src/h3.c:1373,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1373,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1376,1
    - Dst: qpack_err_decode
      Src: /src/haproxy/src/h3.c:1377,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1379,1
    - Dst: qcc_get_stream_rxbuf
      Src: /src/haproxy/src/h3.c:1385,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1386,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1390,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:1390,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:1391,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/h3.c:1401,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1405,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1410,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1410,1
    - Dst: istmatch
      Src: /src/haproxy/src/h3.c:1418,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1418,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1419,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1421,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/h3.c:1428,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1429,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1431,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1438,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1438,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1439,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1439,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1440,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1440,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1441,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1441,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1442,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1442,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1443,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1443,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1444,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1444,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:1445,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:1445,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1446,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1448,1
    - Dst: ist_find_ctl
      Src: /src/haproxy/src/h3.c:1464,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:1465,1
    - Dst: http_header_has_forbidden_char
      Src: /src/haproxy/src/h3.c:1465,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1466,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1468,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:1475,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:1475,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:1477,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:1477,1
    - Dst: htx_add_trailer
      Src: /src/haproxy/src/h3.c:1481,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1482,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h3.c:1491,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/h3.c:1496,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1497,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1508,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1510,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 100
    argCount: 4
    argNames:
    - qcs
    - buf
    - len
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - uint64_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1512
      start: 1353
    functionDepth: 3
    functionLinenumber: 1353
    functionLinenumberEnd: 1512
    functionName: h3_trailers_to_htx
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - isteq
    - get_trash_chunk
    - unlikely
    - http_get_stline
    - htx_add_trailer
    - b_head
    - htx_from_buf
    - qcc_report_glitch
    - htx_add_endof
    - TRACE_LEAVE
    - http_header_has_forbidden_char
    - HTTP_IS_LWS
    - htx_nbblks
    - BUG_ON
    - HTTP_IS_TOKEN
    - b_wrap
    - b_size
    - qpack_decode_fs
    - ist_find_ctl
    - ist
    - istmatch
    - TRACE_ENTER
    - TRACE_ERROR
    - qcc_get_stream_rxbuf
    - qpack_err_decode
    - htx_to_buf
    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:1529,1
    - Dst: qcc_get_stream_rxbuf
      Src: /src/haproxy/src/h3.c:1531,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1532,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:1536,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1538,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1539,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1543,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/h3.c:1545,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:1556,1
    - Dst: b_wrap
      Src: /src/haproxy/src/h3.c:1557,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/h3.c:1558,1
    - Dst: ist2
      Src: /src/haproxy/src/h3.c:1558,1
    - Dst: b_head
      Src: /src/haproxy/src/h3.c:1558,1
    - Dst: b_orig
      Src: /src/haproxy/src/h3.c:1565,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/h3.c:1569,1
    - Dst: ist2
      Src: /src/haproxy/src/h3.c:1569,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:1580,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1582,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:1586,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: 1588
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1588
    functionName: h3_data_to_htx
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - b_orig
    - htx_free_data_space
    - TRACE_DEVEL
    - b_data
    - htx_add_data
    - TRACE_ENTER
    - ist2
    - TRACE_ERROR
    - b_wrap
    - htx_from_buf
    - qcc_get_stream_rxbuf
    - b_head
    - htx_to_buf
    - TRACE_LEAVE
    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:1602,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:1605,1
    - Dst: b_orig
      Src: /src/haproxy/src/h3.c:1605,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:1605,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/h3.c:1605,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1607,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:1608,1
    - Dst: b_quic_dec_int
      Src: /src/haproxy/src/h3.c:1608,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1610,1
    - Dst: h3_debug_printf
      Src: /src/haproxy/src/h3.c:1614,1
    - Dst: ha_bit_test
      Src: /src/haproxy/src/h3.c:1626,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1628,1
    - Dst: ha_bit_set
      Src: /src/haproxy/src/h3.c:1631,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1659,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1667,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: 1669
      start: 1594
    functionDepth: 1
    functionLinenumber: 1594
    functionLinenumberEnd: 1669
    functionName: h3_parse_settings_frm
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - b_orig
    - ha_bit_test
    - b_quic_dec_int
    - b_data
    - TRACE_ENTER
    - h3_debug_printf
    - qcc_report_glitch
    - b_size
    - b_head_ofs
    - ha_bit_set
    - b_make
    - TRACE_LEAVE
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t h3_parse_settings_frm(struct h3c *h3c, const struct buffer
      *buf,\n                                     size_t len)"
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:1689,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/h3.c:1691,1
    - Dst: h3_init_uni_stream
      Src: /src/haproxy/src/h3.c:1692,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1694,1
    - Dst: quic_stream_is_uni
      Src: /src/haproxy/src/h3.c:1705,1
    - Dst: h3_parse_uni_stream_no_h3
      Src: /src/haproxy/src/h3.c:1707,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1708,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1724,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1725,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1726,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1730,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/h3.c:1730,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/h3.c:1731,1
    - Dst: qcs_http_handle_standalone_fin
      Src: /src/haproxy/src/h3.c:1732,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1733,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1734,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1741,1
    - Dst: h3_decode_frm_header
      Src: /src/haproxy/src/h3.c:1747,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/h3.c:1749,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/h3.c:1756,1
    - Dst: h3_check_body_size
      Src: /src/haproxy/src/h3.c:1761,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1761,1
    - Dst: h3_check_frame_valid
      Src: /src/haproxy/src/h3.c:1765,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1766,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1767,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1768,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1772,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1782,1
    - Dst: qmux_stream_rx_bufsz
      Src: /src/haproxy/src/h3.c:1789,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1790,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1791,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:1792,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1798,1
    - Dst: h3_check_body_size
      Src: /src/haproxy/src/h3.c:1801,1
    - Dst: h3_inc_frame_type_cnt
      Src: /src/haproxy/src/h3.c:1804,1
    - Dst: h3_data_to_htx
      Src: /src/haproxy/src/h3.c:1807,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:1812,1
    - Dst: h3_req_headers_to_htx
      Src: /src/haproxy/src/h3.c:1813,1
    - Dst: h3_resp_headers_to_htx
      Src: /src/haproxy/src/h3.c:1817,1
    - Dst: h3_trailers_to_htx
      Src: /src/haproxy/src/h3.c:1832,1
    - Dst: h3_parse_settings_frm
      Src: /src/haproxy/src/h3.c:1844,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1846,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1847,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:1863,1
    - Dst: b_del
      Src: /src/haproxy/src/h3.c:1865,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/h3.c:1876,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/h3.c:1877,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1878,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1882,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1883,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:1886,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:1887,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1898,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:1902,1
    CyclomaticComplexity: 64
    EdgeCount: 64
    ICount: 164
    argCount: 3
    argNames:
    - qcs
    - b
    - fin
    argTypes:
    - struct qcs*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1904
      start: 1682
    functionDepth: 7
    functionLinenumber: 1682
    functionLinenumberEnd: 1904
    functionName: h3_rcv_buf
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - quic_stream_is_uni
    - unlikely
    - qmux_stream_rx_bufsz
    - h3_check_frame_valid
    - qcc_set_error
    - qcc_report_glitch
    - TRACE_LEAVE
    - quic_stream_is_bidi
    - h3_trailers_to_htx
    - b_data
    - h3_decode_frm_header
    - h3_check_body_size
    - h3_init_uni_stream
    - h3_inc_frame_type_cnt
    - h3_parse_settings_frm
    - h3_data_to_htx
    - BUG_ON
    - h3_req_headers_to_htx
    - TRACE_PROTO
    - qcc_abort_stream_read
    - h3_resp_headers_to_htx
    - qcc_reset_stream
    - h3_parse_uni_stream_no_h3
    - qcs_http_handle_standalone_fin
    - TRACE_ENTER
    - TRACE_ERROR
    - b_del
    - conn_is_back
    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:1920,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/h3.c:1922,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:1925,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:1927,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:1928,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:1929,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:1930,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:1932,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:1933,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:1936,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:1938,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:1939,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:1940,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:1941,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:1942,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:1943,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:1945,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:1946,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:1949,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:1951,1
    - Dst: b_room
      Src: /src/haproxy/src/h3.c:1955,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1955,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/h3.c:1958,1
    - Dst: b_force_xfer
      Src: /src/haproxy/src/h3.c:1961,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:1961,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/h3.c:1964,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:1968,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:1972,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 2
    argNames:
    - qcs
    - ctx
    argTypes:
    - struct qcs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1974
      start: 1911
    functionDepth: 5
    functionLinenumber: 1911
    functionLinenumberEnd: 1974
    functionName: h3_control_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_quic_enc_int
    - b_data
    - b_force_xfer
    - quic_int_getsize
    - TRACE_ENTER
    - TRACE_ERROR
    - BUG_ON_HOT
    - b_room
    - qcc_send_stream
    - TRACE_LEAVE
    - ABORT_NOW
    - b_make
    - qcc_get_stream_txbuf
    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:1988,1
    - Dst: istptr
      Src: /src/haproxy/src/h3.c:1989,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:1990,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:1990,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:1992,1
    - Dst: HTTP_IS_LWS
      Src: /src/haproxy/src/h3.c:1992,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:1992,1
    - Dst: qpack_encode_header
      Src: /src/haproxy/src/h3.c:1996,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: 1997
      start: 1981
    functionDepth: 3
    functionLinenumber: 1981
    functionLinenumberEnd: 1997
    functionName: h3_encode_header
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - istlen
    - unlikely
    - qpack_encode_header
    - istptr
    - HTTP_IS_LWS
    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:2021,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2025,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/h3.c:2025,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2026,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2035,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h3.c:2036,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/h3.c:2037,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/h3.c:2038,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2042,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2043,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h3.c:2047,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h3.c:2048,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2059,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2061,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2064,1
    - Dst: qcc_realloc_stream_txbuf
      Src: /src/haproxy/src/h3.c:2065,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2068,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2072,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2076,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2076,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2080,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2080,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2080,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2082,1
    - Dst: qpack_encode_field_section_line
      Src: /src/haproxy/src/h3.c:2084,1
    - Dst: qpack_encode_method
      Src: /src/haproxy/src/h3.c:2087,1
    - Dst: ist2
      Src: /src/haproxy/src/h3.c:2099,1
    - Dst: istadv
      Src: /src/haproxy/src/h3.c:2100,1
    - Dst: ist2
      Src: /src/haproxy/src/h3.c:2103,1
    - Dst: istadv
      Src: /src/haproxy/src/h3.c:2107,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:2111,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2113,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2115,1
    - Dst: qpack_encode_scheme
      Src: /src/haproxy/src/h3.c:2118,1
    - Dst: qpack_encode_path
      Src: /src/haproxy/src/h3.c:2121,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:2124,1
    - Dst: qpack_encode_auth
      Src: /src/haproxy/src/h3.c:2125,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2140,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2140,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2150,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2150,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2151,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2151,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2152,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2152,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2153,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2153,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2154,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2154,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2157,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2157,1
    - Dst: istist
      Src: /src/haproxy/src/h3.c:2161,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2161,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:2162,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2164,1
    - Dst: istlen
      Src: /src/haproxy/src/h3.c:2168,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2168,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2168,1
    - Dst: h3_encode_header
      Src: /src/haproxy/src/h3.c:2171,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2178,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2178,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2180,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2181,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2181,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2182,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2182,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2185,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2187,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2188,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2189,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2195,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2200,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2205,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 138
    argCount: 2
    argNames:
    - qcs
    - htx
    argTypes:
    - struct qcs*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2006
    functionDepth: 4
    functionLinenumber: 2006
    functionLinenumberEnd: 2207
    functionName: h3_req_headers_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - isteq
    - unlikely
    - htx_get_blk_value
    - TRACE_DATA
    - istadv
    - b_tail
    - qpack_encode_path
    - istist
    - htx_get_blk_name
    - quic_int_getsize
    - htx_get_blk_ptr
    - qpack_encode_method
    - qpack_encode_field_section_line
    - TRACE_LEAVE
    - istlen
    - htx_get_head_blk
    - b_data
    - htx_get_blk_type
    - ist2
    - qpack_encode_auth
    - b_make
    - qpack_encode_scheme
    - BUG_ON
    - htx_sl_req_meth
    - htx_remove_blk
    - htx_get_next_blk
    - b_putchr
    - qcc_realloc_stream_txbuf
    - b_contig_space
    - qcc_get_stream_txbuf
    - ist
    - htx_get_blksz
    - b_quic_enc_int
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h3_encode_header
    - htx_sl_req_uri
    - isttest
    - b_add
    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:2232,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2236,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/h3.c:2236,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2237,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2247,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h3.c:2248,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2251,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:2255,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2256,1
    - Dst: conn_is_back
      Src: /src/haproxy/src/h3.c:2256,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:2260,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2265,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2266,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h3.c:2269,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h3.c:2270,1
    - Dst: ABORT_NOW
      Src: /src/haproxy/src/h3.c:2275,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2283,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2285,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2288,1
    - Dst: qcc_realloc_stream_txbuf
      Src: /src/haproxy/src/h3.c:2289,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2292,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2296,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2301,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2301,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2311,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2311,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2311,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2313,1
    - Dst: qpack_encode_field_section_line
      Src: /src/haproxy/src/h3.c:2315,1
    - Dst: qpack_encode_int_status
      Src: /src/haproxy/src/h3.c:2317,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2318,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:2342,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2342,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2343,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2343,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2344,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2344,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2345,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2345,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2346,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2346,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2349,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2349,1
    - Dst: istist
      Src: /src/haproxy/src/h3.c:2353,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2353,1
    - Dst: isttest
      Src: /src/haproxy/src/h3.c:2354,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2356,1
    - Dst: h3_encode_header
      Src: /src/haproxy/src/h3.c:2359,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2373,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:2374,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2374,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2376,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2377,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2377,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2380,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2381,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2381,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2383,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2383,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2386,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2388,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2389,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2390,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2396,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2400,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2405,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2406,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2410,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2415,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2420,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 134
    argCount: 2
    argNames:
    - qcs
    - htx
    argTypes:
    - struct qcs*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2422
      start: 2216
    functionDepth: 4
    functionLinenumber: 2216
    functionLinenumberEnd: 2422
    functionName: h3_resp_headers_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - isteq
    - unlikely
    - htx_get_blk_value
    - TRACE_DATA
    - b_tail
    - istist
    - quic_int_getsize
    - htx_get_blk_name
    - qpack_encode_int_status
    - htx_get_blk_ptr
    - ABORT_NOW
    - qpack_encode_field_section_line
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - htx_get_blk_type
    - TRACE_USER
    - qcc_release_stream_txbuf
    - b_make
    - BUG_ON
    - htx_remove_blk
    - htx_get_next_blk
    - b_putchr
    - qcc_realloc_stream_txbuf
    - b_contig_space
    - qcc_get_stream_txbuf
    - ist
    - htx_get_blksz
    - b_quic_enc_int
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - conn_is_back
    - h3_encode_header
    - isttest
    - b_add
    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:2447,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2455,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/h3.c:2455,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2456,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2465,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2466,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/h3.c:2469,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/h3.c:2470,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2474,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2484,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2487,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2489,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2490,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2491,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2498,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2501,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2503,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2507,1
    - Dst: b_room
      Src: /src/haproxy/src/h3.c:2512,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2513,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2514,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/h3.c:2522,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/h3.c:2523,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2523,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2525,1
    - Dst: b_peek
      Src: /src/haproxy/src/h3.c:2525,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2525,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2525,1
    - Dst: qpack_encode_field_section_line
      Src: /src/haproxy/src/h3.c:2527,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2528,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2529,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2536,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2538,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2538,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2542,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2542,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2543,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2543,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2544,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2544,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2545,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2545,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2546,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2546,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2547,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2547,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2548,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2548,1
    - Dst: isteq
      Src: /src/haproxy/src/h3.c:2549,1
    - Dst: ist
      Src: /src/haproxy/src/h3.c:2549,1
    - Dst: h3_encode_header
      Src: /src/haproxy/src/h3.c:2553,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2554,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2555,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2564,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2568,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2574,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2576,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2577,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2577,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2578,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2578,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2582,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2584,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2585,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2586,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2592,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2596,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 114
    argCount: 2
    argNames:
    - qcs
    - htx
    argTypes:
    - struct qcs*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2435
    functionDepth: 4
    functionLinenumber: 2435
    functionLinenumberEnd: 2598
    functionName: h3_resp_trailers_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - isteq
    - b_space_wraps
    - unlikely
    - htx_get_blk_value
    - TRACE_DATA
    - b_tail
    - htx_get_blk_name
    - b_peek
    - qpack_encode_field_section_line
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - htx_get_blk_type
    - qcc_release_stream_txbuf
    - b_make
    - htx_remove_blk
    - htx_get_next_blk
    - b_room
    - b_putchr
    - b_contig_space
    - qcc_get_stream_txbuf
    - ist
    - htx_get_blksz
    - b_quic_enc_int
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - h3_encode_header
    - b_slow_realign
    - b_add
    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:2620,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h3.c:2623,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/h3.c:2626,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2627,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2628,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2636,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:2638,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2642,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2650,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2651,1
    - Dst: htx_nbblks
      Src: /src/haproxy/src/h3.c:2652,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2655,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2659,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2663,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2664,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2665,1
    - Dst: b_reset
      Src: /src/haproxy/src/h3.c:2679,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:2680,1
    - Dst: b_tail
      Src: /src/haproxy/src/h3.c:2680,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2680,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2681,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/h3.c:2681,1
    - Dst: qcc_realign_stream_txbuf
      Src: /src/haproxy/src/h3.c:2683,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2691,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:2692,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2693,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2700,1
    - Dst: b_size
      Src: /src/haproxy/src/h3.c:2701,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2702,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2704,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2706,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2707,1
    - Dst: b_putblk
      Src: /src/haproxy/src/h3.c:2709,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/h3.c:2709,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2714,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/h3.c:2716,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2719,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:2719,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2723,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:2727,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:2728,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 4
    argNames:
    - qcs
    - htx
    - buf
    - count
    argTypes:
    - struct qcs*
    - struct htx*
    - struct buffer*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2609
    functionDepth: 4
    functionLinenumber: 2609
    functionLinenumberEnd: 2730
    functionName: h3_resp_data_send
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_space_wraps
    - unlikely
    - TRACE_DATA
    - b_tail
    - htx_get_blk_ptr
    - TRACE_LEAVE
    - htx_get_head_blk
    - b_data
    - htx_cut_data_blk
    - htx_get_blk_type
    - qcc_release_stream_txbuf
    - b_make
    - b_putblk
    - htx_nbblks
    - qcc_realign_stream_txbuf
    - BUG_ON
    - htx_remove_blk
    - b_putchr
    - b_size
    - b_contig_space
    - qcc_get_stream_txbuf
    - htx_is_empty
    - htx_get_blksz
    - b_quic_enc_int
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - b_reset
    - b_add
    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:2755,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:2758,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h3.c:2762,1
    - Dst: qcc_stream_can_send
      Src: /src/haproxy/src/h3.c:2762,1
    - Dst: htx_get_head
      Src: /src/haproxy/src/h3.c:2763,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/h3.c:2764,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/h3.c:2765,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/h3.c:2766,1
    - Dst: h3_req_headers_send
      Src: /src/haproxy/src/h3.c:2770,1
    - Dst: h3_resp_headers_send
      Src: /src/haproxy/src/h3.c:2781,1
    - Dst: h3_resp_data_send
      Src: /src/haproxy/src/h3.c:2791,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/h3.c:2794,1
    - Dst: h3_resp_trailers_send
      Src: /src/haproxy/src/h3.c:2805,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/h3.c:2815,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2823,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:2824,1
    - Dst: unlikely
      Src: /src/haproxy/src/h3.c:2850,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h3.c:2850,1
    - Dst: qcs_is_close_remote
      Src: /src/haproxy/src/h3.c:2851,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/h3.c:2856,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/h3.c:2861,1
    - Dst: TRACE_USER
      Src: /src/haproxy/src/h3.c:2862,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/h3.c:2865,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2867,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: 2869
      start: 2743
    functionDepth: 5
    functionLinenumber: 2743
    functionLinenumberEnd: 2869
    functionName: h3_snd_buf
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - htx_get_head
    - qcs_is_close_remote
    - h3_resp_headers_send
    - unlikely
    - qcc_set_error
    - htx_from_buf
    - qcc_stream_can_send
    - TRACE_LEAVE
    - htx_get_blk_type
    - TRACE_USER
    - h3_req_headers_send
    - htx_get_blk
    - h3_resp_data_send
    - h3_resp_trailers_send
    - htx_remove_blk
    - qcc_abort_stream_read
    - htx_is_empty
    - htx_get_blksz
    - TRACE_ENTER
    - htx_to_buf
    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:2878,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:2881,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2894,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/h3.c:2894,1
    - Dst: qcc_realign_stream_txbuf
      Src: /src/haproxy/src/h3.c:2896,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2904,1
    - Dst: qcc_release_stream_txbuf
      Src: /src/haproxy/src/h3.c:2905,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/h3.c:2915,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2925,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 41
    argCount: 2
    argNames:
    - qcs
    - count
    argTypes:
    - struct qcs*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2927
      start: 2871
    functionDepth: 4
    functionLinenumber: 2871
    functionLinenumberEnd: 2927
    functionName: h3_nego_ff
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - b_space_wraps
    - qcc_realign_stream_txbuf
    - TRACE_ENTER
    - qcc_release_stream_txbuf
    - TRACE_LEAVE
    - 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:2937,1
    - Dst: h3_debug_printf
      Src: /src/haproxy/src/h3.c:2939,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/h3.c:2942,1
    - Dst: b_sub
      Src: /src/haproxy/src/h3.c:2945,1
    - Dst: b_putchr
      Src: /src/haproxy/src/h3.c:2946,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:2947,1
    - Dst: b_add
      Src: /src/haproxy/src/h3.c:2948,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:2953,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2955
      start: 2934
    functionDepth: 1
    functionLinenumber: 2934
    functionLinenumberEnd: 2955
    functionName: h3_done_ff
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - b_quic_enc_int
    - b_sub
    - TRACE_DATA
    - TRACE_ENTER
    - h3_debug_printf
    - b_putchr
    - TRACE_LEAVE
    - b_add
    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:2983,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:2984,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:2985,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: 2990
      start: 2969
    functionDepth: 2
    functionLinenumber: 2969
    functionLinenumberEnd: 2990
    functionName: h3_close
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_ERROR
    - qcc_set_error
    - qcc_report_glitch
    linkageType: ''
    returnType: int
    signature: int h3_close(struct qcs *qcs, enum qcc_app_ops_close_side side)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3002,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/h3.c:3004,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3006,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/h3.c:3020,1
    - Dst: qcs_wait_http_req
      Src: /src/haproxy/src/h3.c:3023,1
    - Dst: quic_stream_is_bidi
      Src: /src/haproxy/src/h3.c:3041,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:3043,1
    - Dst: quic_stream_is_local
      Src: /src/haproxy/src/h3.c:3043,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:3045,1
    - Dst: qcc_abort_stream_read
      Src: /src/haproxy/src/h3.c:3046,1
    - Dst: qcc_reset_stream
      Src: /src/haproxy/src/h3.c:3047,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3052,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3056,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 2
    argNames:
    - qcs
    - conn_ctx
    argTypes:
    - struct qcs*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3058
      start: 2997
    functionDepth: 5
    functionLinenumber: 2997
    functionLinenumberEnd: 3058
    functionName: h3_attach
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - quic_stream_is_bidi
    - TRACE_DEVEL
    - quic_stream_is_local
    - BUG_ON
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - qcc_abort_stream_read
    - qcs_wait_http_req
    - qcc_reset_stream
    - TRACE_LEAVE
    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:3064,1
    - Dst: pool_free
      Src: /src/haproxy/src/h3.c:3066,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3070
      start: 3060
    functionDepth: 1
    functionLinenumber: 3060
    functionLinenumberEnd: 3070
    functionName: h3_detach
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - pool_free
    - TRACE_LEAVE
    - TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void h3_detach(struct qcs *qcs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: quic_int_getsize
      Src: /src/haproxy/src/h3.c:3082,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3085,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3088,1
    - Dst: b_make
      Src: /src/haproxy/src/h3.c:3092,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:3094,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:3095,1
    - Dst: b_quic_enc_int
      Src: /src/haproxy/src/h3.c:3096,1
    - Dst: qcc_get_stream_txbuf
      Src: /src/haproxy/src/h3.c:3098,1
    - Dst: b_room
      Src: /src/haproxy/src/h3.c:3099,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:3099,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/h3.c:3100,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/h3.c:3100,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3102,1
    - Dst: b_force_xfer
      Src: /src/haproxy/src/h3.c:3106,1
    - Dst: b_data
      Src: /src/haproxy/src/h3.c:3106,1
    - Dst: qcc_send_stream
      Src: /src/haproxy/src/h3.c:3107,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3110,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 1
    argNames:
    - h3c
    argTypes:
    - struct h3c*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3120
      start: 3076
    functionDepth: 5
    functionLinenumber: 3076
    functionLinenumberEnd: 3120
    functionName: h3_send_goaway
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_quic_enc_int
    - qfctl_sblocked
    - b_data
    - b_force_xfer
    - TRACE_ENTER
    - quic_int_getsize
    - TRACE_ERROR
    - b_room
    - qcc_send_stream
    - TRACE_LEAVE
    - 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:3129,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/h3.c:3131,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3133,1
    - Dst: qc_counters
      Src: /src/haproxy/src/h3.c:3144,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/h3.c:3145,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3147,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:3151,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - qcc
    argTypes:
    - struct qcc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3154
      start: 3125
    functionDepth: 2
    functionLinenumber: 3125
    functionLinenumberEnd: 3154
    functionName: h3_init
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - LIST_INIT
    - qcc_set_error
    - TRACE_LEAVE
    - qc_counters
    linkageType: ''
    returnType: int
    signature: int h3_init(struct qcc *qcc)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3169,1
    - Dst: qcc_fctl_avail_streams
      Src: /src/haproxy/src/h3.c:3180,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3181,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:3182,1
    - Dst: qcc_report_glitch
      Src: /src/haproxy/src/h3.c:3183,1
    - Dst: qcc_init_stream_local
      Src: /src/haproxy/src/h3.c:3187,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/h3.c:3190,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/h3.c:3191,1
    - Dst: qcs_send_metadata
      Src: /src/haproxy/src/h3.c:3195,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/h3.c:3199,1
    - Dst: qfctl_sblocked
      Src: /src/haproxy/src/h3.c:3199,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/h3.c:3200,1
    - Dst: h3_control_send
      Src: /src/haproxy/src/h3.c:3211,1
    - Dst: qcc_set_error
      Src: /src/haproxy/src/h3.c:3212,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3216,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3220,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/h3.c:3224,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3226
      start: 3163
    functionDepth: 7
    functionLinenumber: 3163
    functionLinenumberEnd: 3226
    functionName: h3_finalize
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - qcc_fctl_avail_streams
    - qfctl_sblocked
    - BUG_ON
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - qcc_set_error
    - qcs_send_metadata
    - qcc_report_glitch
    - qcc_init_stream_local
    - h3_control_send
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int h3_finalize(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/h3.c:3233,1
    - Dst: h3_send_goaway
      Src: /src/haproxy/src/h3.c:3242,1
    - Dst: quic_err_app
      Src: /src/haproxy/src/h3.c:3250,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/h3.c:3252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3253
      start: 3229
    functionDepth: 6
    functionLinenumber: 3229
    functionLinenumberEnd: 3253
    functionName: h3_shutdown
    functionSourceFile: /src/haproxy/src/h3.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - quic_err_app
    - h3_send_goaway
    - TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void h3_shutdown(void *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/src/h3.c:3258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3259
      start: 3255
    functionDepth: 1
    functionLinenumber: 3255
    functionLinenumberEnd: 3259
    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:3266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - err_code
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3267
      start: 3262
    functionDepth: 2
    functionLinenumber: 3262
    functionLinenumberEnd: 3267
    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:3272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3273
      start: 3269
    functionDepth: 1
    functionLinenumber: 3269
    functionLinenumberEnd: 3273
    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: 3287
      start: 3275
    functionDepth: 0
    functionLinenumber: 3275
    functionLinenumberEnd: 3287
    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:3304,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/h3.c:3306,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/h3.c:3309,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/h3.c:3312,1
    - Dst: h3_ft_str
      Src: /src/haproxy/src/h3.c:3313,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: 3316
      start: 3290
    functionDepth: 1
    functionLinenumber: 3290
    functionLinenumberEnd: 3316
    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: 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_peek_ofs
    - b_orig
    - b_contig_data
    - 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
    - spop_conn_st_to_str
    - spop_strm_st_to_str
    - br_tail_idx
    - chunk_memcat
    - b_data
    - chunk_appendf
    - br_head
    - br_head_idx
    - spop_trace_buf
    - br_size
    - b_size
    - br_tail
    - b_head_ofs
    - spop_strm_sc
    - se_fl_get
    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:
    - spop_conn_st_by_id
    - spop_conn_restart_reading
    - TRACE_STATE
    - br_tail
    - b_alloc
    - spop_strm_sc
    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:
    - LIST_INLIST
    - unlikely
    - likely
    - b_alloc
    - b_queue
    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_size
    - offer_buffers
    - br_head_pick
    - b_free
    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:
    - spop_streams_left
    - objt_server
    - 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:
    - TRACE_DEVEL
    - pool_free
    - pool_alloc
    - task_destroy
    - TRACE_LEAVE
    - tasklet_free
    - spop_strm_opposite_sd
    - spop_conn_restart_reading
    - tick_isset
    - LIST_INIT
    - spop_stconn_new
    - spoe_appctx_agent
    - task_new_here
    - tick_add
    - tasklet_new
    - TRACE_ENTER
    - TRACE_ERROR
    - task_queue
    - sc_appctx
    - br_init
    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:
    - TRACE_DEVEL
    - struct connection*::destroy_cb
    - tasklet_free
    - pool_free
    - spop_release_buf
    - conn_full_close
    - task_wakeup
    - struct connection*::xprt::unsubscribe
    - conn_stop_tracking
    - conn_free
    - TRACE_POINT
    - spop_release_mbuf
    - spop_conn_report_term_evt
    - b_dequeue
    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:
    - eb32_lookup
    - container_of
    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:
    - br_data
    - eb_is_empty
    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:
    - tick_add
    - br_data
    - statistical_prng_range
    - spop_conn_may_expire
    - task_wakeup
    - tick_remain
    - TRACE_ENTER
    - tick_isset
    - task_queue
    - tick_add_ifset
    - tick_is_le
    - tick_first
    - TRACE_LEAVE
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:986,1
    - Dst: spop_strm_notify_recv
      Src: /src/haproxy/src/mux_spop.c:988,1
    - Dst: spop_strm_notify_send
      Src: /src/haproxy/src/mux_spop.c:989,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:991,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:991,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:992,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:993,1
    - Dst: wake
      Src: /src/haproxy/src/mux_spop.c:993,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:993,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 995
    functionName: spop_strm_alert
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_strm_notify_send
    - wake
    - spop_strm_notify_recv
    - TRACE_POINT
    - spop_strm_sc
    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_orig
    - readv_bytes
    - b_wrap
    - b_peek
    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:
    - b_orig
    - readv_n16
    - b_wrap
    - b_peek
    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:
    - b_orig
    - readv_n32
    - b_wrap
    - b_peek
    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_orig
    - readv_n64
    - b_wrap
    - b_peek
    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_data
    - b_peek
    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_data
    - spop_get_varint
    - spop_get_n32
    - b_peek
    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_skip_frame_hdr
    - spop_peek_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:
    - se_fl_test
    - b_data
    - TRACE_STATE
    - TRACE_ENTER
    - spop_strm_notify_recv
    - spop_strm_sc
    - TRACE_LEAVE
    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_test
    - spop_conn_read0_pending
    - se_fl_set
    - 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:
    - offer_buffers
    - sedesc_free
    - pool_free
    - spop_strm_close
    - se_fl_test
    - BUG_ON
    - TRACE_ENTER
    - eb32_delete
    - TRACE_LEAVE
    - b_size
    - b_free
    - spop_remove_from_list
    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:
    - TRACE_DEVEL
    - TRACE_ENTER
    - TRACE_ERROR
    - pool_alloc
    - LIST_INIT
    - eb32_insert
    - TRACE_LEAVE
    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_DEVEL
    - spop_streams_left
    - spop_strm_destroy
    - TRACE_ENTER
    - TRACE_ERROR
    - TRACE_LEAVE
    - sc_attach_mux
    - spop_strm_new
    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:
    - TRACE_DEVEL
    - spop_strm_close
    - spop_strm_alert
    - spop_strm_destroy
    - TRACE_STATE
    - spop_strm_propagate_term_flags
    - TRACE_ENTER
    - se_fl_set_error
    - spop_strm_sc
    - spop_conn_read0_pending
    - TRACE_LEAVE
    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:
    - spop_strm_wake_one_stream
    - eb32_lookup
    - container_of
    - 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_strm_wake_one_stream
    - eb32_lookup_ge
    - container_of
    - eb32_next
    - TRACE_ENTER
    - spop_wake_unassigned_streams
    - TRACE_LEAVE
    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_DEVEL
    - b_space_wraps
    - get_trash_chunk
    - b_tail
    - br_tail
    - TRACE_LEAVE
    - b_data
    - strlen
    - b_make
    - TRACE_PROTO
    - spop_get_buf
    - br_tail_add
    - b_size
    - b_contig_space
    - b_orig
    - encode_varint
    - SPOP_SLEN
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - spop_set_frame_size
    - spoe_encode_buffer
    - b_slow_realign
    - memcpy
    - b_add
    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:
    - TRACE_DEVEL
    - b_space_wraps
    - b_tail
    - br_tail
    - TRACE_LEAVE
    - istlen
    - b_data
    - b_make
    - TRACE_PROTO
    - spop_get_buf
    - br_tail_add
    - b_size
    - b_contig_space
    - b_orig
    - encode_varint
    - SPOP_SLEN
    - TRACE_STATE
    - istptr
    - TRACE_ENTER
    - TRACE_ERROR
    - spop_set_frame_size
    - spop_conn_report_term_evt
    - spoe_encode_buffer
    - b_slow_realign
    - memcpy
    - b_add
    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_head_ofs
      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:
    - TRACE_DEVEL
    - unlikely
    - decode_varint
    - spoe_check_vsn
    - b_head
    - spop_wake_unassigned_streams
    - TRACE_LEAVE
    - b_data
    - strlen
    - spoe_skip_data
    - spoe_decode_buffer
    - b_head_ofs
    - b_slow_realign_ofs
    - isspace
    - b_contig_data
    - strncmp
    - spop_conn_error
    - TRACE_PROTO
    - b_size
    - spoe_str_to_vsn
    - memcmp
    - SPOP_SLEN
    - TRACE_ENTER
    - b_del
    - memchr
    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_head_ofs
      Src: /src/haproxy/src/mux_spop.c:1827,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_spop.c:1832,1
    - Dst: b_head
      Src: /src/haproxy/src/mux_spop.c:1835,1
    - Dst: spoe_decode_buffer
      Src: /src/haproxy/src/mux_spop.c:1848,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1850,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_spop.c:1855,1
    - Dst: memcmp
      Src: /src/haproxy/src/mux_spop.c:1855,1
    - Dst: strlen
      Src: /src/haproxy/src/mux_spop.c:1855,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1863,1
    - Dst: decode_varint
      Src: /src/haproxy/src/mux_spop.c:1866,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1867,1
    - Dst: spoe_skip_data
      Src: /src/haproxy/src/mux_spop.c:1891,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1892,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:1898,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:1899,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:1901,1
    - Dst: spop_wake_some_streams
      Src: /src/haproxy/src/mux_spop.c:1903,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:1904,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1905,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1909,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1910,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1805
    functionDepth: 8
    functionLinenumber: 1805
    functionLinenumberEnd: 1912
    functionName: spop_conn_handle_disconnect
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - unlikely
    - decode_varint
    - b_head
    - TRACE_LEAVE
    - b_data
    - spop_wake_some_streams
    - strlen
    - spoe_skip_data
    - spoe_decode_buffer
    - b_head_ofs
    - b_slow_realign_ofs
    - b_contig_data
    - spop_conn_error
    - TRACE_PROTO
    - b_size
    - memcmp
    - TRACE_STATE
    - TRACE_ENTER
    - b_del
    - spop_conn_report_term_evt
    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:1924,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:1929,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:1933,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1935,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:1939,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/mux_spop.c:1939,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:1939,1
    - Dst: b_slow_realign_ofs
      Src: /src/haproxy/src/mux_spop.c:1944,1
    - Dst: spop_get_buf
      Src: /src/haproxy/src/mux_spop.c:1948,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1951,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_spop.c:1957,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1959,1
    - Dst: b_putchr
      Src: /src/haproxy/src/mux_spop.c:1962,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_spop.c:1975,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:1977,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_spop.c:1981,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:1982,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:1989,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:1992,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:1993,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:1997,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - spop_conn
    - spop_strm
    argTypes:
    - struct spop_conn*
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1999
      start: 1919
    functionDepth: 3
    functionLinenumber: 1919
    functionLinenumberEnd: 1999
    functionName: spop_conn_handle_ack
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_slow_realign_ofs
    - unlikely
    - b_xfer
    - b_data
    - b_contig_data
    - spop_strm_close
    - TRACE_STATE
    - BUG_ON
    - TRACE_ENTER
    - b_room
    - TRACE_PROTO
    - b_putchr
    - spop_get_buf
    - b_size
    - b_head_ofs
    - TRACE_LEAVE
    linkageType: ''
    returnType: int
    signature: int spop_conn_handle_ack(struct spop_conn *spop_conn, struct spop_strm
      *spop_strm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2006,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_spop.c:2022,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:2028,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2035,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 2
    argNames:
    - spop_conn
    - head
    argTypes:
    - struct spop_conn*
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2036
      start: 2002
    functionDepth: 1
    functionLinenumber: 2002
    functionLinenumberEnd: 2036
    functionName: spop_resume_each_sending_spop_strm
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_LEAVE
    - tasklet_wakeup
    - LIST_DEL_INIT
    - TRACE_ENTER
    linkageType: ''
    returnType: void
    signature: void spop_resume_each_sending_spop_strm(struct spop_conn *spop_conn,
      struct list *head)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_spop.c:2022,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:2028,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2008
    functionDepth: 1
    functionLinenumber: 2008
    functionLinenumberEnd: 2033
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 90
    functionsReached:
    - tasklet_wakeup
    - LIST_DEL_INIT
    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:2051,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_spop.c:2054,1
    - Dst: spop_resume_each_sending_spop_strm
      Src: /src/haproxy/src/mux_spop.c:2057,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2047
    functionDepth: 2
    functionLinenumber: 2047
    functionLinenumberEnd: 2059
    functionName: spop_remove_from_list
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - LIST_INLIST
    - spop_resume_each_sending_spop_strm
    - LIST_DEL_INIT
    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:2068,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:2073,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2075,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2080,1
    - Dst: spop_get_frame_hdr
      Src: /src/haproxy/src/mux_spop.c:2081,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2083,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2088,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2090,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2091,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2095,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2097,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2098,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2103,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2105,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2106,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2118,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2119,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2125,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:2130,1
    - Dst: spop_get_frame_hdr
      Src: /src/haproxy/src/mux_spop.c:2131,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: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2149,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2153,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2154,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2155,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2159,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2160,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2161,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2165,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2166,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2167,1
    - Dst: spop_conn_st_by_id
      Src: /src/haproxy/src/mux_spop.c:2172,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2173,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2174,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2175,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:2178,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2180,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:2181,1
    - Dst: spop_strm_notify_recv
      Src: /src/haproxy/src/mux_spop.c:2182,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2189,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2190,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2191,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2201,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2202,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2203,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2212,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2213,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2214,1
    - Dst: spop_conn_handle_hello
      Src: /src/haproxy/src/mux_spop.c:2226,1
    - Dst: spop_conn_handle_disconnect
      Src: /src/haproxy/src/mux_spop.c:2230,1
    - Dst: spop_conn_handle_ack
      Src: /src/haproxy/src/mux_spop.c:2234,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:2238,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_spop.c:2240,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2240,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:2241,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:2250,1
    - Dst: spop_conn_send_disconnect
      Src: /src/haproxy/src/mux_spop.c:2251,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2260,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_spop.c:2261,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2261,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:2262,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2266,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2278,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2278,1
    - Dst: spop_conn_error
      Src: /src/haproxy/src/mux_spop.c:2279,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:2281,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2282,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:2286,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2286,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:2290,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2290,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2294,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2295,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2296,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:2299,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2301,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:2302,1
    - Dst: spop_strm_notify_recv
      Src: /src/haproxy/src/mux_spop.c:2303,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:2306,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2308,1
    CyclomaticComplexity: 93
    EdgeCount: 93
    ICount: 201
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2063
    functionDepth: 9
    functionLinenumber: 2063
    functionLinenumberEnd: 2310
    functionName: spop_process_demux
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - unlikely
    - spop_conn_handle_hello
    - eb_is_empty
    - spop_get_frame_hdr
    - TRACE_LEAVE
    - spop_conn_st_by_id
    - MIN
    - b_data
    - spop_conn_restart_reading
    - spop_conn_read0_pending
    - se_fl_set
    - se_fl_test
    - spop_conn_error
    - TRACE_PROTO
    - spop_conn_send_disconnect
    - spop_conn_handle_ack
    - spop_strm_sc
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - b_del
    - spop_conn_handle_disconnect
    - spop_strm_notify_recv
    - spop_conn_report_term_evt
    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:2318,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:2320,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:2321,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:2322,1
    - Dst: unlikely
      Src: /src/haproxy/src/mux_spop.c:2323,1
    - Dst: spop_conn_send_hello
      Src: /src/haproxy/src/mux_spop.c:2323,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2326,1
    - Dst: spop_resume_each_sending_spop_strm
      Src: /src/haproxy/src/mux_spop.c:2334,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2340,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2316
    functionDepth: 3
    functionLinenumber: 2316
    functionLinenumberEnd: 2342
    functionName: spop_process_mux
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - unlikely
    - spop_conn_send_hello
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_PROTO
    - spop_resume_each_sending_spop_strm
    - TRACE_LEAVE
    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:2354,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2357,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2358,1
    - Dst: spop_recv_allowed
      Src: /src/haproxy/src/mux_spop.c:2361,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2362,1
    - Dst: spop_get_buf
      Src: /src/haproxy/src/mux_spop.c:2366,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2368,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_spop.c:2373,1
    - Dst: struct connection*::xprt::rcv_buf
      Src: /src/haproxy/src/mux_spop.c:2374,1
    - Dst: spop_recv_allowed
      Src: /src/haproxy/src/mux_spop.c:2376,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2377,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_spop.c:2378,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2381,1
    - Dst: conn_xprt_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2383,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2384,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2388,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2389,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2393,1
    - Dst: spop_release_buf
      Src: /src/haproxy/src/mux_spop.c:2394,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2399,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2404,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 44
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2406
      start: 2347
    functionDepth: 2
    functionLinenumber: 2347
    functionLinenumberEnd: 2406
    functionName: spop_recv
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - conn_xprt_read0_pending
    - spop_recv_allowed
    - b_data
    - spop_release_buf
    - TRACE_DATA
    - TRACE_ENTER
    - b_room
    - struct connection*::xprt::subscribe
    - struct connection*::xprt::rcv_buf
    - spop_get_buf
    - TRACE_LEAVE
    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:2417,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2420,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_spop.c:2423,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:2423,1
    - Dst: spop_process_mux
      Src: /src/haproxy/src/mux_spop.c:2460,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_spop.c:2471,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:2471,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_spop.c:2471,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2472,1
    - Dst: struct connection*::xprt::snd_buf
      Src: /src/haproxy/src/mux_spop.c:2475,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2475,1
    - Dst: TRACE_DATA
      Src: /src/haproxy/src/mux_spop.c:2481,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:2482,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2483,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_spop.c:2488,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_spop.c:2493,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2497,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:2503,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_spop.c:2506,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:2506,1
    - Dst: spop_resume_each_sending_spop_strm
      Src: /src/haproxy/src/mux_spop.c:2514,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:2518,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2519,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:2524,1
    - Dst: struct connection*::xprt::subscribe
      Src: /src/haproxy/src/mux_spop.c:2525,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2528,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 73
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2531
      start: 2411
    functionDepth: 4
    functionLinenumber: 2411
    functionLinenumberEnd: 2531
    functionName: spop_send
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - offer_buffers
    - TRACE_DATA
    - br_tail
    - b_free
    - spop_process_mux
    - b_data
    - br_head
    - struct connection*::xprt::subscribe
    - br_del_head
    - b_size
    - spop_resume_each_sending_spop_strm
    - br_data
    - TRACE_STATE
    - TRACE_ENTER
    - b_del
    - spop_conn_report_term_evt
    - b_reset
    - struct connection*::xprt::snd_buf
    linkageType: ''
    returnType: int
    signature: int spop_send(struct spop_conn *spop_conn)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_spop.c:2547,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2553,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_spop.c:2554,1
    - Dst: TRACE_POINT
      Src: /src/haproxy/src/mux_spop.c:2558,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_spop.c:2563,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_spop.c:2567,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2571,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2575,1
    - Dst: spop_send
      Src: /src/haproxy/src/mux_spop.c:2580,1
    - Dst: spop_recv
      Src: /src/haproxy/src/mux_spop.c:2582,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2583,1
    - Dst: spop_process
      Src: /src/haproxy/src/mux_spop.c:2584,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_spop.c:2595,1
    - Dst: session_reinsert_idle_conn
      Src: /src/haproxy/src/mux_spop.c:2599,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/mux_spop.c:2605,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_spop.c:2606,1
    - Dst: _srv_add_idle
      Src: /src/haproxy/src/mux_spop.c:2607,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2608,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:2619,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 56
    argCount: 3
    argNames:
    - t
    - ctx
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2621
      start: 2535
    functionDepth: 5
    functionLinenumber: 2535
    functionLinenumberEnd: 2621
    functionName: spop_io_cb
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_send
    - tasklet_free
    - spop_release
    - spop_recv
    - conn_delete_from_tree
    - b_data
    - objt_server
    - TRACE_ENTER
    - _srv_add_idle
    - ASSUME_NONNULL
    - HA_SPIN_LOCK
    - session_detach_idle_conn
    - TRACE_POINT
    - HA_SPIN_UNLOCK
    - spop_process
    - session_reinsert_idle_conn
    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:2631,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2634,1
    - Dst: spop_process_demux
      Src: /src/haproxy/src/mux_spop.c:2635,1
    - Dst: b_reset
      Src: /src/haproxy/src/mux_spop.c:2638,1
    - Dst: b_room
      Src: /src/haproxy/src/mux_spop.c:2640,1
    - Dst: spop_send
      Src: /src/haproxy/src/mux_spop.c:2643,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/mux_spop.c:2655,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:2658,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2659,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:2659,1
    - Dst: spop_strm_notify_recv
      Src: /src/haproxy/src/mux_spop.c:2660,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_spop.c:2661,1
    - Dst: spop_conn_read0_pending
      Src: /src/haproxy/src/mux_spop.c:2665,1
    - Dst: spop_wake_some_streams
      Src: /src/haproxy/src/mux_spop.c:2667,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2669,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:2671,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2672,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_spop.c:2678,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_spop.c:2679,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2680,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2684,1
    - Dst: spop_release_buf
      Src: /src/haproxy/src/mux_spop.c:2685,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:2688,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_spop.c:2688,1
    - Dst: spop_release_mbuf
      Src: /src/haproxy/src/mux_spop.c:2689,1
    - Dst: spop_conn_update_timeout
      Src: /src/haproxy/src/mux_spop.c:2691,1
    - Dst: spop_send
      Src: /src/haproxy/src/mux_spop.c:2692,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2693,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 1
    argNames:
    - spop_conn
    argTypes:
    - struct spop_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2695
      start: 2627
    functionDepth: 10
    functionLinenumber: 2627
    functionLinenumberEnd: 2695
    functionName: spop_process
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - TRACE_DEVEL
    - eb32_lookup_ge
    - HA_SPIN_LOCK
    - eb_is_empty
    - TRACE_LEAVE
    - b_data
    - container_of
    - eb32_next
    - spop_wake_some_streams
    - spop_conn_update_timeout
    - HA_SPIN_UNLOCK
    - spop_release_mbuf
    - LIST_ISEMPTY
    - spop_conn_read0_pending
    - spop_send
    - se_fl_test
    - spop_release_buf
    - b_room
    - spop_strm_sc
    - spop_release
    - br_data
    - conn_delete_from_tree
    - spop_process_demux
    - TRACE_POINT
    - spop_strm_notify_recv
    - 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:2702,1
    - Dst: spop_process
      Src: /src/haproxy/src/mux_spop.c:2703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2698
    functionDepth: 11
    functionLinenumber: 2698
    functionLinenumberEnd: 2704
    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: 2728
      start: 2706
    functionDepth: 0
    functionLinenumber: 2706
    functionLinenumberEnd: 2728
    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:2733,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/mux_spop.c:2744,1
    - Dst: spop_dump_spop_strm_info
      Src: /src/haproxy/src/mux_spop.c:2747,1
    - Dst: spop_dump_spop_conn_info
      Src: /src/haproxy/src/mux_spop.c:2750,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:2753,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_spop.c:2755,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: 2765
      start: 2730
    functionDepth: 2
    functionLinenumber: 2730
    functionLinenumberEnd: 2765
    functionName: spop_sctl
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - get_trash_chunk
    - chunk_appendf
    - spop_dump_spop_conn_info
    - spop_dump_spop_strm_info
    - tevt_evts2str
    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:2776,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2778,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/mux_spop.c:2781,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2787,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2793,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2794,1
    - Dst: conn_delete_from_tree
      Src: /src/haproxy/src/mux_spop.c:2802,1
    - Dst: session_detach_idle_conn
      Src: /src/haproxy/src/mux_spop.c:2804,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/mux_spop.c:2806,1
    - Dst: spop_conn_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:2808,1
    - Dst: task_destroy
      Src: /src/haproxy/src/mux_spop.c:2812,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2816,1
    - Dst: spop_wake_some_streams
      Src: /src/haproxy/src/mux_spop.c:2822,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:2824,1
    - Dst: spop_conn_send_disconnect
      Src: /src/haproxy/src/mux_spop.c:2831,1
    - Dst: br_data
      Src: /src/haproxy/src/mux_spop.c:2834,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/src/mux_spop.c:2835,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_spop.c:2839,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:2839,1
    - Dst: br_del_head
      Src: /src/haproxy/src/mux_spop.c:2839,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2840,1
    - Dst: struct spop_conn*::conn::xprt::snd_buf
      Src: /src/haproxy/src/mux_spop.c:2841,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2842,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:2845,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:2846,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_spop.c:2848,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_spop.c:2854,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2861,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:2862,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2864,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 60
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2773
    functionDepth: 8
    functionLinenumber: 2773
    functionLinenumberEnd: 2866
    functionName: spop_timeout_task
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - offer_buffers
    - task_destroy
    - HA_SPIN_LOCK
    - session_detach_idle_conn
    - eb_is_empty
    - b_free
    - TRACE_LEAVE
    - tick_is_expired
    - struct spop_conn*::conn::xprt::snd_buf
    - b_data
    - spop_wake_some_streams
    - conn_xprt_ready
    - HA_SPIN_UNLOCK
    - br_head
    - spop_conn_send_disconnect
    - br_del_head
    - b_size
    - br_data
    - spop_release
    - conn_delete_from_tree
    - TRACE_ENTER
    - b_del
    - spop_conn_report_term_evt
    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: 2881
      start: 2877
    functionDepth: 0
    functionLinenumber: 2877
    functionLinenumberEnd: 2881
    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: 2894
      start: 2890
    functionDepth: 0
    functionLinenumber: 2890
    functionLinenumberEnd: 2894
    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:2908,1
    - Dst: spop_stconn_new
      Src: /src/haproxy/src/mux_spop.c:2909,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/mux_spop.c:2914,1
    - Dst: xprt_set_used
      Src: /src/haproxy/src/mux_spop.c:2915,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2917,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2921,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: 2923
      start: 2903
    functionDepth: 6
    functionLinenumber: 2903
    functionLinenumberEnd: 2923
    functionName: spop_attach
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - HA_ATOMIC_AND
    - xprt_set_used
    - TRACE_ENTER
    - spop_stconn_new
    - TRACE_LEAVE
    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:2936,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:2938,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2939,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:2940,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_spop.c:2941,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2944
      start: 2930
    functionDepth: 1
    functionLinenumber: 2930
    functionLinenumberEnd: 2944
    functionName: spop_get_first_sc
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - eb32_next
    - container_of
    - eb32_first
    - spop_strm_sc
    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:2953,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:2954,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:2955,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:2956,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2958
      start: 2949
    functionDepth: 4
    functionLinenumber: 2949
    functionLinenumberEnd: 2958
    functionName: spop_destroy
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - eb_is_empty
    - BUG_ON
    - spop_release
    - TRACE_POINT
    linkageType: ''
    returnType: void
    signature: void spop_destroy(void *ctx)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:2969,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:2972,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:2990,1
    - Dst: tick_isset
      Src: /src/haproxy/src/mux_spop.c:2994,1
    - Dst: spop_conn_update_timeout
      Src: /src/haproxy/src/mux_spop.c:2995,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:3003,1
    - Dst: spop_strm_destroy
      Src: /src/haproxy/src/mux_spop.c:3006,1
    - Dst: session_add_conn
      Src: /src/haproxy/src/mux_spop.c:3011,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:3014,1
    - Dst: struct spop_conn*::conn::mux::destroy
      Src: /src/haproxy/src/mux_spop.c:3017,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3018,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_spop.c:3025,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_spop.c:3026,1
    - Dst: session_check_idle_conn
      Src: /src/haproxy/src/mux_spop.c:3029,1
    - Dst: struct spop_conn*::conn::mux::destroy
      Src: /src/haproxy/src/mux_spop.c:3030,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3031,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3039,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/mux_spop.c:3044,1
    - Dst: session_unown_conn
      Src: /src/haproxy/src/mux_spop.c:3049,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/mux_spop.c:3056,1
    - Dst: xprt_set_idle
      Src: /src/haproxy/src/mux_spop.c:3057,1
    - Dst: srv_add_to_idle_list
      Src: /src/haproxy/src/mux_spop.c:3059,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_spop.c:3059,1
    - Dst: struct spop_conn*::conn::mux::destroy
      Src: /src/haproxy/src/mux_spop.c:3061,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3062,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3069,1
    - Dst: ceb_intree
      Src: /src/haproxy/src/mux_spop.c:3072,1
    - Dst: spop_avail_streams
      Src: /src/haproxy/src/mux_spop.c:3073,1
    - Dst: objt_server
      Src: /src/haproxy/src/mux_spop.c:3073,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:3074,1
    - Dst: srv_add_to_avail_list
      Src: /src/haproxy/src/mux_spop.c:3075,1
    - Dst: __objt_server
      Src: /src/haproxy/src/mux_spop.c:3075,1
    - Dst: spop_conn_is_dead
      Src: /src/haproxy/src/mux_spop.c:3083,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3085,1
    - Dst: spop_release
      Src: /src/haproxy/src/mux_spop.c:3086,1
    - Dst: spop_conn_update_timeout
      Src: /src/haproxy/src/mux_spop.c:3089,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3090,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3093,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 1
    argNames:
    - sd
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3094
      start: 2963
    functionDepth: 5
    functionLinenumber: 2963
    functionLinenumberEnd: 3094
    functionName: spop_detach
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - spop_strm_destroy
    - spop_avail_streams
    - session_add_conn
    - eb_is_empty
    - LIST_INLIST
    - TRACE_LEAVE
    - ceb_intree
    - spop_conn_restart_reading
    - session_unown_conn
    - tick_isset
    - spop_conn_update_timeout
    - xprt_set_idle
    - HA_ATOMIC_OR
    - __objt_server
    - spop_release
    - srv_add_to_avail_list
    - spop_conn_is_dead
    - objt_server
    - TRACE_ENTER
    - struct spop_conn*::conn::mux::destroy
    - session_check_idle_conn
    - srv_add_to_idle_list
    linkageType: ''
    returnType: void
    signature: void spop_detach(struct sedesc *sd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3101,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:3110,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:3112,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:3116,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:3119,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3123
      start: 3097
    functionDepth: 3
    functionLinenumber: 3097
    functionLinenumberEnd: 3123
    functionName: spop_do_shutr
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - spop_strm_close
    - se_fl_test
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_LEAVE
    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:3130,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:3138,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:3144,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:3145,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:3151,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - spop_strm
    argTypes:
    - struct spop_strm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3155
      start: 3126
    functionDepth: 3
    functionLinenumber: 3126
    functionLinenumberEnd: 3155
    functionName: spop_do_shutw
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - tasklet_wakeup
    - spop_strm_close
    - se_fl_test
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_LEAVE
    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:3160,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3162,1
    - Dst: spop_do_shutw
      Src: /src/haproxy/src/mux_spop.c:3164,1
    - Dst: spop_do_shutr
      Src: /src/haproxy/src/mux_spop.c:3166,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3167,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: 3168
      start: 3158
    functionDepth: 4
    functionLinenumber: 3158
    functionLinenumberEnd: 3168
    functionName: spop_shut
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - spop_do_shutr
    - spop_do_shutw
    - TRACE_ENTER
    - TRACE_LEAVE
    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:3177,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:3180,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:3181,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3187,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3190,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:3191,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/mux_spop.c:3192,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: 3195
      start: 3175
    functionDepth: 1
    functionLinenumber: 3175
    functionLinenumberEnd: 3195
    functionName: spop_subscribe
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - BUG_ON
    - LIST_APPEND
    - 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:3203,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:3206,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/mux_spop.c:3207,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3214,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3217,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/mux_spop.c:3219,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: 3222
      start: 3201
    functionDepth: 1
    functionLinenumber: 3201
    functionLinenumberEnd: 3222
    functionName: spop_unsubscribe
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - 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:3239,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:3241,1
    - Dst: spop_get_buf
      Src: /src/haproxy/src/mux_spop.c:3243,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:3246,1
    - Dst: b_make
      Src: /src/haproxy/src/mux_spop.c:3252,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:3252,1
    - Dst: b_contig_space
      Src: /src/haproxy/src/mux_spop.c:3252,1
    - Dst: b_space_wraps
      Src: /src/haproxy/src/mux_spop.c:3253,1
    - Dst: b_slow_realign
      Src: /src/haproxy/src/mux_spop.c:3256,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3256,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_spop.c:3263,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:3266,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3267,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3267,1
    - Dst: encode_varint
      Src: /src/haproxy/src/mux_spop.c:3269,1
    - Dst: encode_varint
      Src: /src/haproxy/src/mux_spop.c:3271,1
    - Dst: memcpy
      Src: /src/haproxy/src/mux_spop.c:3277,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:3277,1
    - Dst: b_tail
      Src: /src/haproxy/src/mux_spop.c:3280,1
    - Dst: TRACE_PROTO
      Src: /src/haproxy/src/mux_spop.c:3286,1
    - Dst: spop_set_frame_size
      Src: /src/haproxy/src/mux_spop.c:3287,1
    - Dst: b_add
      Src: /src/haproxy/src/mux_spop.c:3289,1
    - Dst: b_del
      Src: /src/haproxy/src/mux_spop.c:3290,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3294,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3298,1
    - Dst: br_tail_add
      Src: /src/haproxy/src/mux_spop.c:3301,1
    - Dst: TRACE_STATE
      Src: /src/haproxy/src/mux_spop.c:3305,1
    - Dst: TRACE_ERROR
      Src: /src/haproxy/src/mux_spop.c:3310,1
    - Dst: spop_strm_error
      Src: /src/haproxy/src/mux_spop.c:3311,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3314,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: 3316
      start: 3230
    functionDepth: 2
    functionLinenumber: 3230
    functionLinenumberEnd: 3316
    functionName: spop_strm_send_notify
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - b_space_wraps
    - b_tail
    - b_peek
    - br_tail
    - TRACE_LEAVE
    - b_data
    - spop_strm_error
    - b_make
    - TRACE_PROTO
    - spop_get_buf
    - br_tail_add
    - b_size
    - b_contig_space
    - b_orig
    - encode_varint
    - TRACE_STATE
    - TRACE_ENTER
    - TRACE_ERROR
    - spop_set_frame_size
    - b_del
    - b_slow_realign
    - memcpy
    - b_add
    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:3332,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3336,1
    - Dst: b_xfer
      Src: /src/haproxy/src/mux_spop.c:3338,1
    - Dst: MIN
      Src: /src/haproxy/src/mux_spop.c:3338,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3338,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3339,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:3340,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/mux_spop.c:3342,1
    - Dst: spop_strm_propagate_term_flags
      Src: /src/haproxy/src/mux_spop.c:3343,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3344,1
    - Dst: b_free
      Src: /src/haproxy/src/mux_spop.c:3345,1
    - Dst: offer_buffers
      Src: /src/haproxy/src/mux_spop.c:3346,1
    - Dst: spop_conn_restart_reading
      Src: /src/haproxy/src/mux_spop.c:3353,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3356,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: 3358
      start: 3330
    functionDepth: 3
    functionLinenumber: 3330
    functionLinenumberEnd: 3358
    functionName: spop_rcv_buf
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - __sc_mux_strm
    - offer_buffers
    - MIN
    - se_fl_set
    - b_xfer
    - b_data
    - spop_conn_restart_reading
    - spop_strm_propagate_term_flags
    - TRACE_ENTER
    - TRACE_LEAVE
    - b_size
    - b_free
    - se_fl_clr
    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:3367,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/mux_spop.c:3372,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/mux_spop.c:3378,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/mux_spop.c:3379,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3380,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3382,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3391,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:3396,1
    - Dst: se_report_term_evt
      Src: /src/haproxy/src/mux_spop.c:3397,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3398,1
    - Dst: spop_conn_get_next_sid
      Src: /src/haproxy/src/mux_spop.c:3404,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/mux_spop.c:3407,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3408,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/mux_spop.c:3413,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/mux_spop.c:3418,1
    - Dst: b_peek
      Src: /src/haproxy/src/mux_spop.c:3422,1
    - Dst: spop_strm_send_notify
      Src: /src/haproxy/src/mux_spop.c:3426,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3433,1
    - Dst: spop_strm_error
      Src: /src/haproxy/src/mux_spop.c:3435,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3447,1
    - Dst: se_fl_set_error
      Src: /src/haproxy/src/mux_spop.c:3448,1
    - Dst: spop_strm_close
      Src: /src/haproxy/src/mux_spop.c:3449,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3454,1
    - Dst: spop_send
      Src: /src/haproxy/src/mux_spop.c:3455,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/mux_spop.c:3456,1
    - Dst: spop_remove_from_list
      Src: /src/haproxy/src/mux_spop.c:3463,1
    - Dst: TRACE_DEVEL
      Src: /src/haproxy/src/mux_spop.c:3464,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/mux_spop.c:3467,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: 3469
      start: 3365
    functionDepth: 5
    functionLinenumber: 3365
    functionLinenumberEnd: 3469
    functionName: spop_snd_buf
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - TRACE_DEVEL
    - __sc_mux_strm
    - spop_strm_send_notify
    - eb32_delete
    - b_peek
    - LIST_INLIST
    - TRACE_LEAVE
    - spop_strm_error
    - LIST_ISEMPTY
    - se_report_term_evt
    - spop_send
    - tasklet_wakeup
    - se_fl_set
    - spop_strm_close
    - se_fl_set_error
    - eb32_insert
    - TRACE_ENTER
    - spop_conn_get_next_sid
    - spop_remove_from_list
    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:3483,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3485,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3485,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:3486,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3486,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3487,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3490,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3492,1
    - Dst: se_fl_get
      Src: /src/haproxy/src/mux_spop.c:3492,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_spop.c:3492,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/mux_spop.c:3493,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3494,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3495,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3495,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_spop.c:3495,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3495,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3498,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3500,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3502,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3503,1
    - Dst: resolve_sym_name
      Src: /src/haproxy/src/mux_spop.c:3508,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3509,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: 3512
      start: 3476
    functionDepth: 6
    functionLinenumber: 3476
    functionLinenumberEnd: 3512
    functionName: spop_dump_spop_strm_info
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - b_orig
    - resolve_sym_name
    - b_data
    - chunk_appendf
    - tevt_evts2str
    - se_fl_test
    - b_size
    - b_head_ofs
    - spop_strm_sc
    - se_fl_get
    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:3532,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_spop.c:3536,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:3538,1
    - Dst: spop_strm_sc
      Src: /src/haproxy/src/mux_spop.c:3540,1
    - Dst: eb32_next
      Src: /src/haproxy/src/mux_spop.c:3542,1
    - Dst: br_head
      Src: /src/haproxy/src/mux_spop.c:3545,1
    - Dst: br_tail
      Src: /src/haproxy/src/mux_spop.c:3546,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3547,1
    - Dst: tevt_evts2str
      Src: /src/haproxy/src/mux_spop.c:3550,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3553,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3555,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3557,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3557,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:3558,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3558,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3562,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3564,1
    - Dst: br_head_idx
      Src: /src/haproxy/src/mux_spop.c:3565,1
    - Dst: br_tail_idx
      Src: /src/haproxy/src/mux_spop.c:3565,1
    - Dst: br_size
      Src: /src/haproxy/src/mux_spop.c:3565,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3566,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3566,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:3567,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3567,1
    - Dst: b_data
      Src: /src/haproxy/src/mux_spop.c:3568,1
    - Dst: b_orig
      Src: /src/haproxy/src/mux_spop.c:3568,1
    - Dst: b_head_ofs
      Src: /src/haproxy/src/mux_spop.c:3569,1
    - Dst: b_size
      Src: /src/haproxy/src/mux_spop.c:3569,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3571,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3573,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/mux_spop.c:3574,1
    - Dst: human_time
      Src: /src/haproxy/src/mux_spop.c:3575,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_spop.c:3575,1
    - Dst: TICKS_TO_MS
      Src: /src/haproxy/src/mux_spop.c:3575,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: 3579
      start: 3519
    functionDepth: 2
    functionLinenumber: 3519
    functionLinenumberEnd: 3579
    functionName: spop_dump_spop_conn_info
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 1
    functionsReached:
    - br_head_idx
    - br_tail
    - tick_is_expired
    - b_data
    - chunk_appendf
    - container_of
    - eb32_next
    - human_time
    - b_head_ofs
    - tevt_evts2str
    - br_tail_idx
    - br_head
    - br_size
    - b_size
    - spop_strm_sc
    - b_orig
    - list_for_each_entry
    - eb32_first
    - TICKS_TO_MS
    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:3592,1
    - Dst: eb32_first
      Src: /src/haproxy/src/mux_spop.c:3594,1
    - Dst: container_of
      Src: /src/haproxy/src/mux_spop.c:3596,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3597,1
    - Dst: spop_dump_spop_strm_info
      Src: /src/haproxy/src/mux_spop.c:3598,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - msg
    - conn
    argTypes:
    - struct buffer*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3582
    functionDepth: 7
    functionLinenumber: 3582
    functionLinenumberEnd: 3602
    functionName: spop_show_fd
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - container_of
    - eb32_first
    - spop_dump_spop_conn_info
    - spop_dump_spop_strm_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:3617,1
    - Dst: spop_dump_spop_strm_info
      Src: /src/haproxy/src/mux_spop.c:3618,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3620,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/mux_spop.c:3621,1
    - Dst: spop_dump_spop_conn_info
      Src: /src/haproxy/src/mux_spop.c:3622,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - msg
    - sd
    - pfx
    argTypes:
    - struct buffer*
    - struct sedesc*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3624
      start: 3609
    functionDepth: 7
    functionLinenumber: 3609
    functionLinenumberEnd: 3624
    functionName: spop_show_sd
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - spop_dump_spop_strm_info
    - chunk_appendf
    - spop_dump_spop_conn_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:3645,1
    - Dst: task_new_here
      Src: /src/haproxy/src/mux_spop.c:3653,1
    - Dst: tasklet_new
      Src: /src/haproxy/src/mux_spop.c:3654,1
    - Dst: fd_takeover
      Src: /src/haproxy/src/mux_spop.c:3659,1
    - Dst: struct connection*::xprt::takeover
      Src: /src/haproxy/src/mux_spop.c:3662,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_spop.c:3669,1
    - Dst: struct spop_conn*::conn::xprt::unsubscribe
      Src: /src/haproxy/src/mux_spop.c:3674,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/mux_spop.c:3684,1
    - Dst: task_kill
      Src: /src/haproxy/src/mux_spop.c:3685,1
    - Dst: tasklet_wakeup_on
      Src: /src/haproxy/src/mux_spop.c:3699,1
    - Dst: struct spop_conn*::conn::xprt::subscribe
      Src: /src/haproxy/src/mux_spop.c:3705,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_spop.c:3710,1
    - Dst: __task_free
      Src: /src/haproxy/src/mux_spop.c:3714,1
    - Dst: tasklet_free
      Src: /src/haproxy/src/mux_spop.c:3715,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 52
    argCount: 3
    argNames:
    - conn
    - orig_tid
    - release
    argTypes:
    - struct connection*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3717
      start: 3630
    functionDepth: 2
    functionLinenumber: 3630
    functionLinenumberEnd: 3717
    functionName: spop_takeover
    functionSourceFile: /src/haproxy/src/mux_spop.c
    functionUses: 0
    functionsReached:
    - struct connection*::xprt::takeover
    - struct spop_conn*::conn::xprt::subscribe
    - tasklet_new
    - tasklet_free
    - fd_takeover
    - tasklet_wakeup_on
    - __task_free
    - struct spop_conn*::conn::xprt::unsubscribe
    - task_new_here
    - task_kill
    - LIST_INLIST
    - __ha_barrier_store
    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_appendf
    - stats_emit_raw_data_field
    - __objt_proxy
    - chunk_strcat
    - ABORT_NOW
    - LIST_ELEM
    - field_format
    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_appendf
    - chunk_strcat
    - BUG_ON
    - stcol_is_generic
    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:
    - isteq
    - istlen
    - memset
    - iststrip
    - istptr
    - istsplit
    - ebmb_entry
    - ebst_lookup
    - ist0
    - ist
    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:
    - read_uint64
    - preload_freq_ctr
    - stcol_nature
    - istptr
    - read_uint
    - ns_to_sec
    - stcol_format
    - istend
    linkageType: ''
    returnType: int
    signature: "int load_ctr(const struct stat_col *col, const struct ist token,\n
      \                   void* counter)"
  - BBCount: 21
    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:326,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stats-file.c:344,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:359,1
    - Dst: istsplit
      Src: /src/haproxy/src/stats-file.c:362,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:363,1
    - Dst: load_ctr
      Src: /src/haproxy/src/stats-file.c:370,1
    - Dst: load_ctr
      Src: /src/haproxy/src/stats-file.c:372,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 78
    argCount: 3
    argNames:
    - line
    - domain
    - cols
    argTypes:
    - struct ist
    - enum stfile_domain
    - struct stat_col*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 379
    functionName: parse_stat_line
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - obj_type
    - istlen
    - __objt_listener
    - __objt_server
    - guid_lookup
    - __objt_proxy
    - istsplit
    - guid_is_valid_fmt
    - load_ctr
    - ist0
    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:396,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:398,1
    - Dst: generate_stat_tree
      Src: /src/haproxy/src/stats-file.c:403,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:404,1
    - Dst: malloc
      Src: /src/haproxy/src/stats-file.c:408,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:410,1
    - Dst: fgets
      Src: /src/haproxy/src/stats-file.c:417,1
    - Dst: iststrip
      Src: /src/haproxy/src/stats-file.c:421,1
    - Dst: ist
      Src: /src/haproxy/src/stats-file.c:421,1
    - Dst: istlen
      Src: /src/haproxy/src/stats-file.c:422,1
    - Dst: istmatch
      Src: /src/haproxy/src/stats-file.c:426,1
    - Dst: ist
      Src: /src/haproxy/src/stats-file.c:426,1
    - Dst: istptr
      Src: /src/haproxy/src/stats-file.c:429,1
    - Dst: parse_header_line
      Src: /src/haproxy/src/stats-file.c:430,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:432,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:436,1
    - Dst: parse_stat_line
      Src: /src/haproxy/src/stats-file.c:442,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:443,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:450,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/stats-file.c:457,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/stats-file.c:458,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/stats-file.c:459,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/stats-file.c:461,1
    - Dst: ha_free
      Src: /src/haproxy/src/stats-file.c:462,1
    - Dst: ha_free
      Src: /src/haproxy/src/stats-file.c:465,1
    - Dst: fclose
      Src: /src/haproxy/src/stats-file.c:466,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 382
    functionDepth: 9
    functionLinenumber: 382
    functionLinenumberEnd: 467
    functionName: apply_stats_file
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 1
    functionsReached:
    - istmatch
    - ebmb_delete
    - ha_warning
    - istlen
    - generate_stat_tree
    - ebmb_first
    - iststrip
    - parse_header_line
    - ha_free
    - fgets
    - istptr
    - fclose
    - malloc
    - parse_stat_line
    - eb_is_empty
    - ebmb_entry
    - fopen
    - ist
    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: 481
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 481
    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:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - hb
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 486
    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(int hb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:494,1
    - Dst: shm_hb_is_stale
      Src: /src/haproxy/src/stats-file.c:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - hdr
    - id
    argTypes:
    - struct shm_stats_file_hdr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 496
    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:507,1
    - Dst: shm_hb_is_stale
      Src: /src/haproxy/src/stats-file.c:509,1
    - Dst: tick_add
      Src: /src/haproxy/src/stats-file.c:510,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stats-file.c:510,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:512,1
    - Dst: getpid
      Src: /src/haproxy/src/stats-file.c:513,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stats-file.c:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - struct shm_stats_file_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 501
    functionDepth: 2
    functionLinenumber: 501
    functionLinenumberEnd: 522
    functionName: shm_stats_file_get_free_slot
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - tick_add
    - getpid
    - __ha_cpu_relax
    - HA_ATOMIC_CAS
    - HA_ATOMIC_LOAD
    - shm_hb_is_stale
    - MS_TO_TICKS
    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:541,1
    - Dst: MIN
      Src: /src/haproxy/src/stats-file.c:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: shm_file_grow
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - MIN
    - write
    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:558,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:559,1
    - Dst: SHM_STATS_FILE_OBJECT
      Src: /src/haproxy/src/stats-file.c:566,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:567,1
    - Dst: shm_stats_file_slot_isfree
      Src: /src/haproxy/src/stats-file.c:582,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:601,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/stats-file.c:605,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:609,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 617
    functionName: shm_stats_file_reuse_object
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - BUG_ON
    - HA_ATOMIC_CAS
    - HA_ATOMIC_LOAD
    - shm_stats_file_slot_isfree
    - 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:639,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stats-file.c:639,1
    - Dst: shm_stats_file_reuse_object
      Src: /src/haproxy/src/stats-file.c:642,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:651,1
    - Dst: memprintf
      Src: /src/haproxy/src/stats-file.c:654,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:660,1
    - Dst: shm_file_grow
      Src: /src/haproxy/src/stats-file.c:675,1
    - Dst: memprintf
      Src: /src/haproxy/src/stats-file.c:676,1
    - Dst: strerror
      Src: /src/haproxy/src/stats-file.c:677,1
    - Dst: HA_ATOMIC_ADD
      Src: /src/haproxy/src/stats-file.c:680,1
    - Dst: SHM_STATS_FILE_OBJECT
      Src: /src/haproxy/src/stats-file.c:684,1
    - Dst: memset
      Src: /src/haproxy/src/stats-file.c:685,1
    - Dst: HA_ATOMIC_FETCH_ADD
      Src: /src/haproxy/src/stats-file.c:687,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stats-file.c:689,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:694,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stats-file.c:696,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 1
    argNames:
    - errmsg
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 626
    functionDepth: 5
    functionLinenumber: 626
    functionLinenumberEnd: 701
    functionName: shm_stats_file_add_object
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_ADD
    - SHM_STATS_FILE_OBJECT
    - memset
    - tick_is_expired
    - __ha_cpu_relax
    - shm_stats_file_reuse_object
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_CAS
    - memprintf
    - strerror
    - HA_ATOMIC_FETCH_ADD
    - MS_TO_TICKS
    - shm_file_grow
    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:712,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:712,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:713,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/stats-file.c:717,1
    - Dst: tick_add
      Src: /src/haproxy/src/stats-file.c:718,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/stats-file.c:718,1
    - Dst: tick_add
      Src: /src/haproxy/src/stats-file.c:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - task
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 703
    functionDepth: 9
    functionLinenumber: 703
    functionLinenumberEnd: 722
    functionName: shm_stats_file_hb
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - tick_add
    - ha_warning
    - tick_is_expired
    - HA_ATOMIC_STORE
    - HA_ATOMIC_LOAD
    - MS_TO_TICKS
    linkageType: ''
    returnType: struct task
    signature: struct task *shm_stats_file_hb(struct task *task, void *context, unsigned
      int state)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:734,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:735,1
    - Dst: SHM_STATS_FILE_OBJECT
      Src: /src/haproxy/src/stats-file.c:744,1
    - Dst: HA_ATOMIC_FETCH_OR
      Src: /src/haproxy/src/stats-file.c:746,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:755,1
    - Dst: guid_lookup
      Src: /src/haproxy/src/stats-file.c:759,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:765,1
    - Dst: __objt_listener
      Src: /src/haproxy/src/stats-file.c:766,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:776,1
    - Dst: __objt_server
      Src: /src/haproxy/src/stats-file.c:777,1
    - Dst: __objt_proxy
      Src: /src/haproxy/src/stats-file.c:786,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/stats-file.c:807,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 811
    functionName: shm_stats_file_preload
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_AND
    - __objt_listener
    - __objt_server
    - guid_lookup
    - BUG_ON
    - __objt_proxy
    - HA_ATOMIC_LOAD
    - SHM_STATS_FILE_OBJECT
    - HA_ATOMIC_FETCH_OR
    linkageType: ''
    returnType: void
    signature: void shm_stats_file_preload(void)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:821,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/stats-file.c:824,1
    - Dst: open
      Src: /src/haproxy/src/stats-file.c:838,1
    - Dst: open
      Src: /src/haproxy/src/stats-file.c:840,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats-file.c:842,1
    - Dst: strerror
      Src: /src/haproxy/src/stats-file.c:842,1
    - Dst: shm_file_grow
      Src: /src/haproxy/src/stats-file.c:848,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats-file.c:849,1
    - Dst: mmap
      Src: /src/haproxy/src/stats-file.c:856,1
    - Dst: SHM_STATS_FILE_MAPPING_SIZE
      Src: /src/haproxy/src/stats-file.c:857,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats-file.c:860,1
    - Dst: memset
      Src: /src/haproxy/src/stats-file.c:866,1
    - Dst: clock_get_now_offset
      Src: /src/haproxy/src/stats-file.c:873,1
    - Dst: shm_stats_file_check_ver
      Src: /src/haproxy/src/stats-file.c:875,1
    - Dst: clock_get_now_offset
      Src: /src/haproxy/src/stats-file.c:889,1
    - Dst: clock_set_now_offset
      Src: /src/haproxy/src/stats-file.c:898,1
    - Dst: clock_update_global_date
      Src: /src/haproxy/src/stats-file.c:901,1
    - Dst: clock_set_now_offset
      Src: /src/haproxy/src/stats-file.c:908,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:908,1
    - Dst: tv_to_ns
      Src: /src/haproxy/src/stats-file.c:908,1
    - Dst: clock_update_date
      Src: /src/haproxy/src/stats-file.c:911,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/stats-file.c:921,1
    - Dst: shm_stats_file_slot_isfree
      Src: /src/haproxy/src/stats-file.c:923,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/stats-file.c:933,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/stats-file.c:934,1
    - Dst: shm_stats_file_get_free_slot
      Src: /src/haproxy/src/stats-file.c:942,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:944,1
    - Dst: munmap
      Src: /src/haproxy/src/stats-file.c:945,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/stats-file.c:952,1
    - Dst: ha_alert
      Src: /src/haproxy/src/stats-file.c:954,1
    - Dst: task_schedule
      Src: /src/haproxy/src/stats-file.c:958,1
    - Dst: tick_add
      Src: /src/haproxy/src/stats-file.c:958,1
    - Dst: shm_stats_file_preload
      Src: /src/haproxy/src/stats-file.c:961,1
    - Dst: ha_warning
      Src: /src/haproxy/src/stats-file.c:967,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 814
    functionDepth: 9
    functionLinenumber: 814
    functionLinenumberEnd: 969
    functionName: shm_stats_file_prepare
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 1
    functionsReached:
    - clock_update_global_date
    - clock_get_now_offset
    - clock_set_now_offset
    - tv_to_ns
    - strerror
    - shm_stats_file_get_free_slot
    - shm_stats_file_check_ver
    - shm_file_grow
    - shm_stats_file_preload
    - ha_warning
    - open
    - munmap
    - shm_stats_file_slot_isfree
    - memset
    - BUG_ON
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_CAS
    - task_new_anywhere
    - ha_alert
    - task_schedule
    - tick_add
    - __ha_cpu_relax
    - mmap
    - clock_update_date
    - SHM_STATS_FILE_MAPPING_SIZE
    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:975,1
    - Dst: munmap
      Src: /src/haproxy/src/stats-file.c:978,1
    - Dst: SHM_STATS_FILE_MAPPING_SIZE
      Src: /src/haproxy/src/stats-file.c:978,1
    - Dst: close
      Src: /src/haproxy/src/stats-file.c:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 971
    functionDepth: 1
    functionLinenumber: 971
    functionLinenumberEnd: 981
    functionName: cleanup_shm_stats_file
    functionSourceFile: /src/haproxy/src/stats-file.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - munmap
    - close
    - SHM_STATS_FILE_MAPPING_SIZE
    linkageType: ''
    returnType: void
    signature: void cleanup_shm_stats_file(void)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: mkf_str
      Src: /src/haproxy/src/resolvers.c:134,1
    - Dst: mkf_str
      Src: /src/haproxy/src/resolvers.c:137,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:140,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:143,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:146,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:149,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:152,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:155,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:158,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:161,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:164,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:167,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:170,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:173,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:176,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:179,1
    - Dst: mkf_u64
      Src: /src/haproxy/src/resolvers.c:182,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 64
    argCount: 3
    argNames:
    - d
    - stats
    - selected_field
    argTypes:
    - void*
    - struct field*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 197
    functionName: resolv_fill_stats
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - mkf_str
    - mkf_u64
    linkageType: ''
    returnType: int
    signature: int resolv_fill_stats(void *d, struct field *stats, unsigned int *selected_field)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_inet6_reachable
      Src: /src/haproxy/src/resolvers.c:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 234
    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:243,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 248
    functionName: find_resolvers_by_id
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - strcmp
    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:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - parent
    - id
    argTypes:
    - struct resolvers*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 262
    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:271,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:272,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - px
    argTypes:
    - char*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 276
    functionName: find_srvrq_by_name
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - strcmp
    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:286,1
    - Dst: resolv_str_to_dn_label
      Src: /src/haproxy/src/resolvers.c:287,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:290,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:291,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:295,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:296,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:297,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:302,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:303,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:306,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:307,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:310,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:312,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:317,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:318,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:319,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - srv
    - fqdn
    argTypes:
    - struct server*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 280
    functionDepth: 9
    functionLinenumber: 280
    functionLinenumberEnd: 322
    functionName: new_resolv_srvrq
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - strdup
    - resolv_str_to_dn_label
    - LIST_APPEND
    - strlen
    - free
    - LIST_INIT
    - ha_alert
    - proxy_type_str
    - calloc
    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:338,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:348,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:348,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:349,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:349,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:351,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - requester
    argTypes:
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 357
    functionName: find_srvrq_answer_record
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - memcmp
    - eb32_next
    - objt_server
    - eb32_first
    - eb32_entry
    - typeof
    linkageType: ''
    returnType: struct resolv_answer_item
    signature: struct resolv_answer_item *find_srvrq_answer_record(const struct resolv_requester
      *requester)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 368
    functionName: resolv_rnd16
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t resolv_rnd16(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 374
    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:382,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:383,1
    - Dst: tick_add
      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: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:388,1
    - Dst: tick_first
      Src: /src/haproxy/src/resolvers.c:389,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:389,1
    - Dst: resolv_resolution_timeout
      Src: /src/haproxy/src/resolvers.c:389,1
    - Dst: task_queue
      Src: /src/haproxy/src/resolvers.c:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - resolvers
    argTypes:
    - struct resolvers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 377
    functionDepth: 2
    functionLinenumber: 377
    functionLinenumberEnd: 393
    functionName: resolv_update_resolvers_timeout
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - tick_add
    - list_for_each_entry
    - resolv_resolution_timeout
    - task_queue
    - LIST_NEXT
    - tick_first
    - LIST_ISEMPTY
    linkageType: ''
    returnType: void
    signature: void resolv_update_resolvers_timeout(struct resolvers *resolvers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:416,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:419,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:420,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:421,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:424,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:425,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:429,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:434,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:435,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:436,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:441,1
    - Dst: htons
      Src: /src/haproxy/src/resolvers.c:442,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:445,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: 449
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 449
    functionName: resolv_build_query
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - htons
    - memset
    - memcpy
    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:465,1
    - Dst: send_log
      Src: /src/haproxy/src/resolvers.c:470,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:476,1
    - Dst: dns_send_nameserver
      Src: /src/haproxy/src/resolvers.c:477,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:482,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:483,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 454
    functionDepth: 12
    functionLinenumber: 454
    functionLinenumberEnd: 485
    functionName: resolv_send_query
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - resolv_build_query
    - dns_send_nameserver
    - LIST_DEL_INIT
    - send_log
    - LIST_APPEND
    linkageType: ''
    returnType: int
    signature: int resolv_send_query(struct resolv_resolution *resolution)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: resolv_rnd16
      Src: /src/haproxy/src/resolvers.c:510,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/resolvers.c:511,1
    - Dst: send_log
      Src: /src/haproxy/src/resolvers.c:516,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/resolvers.c:528,1
    - Dst: resolv_send_query
      Src: /src/haproxy/src/resolvers.c:532,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 490
    functionDepth: 13
    functionLinenumber: 490
    functionLinenumberEnd: 534
    functionName: resolv_run_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - resolv_rnd16
    - eb32_lookup
    - send_log
    - resolv_send_query
    - eb32_insert
    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:548,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:552,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:553,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:554,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:554,1
    - Dst: obj_type
      Src: /src/haproxy/src/resolvers.c:560,1
    - Dst: obj_type
      Src: /src/haproxy/src/resolvers.c:561,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/resolvers.c:563,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:566,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 13
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 567
    functionName: resolv_trigger_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - tick_add
    - obj_type
    - enter_resolver_code
    - tick_is_expired
    - task_wakeup
    - tick_isset
    - leave_resolver_code
    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:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 587
    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: 593
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 593
    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:653,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 59
    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: 683
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 683
    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:692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 694
    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:700,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:704,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 706
    functionName: abort_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - eb32_delete
    - LIST_DEL_INIT
    linkageType: ''
    returnType: void
    signature: void abort_resolution(struct resolv_resolution *res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:723,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:724,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 730
    functionName: leave_resolver_code
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - resolv_free_resolution
    - LIST_ISEMPTY
    - LIST_NEXT
    linkageType: ''
    returnType: void
    signature: void leave_resolver_code()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _resolv_unlink_resolution
      Src: /src/haproxy/src/resolvers.c:743,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:744,1
    - Dst: srvrq_set_srv_down
      Src: /src/haproxy/src/resolvers.c:745,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/resolvers.c:747,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:749,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:750,1
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:752,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/resolvers.c:754,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:757,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:758,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 739
    functionDepth: 3
    functionLinenumber: 739
    functionLinenumberEnd: 762
    functionName: resolv_srvrq_cleanup_srv
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - memset
    - _resolv_unlink_resolution
    - cebis_item_delete
    - ha_free
    - LIST_DEL_INIT
    - srvrq_set_srv_down
    - LIST_APPEND
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - server_set_inetaddr
    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:771,1
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:774,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:775,1
    - Dst: resolv_srvrq_cleanup_srv
      Src: /src/haproxy/src/resolvers.c:776,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:777,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:778,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 782
    functionName: resolv_srvrq_expire_task
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - enter_resolver_code
    - tick_is_expired
    - leave_resolver_code
    - resolv_srvrq_cleanup_srv
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:795,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:795,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:796,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:796,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/resolvers.c:800,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:800,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:804,1
    - Dst: tick_is_lt
      Src: /src/haproxy/src/resolvers.c:809,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:809,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:812,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:813,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:818,1
    - Dst: resolv_srvrq_cleanup_srv
      Src: /src/haproxy/src/resolvers.c:819,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/resolvers.c:824,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:826,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:829,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:837,1
    - Dst: objt_resolv_srvrq
      Src: /src/haproxy/src/resolvers.c:841,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:846,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:848,1
    - Dst: tolower
      Src: /src/haproxy/src/resolvers.c:862,1
    - Dst: cebis_item_lookup
      Src: /src/haproxy/src/resolvers.c:865,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:867,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/resolvers.c:877,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:881,1
    - Dst: cebis_item_next
      Src: /src/haproxy/src/resolvers.c:883,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:887,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:890,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:891,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:902,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:903,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:904,1
    - Dst: server_get_inetaddr
      Src: /src/haproxy/src/resolvers.c:919,1
    - Dst: _resolv_unlink_resolution
      Src: /src/haproxy/src/resolvers.c:948,1
    - Dst: server_set_inetaddr_warn
      Src: /src/haproxy/src/resolvers.c:954,1
    - Dst: server_set_inetaddr
      Src: /src/haproxy/src/resolvers.c:956,1
    - Dst: resolv_dn_label_to_str
      Src: /src/haproxy/src/resolvers.c:962,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:964,1
    - Dst: srv_update_fqdn
      Src: /src/haproxy/src/resolvers.c:967,1
    - Dst: send_log
      Src: /src/haproxy/src/resolvers.c:969,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/resolvers.c:972,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:973,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/resolvers.c:980,1
    - Dst: snprintf
      Src: /src/haproxy/src/resolvers.c:994,1
    - Dst: server_parse_weight_change_request
      Src: /src/haproxy/src/resolvers.c:995,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:997,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 123
    argCount: 1
    argNames:
    - res
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 787
    functionDepth: 10
    functionLinenumber: 787
    functionLinenumberEnd: 1001
    functionName: resolv_check_response
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - srv_update_fqdn
    - cebis_item_lookup
    - cebis_item_delete
    - pool_free
    - eb32_delete
    - resolv_srvrq_cleanup_srv
    - HA_SPIN_LOCK
    - server_set_inetaddr_warn
    - LIST_INLIST
    - tolower
    - objt_resolv_srvrq
    - _resolv_unlink_resolution
    - snprintf
    - list_for_each_entry_safe
    - eb32_next
    - eb32_entry
    - HA_SPIN_UNLOCK
    - server_set_inetaddr
    - tick_is_lt
    - LIST_DEL_INIT
    - resolv_link_resolution
    - LIST_APPEND
    - typeof
    - tick_add
    - server_parse_weight_change_request
    - list_for_each_entry
    - cebis_item_next
    - memcmp
    - eb32_first
    - send_log
    - server_get_inetaddr
    - resolv_dn_label_to_str
    linkageType: ''
    returnType: void
    signature: void resolv_check_response(struct resolv_resolution *res)
  - BBCount: 80
    BranchProfiles: []
    Callsites:
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1124,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1131,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/resolvers.c:1165,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:1172,1
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1176,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1183,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1200,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: eb32_lookup
      Src: /src/haproxy/src/resolvers.c:1335,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1335,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:1336,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:1336,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1342,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1349,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1357,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1374,1
    - Dst: eb32_insert
      Src: /src/haproxy/src/resolvers.c:1381,1
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1396,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/resolvers.c:1426,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:1430,1
    - Dst: resolv_read_name
      Src: /src/haproxy/src/resolvers.c:1433,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1436,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1441,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1490,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:1499,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1503,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:1520,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1520,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:1523,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:1523,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1530,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1535,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1542,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1558,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:1566,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1566,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:1567,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:1567,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1571,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1573,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1580,1
    - Dst: resolv_check_response
      Src: /src/haproxy/src/resolvers.c:1590,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:1597,1
    CyclomaticComplexity: 156
    EdgeCount: 156
    ICount: 401
    argCount: 4
    argNames:
    - resp
    - bufend
    - resolution
    - max_answer_records
    argTypes:
    - unsigned char*
    - unsigned char*
    - struct resolv_resolution*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1599
      start: 1012
    functionDepth: 11
    functionLinenumber: 1012
    functionLinenumberEnd: 1599
    functionName: resolv_validate_dns_response
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - read_n16
    - pool_free
    - eb32_lookup
    - memcmp
    - eb32_next
    - eb32_first
    - eb32_entry
    - pool_alloc
    - LIST_INIT
    - typeof
    - XXH32
    - eb32_insert
    - resolv_read_name
    - resolv_check_response
    - memcpy
    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:1626,1
    - Dst: eb_is_empty
      Src: /src/haproxy/src/resolvers.c:1630,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:1653,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1655,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:1660,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:1660,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:1661,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:1665,1
    - Dst: in_net_ipv4
      Src: /src/haproxy/src/resolvers.c:1685,1
    - Dst: in_net_ipv6
      Src: /src/haproxy/src/resolvers.c:1689,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:1704,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1727,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1729,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:1751,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:1757,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:1759,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:1802,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:1803,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: 1807
      start: 1609
    functionDepth: 3
    functionLinenumber: 1609
    functionLinenumberEnd: 1807
    functionName: resolv_get_ip_from_response
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - resolv_active_families
    - memcmp
    - in_net_ipv6
    - eb32_next
    - eb32_first
    - LIST_DEL_INIT
    - eb32_entry
    - LIST_APPEND
    - typeof
    - eb_is_empty
    - LIST_INLIST
    - in_net_ipv4
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/haproxy/src/resolvers.c:1834,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 4
    argNames:
    - dn
    - dn_len
    - str
    - str_len
    argTypes:
    - char*
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1838
    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:1874,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: 1879
      start: 1850
    functionDepth: 0
    functionLinenumber: 1850
    functionLinenumberEnd: 1879
    functionName: resolv_str_to_dn_label
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 3
    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:1892,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 27
    argCount: 2
    argNames:
    - string
    - err
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1888
    functionDepth: 0
    functionLinenumber: 1888
    functionLinenumberEnd: 1925
    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:1945,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1950,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:1955,1
    - Dst: memcmp
      Src: /src/haproxy/src/resolvers.c:1960,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/resolvers.c:1966,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:1974,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:1981,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:1990,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:1995,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: 1997
      start: 1935
    functionDepth: 1
    functionLinenumber: 1935
    functionLinenumberEnd: 1997
    functionName: resolv_pick_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - memcmp
    - pool_zalloc
    - LIST_APPEND
    - resolv_free_resolution
    - LIST_INIT
    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:2006,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:2007,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:2009,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:2009,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/resolvers.c:2010,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2011,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2012,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 2000
    functionDepth: 1
    functionLinenumber: 2000
    functionLinenumberEnd: 2014
    functionName: resolv_purge_resolution_answer_records
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - pool_free
    - eb32_next
    - eb32_first
    - eb32_entry
    - eb32_delete
    - typeof
    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:2022,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:2023,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2026,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2027,1
    - Dst: resolv_purge_resolution_answer_records
      Src: /src/haproxy/src/resolvers.c:2030,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2032,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - resolution
    argTypes:
    - struct resolv_resolution*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2034
      start: 2017
    functionDepth: 2
    functionLinenumber: 2017
    functionLinenumberEnd: 2034
    functionName: resolv_free_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 2
    functionsReached:
    - resolv_reset_resolution
    - pool_free
    - list_for_each_entry_safe
    - ha_free
    - LIST_DEL_INIT
    - resolv_purge_resolution_answer_records
    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:2051,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:2055,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - req
    - owner
    argTypes:
    - struct resolv_requester**
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2063
      start: 2041
    functionDepth: 1
    functionLinenumber: 2041
    functionLinenumberEnd: 2063
    functionName: resolv_get_requester
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - pool_alloc
    - LIST_INIT
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:2079,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:2085,1
    - Dst: resolv_get_requester
      Src: /src/haproxy/src/resolvers.c:2087,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:2093,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2102,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2103,1
    - Dst: resolv_get_requester
      Src: /src/haproxy/src/resolvers.c:2112,1
    - Dst: resolv_get_requester
      Src: /src/haproxy/src/resolvers.c:2128,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2139,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2140,1
    - Dst: resolv_pick_resolution
      Src: /src/haproxy/src/resolvers.c:2150,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:2155,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2156,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2160,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:2161,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2162,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 57
    argCount: 3
    argNames:
    - requester
    - requester_type
    - requester_locked
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2164
      start: 2068
    functionDepth: 3
    functionLinenumber: 2068
    functionLinenumberEnd: 2164
    functionName: resolv_link_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 2
    functionsReached:
    - resolv_get_requester
    - enter_resolver_code
    - resolv_active_families
    - resolv_pick_resolution
    - LIST_APPEND
    - leave_resolver_code
    - resolv_free_resolution
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    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:2174,1
    - Dst: objt_server
      Src: /src/haproxy/src/resolvers.c:2175,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2176,1
    - Dst: objt_resolv_srvrq
      Src: /src/haproxy/src/resolvers.c:2178,1
    - Dst: eb32_first
      Src: /src/haproxy/src/resolvers.c:2179,1
    - Dst: eb32_next
      Src: /src/haproxy/src/resolvers.c:2180,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:2182,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:2182,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2184,1
    - Dst: resolv_srvrq_cleanup_srv
      Src: /src/haproxy/src/resolvers.c:2186,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - res
    - req
    argTypes:
    - struct resolv_resolution*
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2167
    functionDepth: 4
    functionLinenumber: 2167
    functionLinenumberEnd: 2192
    functionName: resolv_detach_from_resolution_answer_items
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 2
    functionsReached:
    - objt_resolv_srvrq
    - enter_resolver_code
    - list_for_each_entry_safe
    - objt_server
    - eb32_first
    - LIST_DEL_INIT
    - eb32_next
    - eb32_entry
    - leave_resolver_code
    - typeof
    - 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:2207,1
    - Dst: resolv_detach_from_resolution_answer_items
      Src: /src/haproxy/src/resolvers.c:2211,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2214,1
    - Dst: obj_type
      Src: /src/haproxy/src/resolvers.c:2219,1
    - Dst: abort_resolution
      Src: /src/haproxy/src/resolvers.c:2222,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:2224,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/resolvers.c:2226,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - requester
    argTypes:
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2197
    functionDepth: 5
    functionLinenumber: 2197
    functionLinenumberEnd: 2230
    functionName: _resolv_unlink_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 2
    functionsReached:
    - obj_type
    - task_wakeup
    - resolv_detach_from_resolution_answer_items
    - abort_resolution
    - LIST_DEL_INIT
    - tick_isset
    - LIST_ISEMPTY
    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:2235,1
    - Dst: _resolv_unlink_resolution
      Src: /src/haproxy/src/resolvers.c:2236,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - requester
    argTypes:
    - struct resolv_requester*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2233
    functionDepth: 6
    functionLinenumber: 2233
    functionLinenumberEnd: 2238
    functionName: resolv_unlink_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 5
    functionsReached:
    - leave_resolver_code
    - enter_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:2262,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:2263,1
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:2268,1
    - Dst: dns_recv_nameserver
      Src: /src/haproxy/src/resolvers.c:2269,1
    - Dst: resolv_response_get_query_id
      Src: /src/haproxy/src/resolvers.c:2287,1
    - Dst: eb32_lookup
      Src: /src/haproxy/src/resolvers.c:2290,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/resolvers.c:2298,1
    - Dst: resolv_validate_dns_response
      Src: /src/haproxy/src/resolvers.c:2303,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2362,1
    - Dst: resolv_send_query
      Src: /src/haproxy/src/resolvers.c:2368,1
    - Dst: resolv_send_query
      Src: /src/haproxy/src/resolvers.c:2372,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2386,1
    - Dst: struct resolv_requester*::requester_error_cb
      Src: /src/haproxy/src/resolvers.c:2387,1
    - Dst: resolv_purge_resolution_answer_records
      Src: /src/haproxy/src/resolvers.c:2389,1
    - Dst: resolv_reset_resolution
      Src: /src/haproxy/src/resolvers.c:2390,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2391,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:2392,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2399,1
    - Dst: objt_server
      Src: /src/haproxy/src/resolvers.c:2400,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:2403,1
    - Dst: struct resolv_requester*::requester_cb
      Src: /src/haproxy/src/resolvers.c:2404,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:2406,1
    - Dst: resolv_reset_resolution
      Src: /src/haproxy/src/resolvers.c:2410,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2411,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:2412,1
    - Dst: resolv_update_resolvers_timeout
      Src: /src/haproxy/src/resolvers.c:2415,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:2416,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2417,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 120
    argCount: 1
    argNames:
    - ns
    argTypes:
    - struct dns_nameserver*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2419
      start: 2247
    functionDepth: 13
    functionLinenumber: 2247
    functionLinenumberEnd: 2419
    functionName: resolv_process_responses
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - struct resolv_requester*::requester_cb
    - resolv_response_get_query_id
    - HA_SPIN_LOCK
    - dns_recv_nameserver
    - eb32_entry
    - leave_resolver_code
    - resolv_update_resolvers_timeout
    - HA_SPIN_UNLOCK
    - resolv_validate_dns_response
    - memset
    - resolv_reset_resolution
    - eb32_lookup
    - LIST_DEL_INIT
    - LIST_APPEND
    - resolv_send_query
    - enter_resolver_code
    - list_for_each_entry
    - resolv_active_families
    - struct resolv_requester*::requester_error_cb
    - objt_server
    - resolv_purge_resolution_answer_records
    linkageType: ''
    returnType: int
    signature: int resolv_process_responses(struct dns_nameserver *ns)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:2431,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:2432,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2439,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2441,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2443,1
    - Dst: abort_resolution
      Src: /src/haproxy/src/resolvers.c:2444,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:2451,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:2452,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2465,1
    - Dst: struct resolv_requester*::requester_error_cb
      Src: /src/haproxy/src/resolvers.c:2466,1
    - Dst: resolv_purge_resolution_answer_records
      Src: /src/haproxy/src/resolvers.c:2468,1
    - Dst: resolv_reset_resolution
      Src: /src/haproxy/src/resolvers.c:2472,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2475,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2476,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:2477,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2492,1
    - Dst: resolv_active_families
      Src: /src/haproxy/src/resolvers.c:2495,1
    - Dst: resolv_send_query
      Src: /src/haproxy/src/resolvers.c:2500,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2501,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2507,1
    - Dst: unlikely
      Src: /src/haproxy/src/resolvers.c:2509,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2518,1
    - Dst: obj_type
      Src: /src/haproxy/src/resolvers.c:2521,1
    - Dst: __objt_server
      Src: /src/haproxy/src/resolvers.c:2523,1
    - Dst: __objt_resolv_srvrq
      Src: /src/haproxy/src/resolvers.c:2526,1
    - Dst: resolv_reset_resolution
      Src: /src/haproxy/src/resolvers.c:2545,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2550,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:2552,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:2553,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:2553,1
    - Dst: abort_resolution
      Src: /src/haproxy/src/resolvers.c:2554,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:2560,1
    - Dst: resolv_resolution_timeout
      Src: /src/haproxy/src/resolvers.c:2560,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:2561,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:2561,1
    - Dst: resolv_run_resolution
      Src: /src/haproxy/src/resolvers.c:2564,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2566,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/resolvers.c:2567,1
    - Dst: resolv_update_resolvers_timeout
      Src: /src/haproxy/src/resolvers.c:2571,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:2572,1
    - Dst: unlikely
      Src: /src/haproxy/src/resolvers.c:2574,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2577,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2580,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/resolvers.c:2582,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2587,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 97
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2589
      start: 2425
    functionDepth: 14
    functionLinenumber: 2425
    functionLinenumberEnd: 2589
    functionName: process_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - obj_type
    - __objt_resolv_srvrq
    - unlikely
    - resolv_run_resolution
    - task_wakeup
    - HA_SPIN_LOCK
    - tick_is_expired
    - list_for_each_entry_safe
    - abort_resolution
    - tick_isset
    - leave_resolver_code
    - resolv_update_resolvers_timeout
    - LIST_NEXT
    - HA_SPIN_UNLOCK
    - LIST_ISEMPTY
    - LIST_INSERT
    - resolv_reset_resolution
    - __objt_server
    - LIST_DEL_INIT
    - LIST_APPEND
    - resolv_send_query
    - tick_add
    - enter_resolver_code
    - list_for_each_entry
    - resolv_active_families
    - struct resolv_requester*::requester_error_cb
    - resolv_resolution_timeout
    - resolv_purge_resolution_answer_records
    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:2599,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2600,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2601,1
    - Dst: fd_delete
      Src: /src/haproxy/src/resolvers.c:2604,1
    - Dst: close
      Src: /src/haproxy/src/resolvers.c:2605,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:2607,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2608,1
    - Dst: dns_ring_free
      Src: /src/haproxy/src/resolvers.c:2611,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:2612,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:2613,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2614,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2616,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/resolvers.c:2617,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2618,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2621,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2622,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2623,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2624,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:2626,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2629,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2630,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2631,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:2632,1
    - Dst: resolv_free_resolution
      Src: /src/haproxy/src/resolvers.c:2634,1
    - Dst: free_proxy
      Src: /src/haproxy/src/resolvers.c:2637,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2638,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2639,1
    - Dst: task_destroy
      Src: /src/haproxy/src/resolvers.c:2640,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2641,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2642,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 1
    argNames:
    - resolvers
    argTypes:
    - struct resolvers*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2593
    functionDepth: 4
    functionLinenumber: 2593
    functionLinenumberEnd: 2643
    functionName: resolvers_destroy
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - fd_delete
    - pool_free
    - list_for_each_entry_safe
    - free_proxy
    - close
    - LIST_DEL_INIT
    - EXTRA_COUNTERS_FREE
    - resolv_free_resolution
    - free
    - task_destroy
    - dns_ring_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:2651,1
    - Dst: resolvers_destroy
      Src: /src/haproxy/src/resolvers.c:2652,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/resolvers.c:2655,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2656,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2657,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/resolvers.c:2658,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:2659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2661
      start: 2646
    functionDepth: 5
    functionLinenumber: 2646
    functionLinenumberEnd: 2661
    functionName: resolvers_deinit
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - free
    - LIST_DEL_INIT
    - resolvers_destroy
    linkageType: ''
    returnType: void
    signature: void resolvers_deinit(void)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: enter_resolver_code
      Src: /src/haproxy/src/resolvers.c:2675,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2678,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2683,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/resolvers.c:2688,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/resolvers.c:2689,1
    - Dst: socket
      Src: /src/haproxy/src/resolvers.c:2690,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2692,1
    - Dst: connect
      Src: /src/haproxy/src/resolvers.c:2698,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/resolvers.c:2698,1
    - Dst: ha_warning
      Src: /src/haproxy/src/resolvers.c:2700,1
    - Dst: close
      Src: /src/haproxy/src/resolvers.c:2703,1
    - Dst: close
      Src: /src/haproxy/src/resolvers.c:2707,1
    - Dst: task_new_on
      Src: /src/haproxy/src/resolvers.c:2716,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2717,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/resolvers.c:2727,1
    - Dst: find_resolvers_by_id
      Src: /src/haproxy/src/resolvers.c:2746,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2747,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:2748,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/resolvers.c:2757,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2758,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:2759,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/resolvers.c:2765,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2767,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:2768,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/resolvers.c:2776,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:2777,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/resolvers.c:2778,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2790,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:2793,1
    - Dst: resolvers_deinit
      Src: /src/haproxy/src/resolvers.c:2794,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2797
      start: 2667
    functionDepth: 9
    functionLinenumber: 2667
    functionLinenumberEnd: 2797
    functionName: resolvers_finalize_config
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - resolvers_deinit
    - ha_warning
    - list_for_each_entry
    - enter_resolver_code
    - task_new_on
    - task_wakeup
    - BUG_ON
    - close
    - socket
    - resolv_link_resolution
    - leave_resolver_code
    - task_new_anywhere
    - protocol_lookup
    - ha_alert
    - proxy_type_str
    - find_resolvers_by_id
    - connect
    - get_addr_len
    linkageType: ''
    returnType: int
    signature: int resolvers_finalize_config(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __sc_appctx
      Src: /src/haproxy/src/resolvers.c:2804,1
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:2808,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/resolvers.c:2811,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/src/resolvers.c:2813,1
    - Dst: stats_dump_one_line
      Src: /src/haproxy/src/resolvers.c:2818,1
    - Dst: stats_putchk
      Src: /src/haproxy/src/resolvers.c:2821,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: 2828
      start: 2799
    functionDepth: 4
    functionLinenumber: 2799
    functionLinenumberEnd: 2828
    functionName: stats_dump_resolv_to_buffer
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - stats_dump_one_line
    - memset
    - stats_putchk
    - EXTRA_COUNTERS_GET
    - __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: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/resolvers.c:2811,1
    - Dst: fill_stats
      Src: /src/haproxy/src/resolvers.c:2813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2816
      start: 2810
    functionDepth: 1
    functionLinenumber: 2810
    functionLinenumberEnd: 2816
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 234
    functionsReached:
    - EXTRA_COUNTERS_GET
    - 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:2837,1
    - Dst: sc_ic
      Src: /src/haproxy/src/resolvers.c:2839,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2844,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:2847,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:2852,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:2854,1
    - Dst: buffer_almost_full
      Src: /src/haproxy/src/resolvers.c:2857,1
    - Dst: sc_need_room
      Src: /src/haproxy/src/resolvers.c:2858,1
    - Dst: b_size
      Src: /src/haproxy/src/resolvers.c:2858,1
    - Dst: stats_dump_resolv_to_buffer
      Src: /src/haproxy/src/resolvers.c:2862,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: 2876
      start: 2833
    functionDepth: 5
    functionLinenumber: 2833
    functionLinenumberEnd: 2876
    functionName: stats_dump_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - stats_dump_resolv_to_buffer
    - list_for_each_entry_from
    - sc_ic
    - __sc_appctx
    - LIST_NEXT
    - sc_need_room
    - buffer_almost_full
    - b_size
    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:2889,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2890,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/resolvers.c:2891,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:2892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - clrall
    - stat_modules
    argTypes:
    - int
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2878
    functionDepth: 1
    functionLinenumber: 2878
    functionLinenumberEnd: 2897
    functionName: resolv_stats_clear_counters
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - EXTRA_COUNTERS_GET
    - list_for_each_entry
    - memcpy
    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:2889,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2890,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/src/resolvers.c:2891,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:2892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2885
    functionDepth: 1
    functionLinenumber: 2885
    functionLinenumberEnd: 2895
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 236
    functionsReached:
    - EXTRA_COUNTERS_GET
    - list_for_each_entry
    - memcpy
    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:2905,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2906,1
    - Dst: EXTRA_COUNTERS_REGISTER
      Src: /src/haproxy/src/resolvers.c:2907,1
    - Dst: EXTRA_COUNTERS_ADD
      Src: /src/haproxy/src/resolvers.c:2911,1
    - Dst: EXTRA_COUNTERS_ALLOC
      Src: /src/haproxy/src/resolvers.c:2917,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:2920,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:2924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - stat_modules
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2938
      start: 2899
    functionDepth: 1
    functionLinenumber: 2899
    functionLinenumberEnd: 2938
    functionName: resolv_allocate_counters
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - list_for_each_entry
    - strcmp
    - EXTRA_COUNTERS_ALLOC
    - EXTRA_COUNTERS_ADD
    - EXTRA_COUNTERS_REGISTER
    - memcpy
    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:2911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2915
      start: 2910
    functionDepth: 1
    functionLinenumber: 2910
    functionLinenumberEnd: 2915
    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:2920,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:2924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2930
      start: 2919
    functionDepth: 0
    functionLinenumber: 2919
    functionLinenumberEnd: 2930
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 237
    functionsReached:
    - memcpy
    - strcmp
    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:2945,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:2949,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:2950,1
    - Dst: cli_err
      Src: /src/haproxy/src/resolvers.c:2956,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: 2959
      start: 2943
    functionDepth: 1
    functionLinenumber: 2943
    functionLinenumberEnd: 2959
    functionName: cli_parse_stat_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - cli_err
    - applet_reserve_svcctx
    - strcmp
    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:2973,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:2975,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/resolvers.c:2976,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/resolvers.c:2981,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:2981,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:2983,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/resolvers.c:2991,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/resolvers.c:2992,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/resolvers.c:2995,1
    - Dst: typeof
      Src: /src/haproxy/src/resolvers.c:2995,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:2999,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/resolvers.c:3000,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3001,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3002,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3003,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3004,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3005,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3006,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3007,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3008,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3009,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3010,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3011,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3012,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3013,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3014,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3015,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/resolvers.c:3016,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/resolvers.c:3017,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3035
      start: 2967
    functionDepth: 1
    functionLinenumber: 2967
    functionLinenumberEnd: 3035
    functionName: cli_io_handler_dump_resolvers_to_buffer
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_from
    - chunk_printf
    - chunk_appendf
    - applet_putstr
    - applet_putchk
    - typeof
    - LIST_ISEMPTY
    - LIST_ELEM
    - chunk_reset
    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:3056,1
    - Dst: resolv_str_to_dn_label
      Src: /src/haproxy/src/resolvers.c:3062,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3068,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3076,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - stream
    - hostname
    - hostname_len
    argTypes:
    - struct stream*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3079
      start: 3052
    functionDepth: 2
    functionLinenumber: 3052
    functionLinenumberEnd: 3079
    functionName: action_prepare_for_resolution
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_free
    - resolv_str_to_dn_label
    - get_trash_chunk
    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:3098,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:3105,1
    - Dst: resolv_get_ip_from_response
      Src: /src/haproxy/src/resolvers.c:3123,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:3129,1
    - Dst: memcpy
      Src: /src/haproxy/src/resolvers.c:3133,1
    - Dst: vars_set_by_name
      Src: /src/haproxy/src/resolvers.c:3144,1
    - Dst: strlen
      Src: /src/haproxy/src/resolvers.c:3144,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/resolvers.c:3153,1
    - Dst: action_prepare_for_resolution
      Src: /src/haproxy/src/resolvers.c:3157,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/resolvers.c:3162,1
    - Dst: resolv_link_resolution
      Src: /src/haproxy/src/resolvers.c:3165,1
    - Dst: tick_add
      Src: /src/haproxy/src/resolvers.c:3173,1
    - Dst: tick_isset
      Src: /src/haproxy/src/resolvers.c:3174,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/resolvers.c:3175,1
    - Dst: resolv_trigger_resolution
      Src: /src/haproxy/src/resolvers.c:3179,1
    - Dst: leave_resolver_code
      Src: /src/haproxy/src/resolvers.c:3187,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/resolvers.c:3189,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3193,1
    - Dst: _resolv_unlink_resolution
      Src: /src/haproxy/src/resolvers.c:3196,1
    - Dst: pool_free
      Src: /src/haproxy/src/resolvers.c:3197,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: 3201
      start: 3085
    functionDepth: 6
    functionLinenumber: 3085
    functionLinenumberEnd: 3201
    functionName: resolv_action_do_resolve
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - action_prepare_for_resolution
    - tick_add
    - enter_resolver_code
    - vars_set_by_name
    - resolv_get_ip_from_response
    - tick_is_expired
    - resolv_trigger_resolution
    - sample_fetch_as_type
    - ha_free
    - _resolv_unlink_resolution
    - pool_free
    - resolv_link_resolution
    - tick_isset
    - strlen
    - leave_resolver_code
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - memcpy
    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:3205,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3206,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3207,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3209
      start: 3203
    functionDepth: 5
    functionLinenumber: 3203
    functionLinenumberEnd: 3209
    functionName: release_resolv_action
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - release_sample_expr
    - free
    linkageType: ''
    returnType: void
    signature: void release_resolv_action(struct act_rule *rule)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3235,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3239,1
    - Dst: my_strndup
      Src: /src/haproxy/src/resolvers.c:3242,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3252,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3254,1
    - Dst: my_strndup
      Src: /src/haproxy/src/resolvers.c:3257,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3262,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3274,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3276,1
    - Dst: strncmp
      Src: /src/haproxy/src/resolvers.c:3280,1
    - Dst: strncmp
      Src: /src/haproxy/src/resolvers.c:3283,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/resolvers.c:3293,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3305,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/resolvers.c:3307,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3308,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3322,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3323,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3324,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 77
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3327
      start: 3224
    functionDepth: 7
    functionLinenumber: 3224
    functionLinenumberEnd: 3327
    functionName: resolv_parse_do_resolve
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - sample_parse_expr
    - strncmp
    - ha_free
    - free
    - sample_src_names
    - memprintf
    - strchr
    - calloc
    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:3353,1
    - Dst: find_resolvers_by_id
      Src: /src/haproxy/src/resolvers.c:3357,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3359,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: 3365
      start: 3348
    functionDepth: 5
    functionLinenumber: 3348
    functionLinenumberEnd: 3365
    functionName: check_action_do_resolve
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - find_resolvers_by_id
    - memprintf
    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: 9
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3382
      start: 3367
    functionDepth: 0
    functionLinenumber: 3367
    functionLinenumberEnd: 3382
    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:3397,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3398,1
    - Dst: fopen
      Src: /src/haproxy/src/resolvers.c:3403,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3405,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3410,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3413,1
    - Dst: fgets
      Src: /src/haproxy/src/resolvers.c:3418,1
    - Dst: strncmp
      Src: /src/haproxy/src/resolvers.c:3420,1
    - Dst: strtok
      Src: /src/haproxy/src/resolvers.c:3423,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3429,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:3436,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3437,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3439,1
    - Dst: memset
      Src: /src/haproxy/src/resolvers.c:3449,1
    - Dst: str2ip2
      Src: /src/haproxy/src/resolvers.c:3450,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3452,1
    - Dst: set_host_port
      Src: /src/haproxy/src/resolvers.c:3458,1
    - Dst: protocol_lookup
      Src: /src/haproxy/src/resolvers.c:3460,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3463,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3469,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3471,1
    - Dst: dns_dgram_init
      Src: /src/haproxy/src/resolvers.c:3476,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3478,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3480,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3484,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3487,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3489,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3493,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:3496,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3498,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3499,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:3507,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3512,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3513,1
    - Dst: fclose
      Src: /src/haproxy/src/resolvers.c:3515,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 109
    argCount: 2
    argNames:
    - errmsg
    - warnmsg
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3518
      start: 3384
    functionDepth: 5
    functionLinenumber: 3384
    functionLinenumberEnd: 3518
    functionName: parse_resolve_conf
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - str2ip2
    - dns_dgram_init
    - strdup
    - memset
    - list_for_each_entry
    - set_host_port
    - strcmp
    - fclose
    - strncmp
    - fgets
    - strtok
    - LIST_APPEND
    - free
    - malloc
    - protocol_lookup
    - memprintf
    - fopen
    - calloc
    linkageType: ''
    returnType: int
    signature: int parse_resolve_conf(char **errmsg, char **warnmsg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3527,1
    - Dst: alloc_new_proxy
      Src: /src/haproxy/src/resolvers.c:3533,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3535,1
    - Dst: resolvers_setup_proxy
      Src: /src/haproxy/src/resolvers.c:3540,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/resolvers.c:3542,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:3547,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3548,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3554,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:3574,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:3575,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/resolvers.c:3576,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/resolvers.c:3577,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3586,1
    - Dst: free_proxy
      Src: /src/haproxy/src/resolvers.c:3588,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3590,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 62
    argCount: 4
    argNames:
    - resolvers
    - id
    - file
    - linenum
    argTypes:
    - struct resolvers**
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3592
      start: 3520
    functionDepth: 4
    functionLinenumber: 3520
    functionLinenumberEnd: 3592
    functionName: resolvers_new
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - strdup
    - resolvers_setup_proxy
    - free_proxy
    - ha_free
    - copy_file_name
    - LIST_APPEND
    - LIST_INIT
    - HA_SPIN_INIT
    - calloc
    - alloc_new_proxy
    linkageType: ''
    returnType: int
    signature: int resolvers_new(struct resolvers **resolvers, const char *id, const
      char *file, int linenum)
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3612,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3614,1
    - Dst: invalid_char
      Src: /src/haproxy/src/resolvers.c:3619,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3621,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:3627,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3629,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3630,1
    - Dst: resolvers_new
      Src: /src/haproxy/src/resolvers.c:3636,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3638,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3643,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3650,1
    - Dst: invalid_char
      Src: /src/haproxy/src/resolvers.c:3656,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3658,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:3664,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3666,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3667,1
    - Dst: str2sa_range
      Src: /src/haproxy/src/resolvers.c:3673,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3677,1
    - Dst: calloc
      Src: /src/haproxy/src/resolvers.c:3682,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3683,1
    - Dst: parse_server
      Src: /src/haproxy/src/resolvers.c:3689,1
    - Dst: dns_stream_init
      Src: /src/haproxy/src/resolvers.c:3696,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3697,1
    - Dst: dns_dgram_init
      Src: /src/haproxy/src/resolvers.c:3702,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3703,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3708,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3709,1
    - Dst: strdup
      Src: /src/haproxy/src/resolvers.c:3714,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3715,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/resolvers.c:3725,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3728,1
    - Dst: parse_resolve_conf
      Src: /src/haproxy/src/resolvers.c:3729,1
    - Dst: indent_msg
      Src: /src/haproxy/src/resolvers.c:3731,1
    - Dst: ha_warning
      Src: /src/haproxy/src/resolvers.c:3732,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3733,1
    - Dst: indent_msg
      Src: /src/haproxy/src/resolvers.c:3736,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3737,1
    - Dst: ha_free
      Src: /src/haproxy/src/resolvers.c:3738,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3742,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3747,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3749,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/resolvers.c:3753,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3755,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3761,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3767,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3772,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3774,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3776,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3778,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3780,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3782,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3785,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/resolvers.c:3791,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3792,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3798,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3802,1
    - Dst: atoi
      Src: /src/haproxy/src/resolvers.c:3808,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3810,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3818,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3819,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3824,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3826,1
    - Dst: atoi
      Src: /src/haproxy/src/resolvers.c:3831,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3833,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3835,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3840,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3841,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3846,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/resolvers.c:3851,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3853,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3859,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3865,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/resolvers.c:3877,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3878,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3885,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3892,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3898,1
    - Dst: free
      Src: /src/haproxy/src/resolvers.c:3899,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 255
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3901
      start: 3605
    functionDepth: 9
    functionLinenumber: 3605
    functionLinenumberEnd: 3901
    functionName: cfg_parse_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - atoi
    - resolvers_new
    - dns_stream_init
    - ha_warning
    - strcmp
    - ha_free
    - calloc
    - strdup
    - warn_if_lower
    - LIST_APPEND
    - ha_alert
    - str2sa_range
    - dns_dgram_init
    - list_for_each_entry
    - invalid_char
    - parse_time_err
    - parse_resolve_conf
    - parse_server
    - free
    - indent_msg
    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:3916,1
    - Dst: resolvers_new
      Src: /src/haproxy/src/resolvers.c:3920,1
    - Dst: parse_resolve_conf
      Src: /src/haproxy/src/resolvers.c:3926,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:3930,1
    - Dst: resolvers_destroy
      Src: /src/haproxy/src/resolvers.c:3937,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3907
    functionDepth: 6
    functionLinenumber: 3907
    functionLinenumberEnd: 3944
    functionName: resolvers_create_default
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 1
    functionsReached:
    - resolvers_destroy
    - parse_resolve_conf
    - resolvers_new
    - find_resolvers_by_id
    - LIST_ISEMPTY
    linkageType: ''
    returnType: int
    signature: int resolvers_create_default()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: xprt_get
      Src: /src/haproxy/src/resolvers.c:3958,1
    - Dst: xprt_get
      Src: /src/haproxy/src/resolvers.c:3958,1
    - Dst: xprt_get
      Src: /src/haproxy/src/resolvers.c:3959,1
    - Dst: ha_alert
      Src: /src/haproxy/src/resolvers.c:3960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3971
      start: 3946
    functionDepth: 9
    functionLinenumber: 3946
    functionLinenumberEnd: 3971
    functionName: cfg_post_parse_resolvers
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - xprt_get
    - ha_alert
    linkageType: ''
    returnType: int
    signature: int cfg_post_parse_resolvers()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/resolvers.c:3981,1
    - Dst: strchr
      Src: /src/haproxy/src/resolvers.c:3988,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3992,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3994,1
    - Dst: strcmp
      Src: /src/haproxy/src/resolvers.c:3996,1
    - Dst: memprintf
      Src: /src/haproxy/src/resolvers.c:4009,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: 4011
      start: 3974
    functionDepth: 7
    functionLinenumber: 3974
    functionLinenumberEnd: 4011
    functionName: cfg_parse_dns_accept_family
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - memprintf
    - too_many_args
    - 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:4035,1
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4036,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: 4038
      start: 4028
    functionDepth: 1
    functionLinenumber: 4028
    functionLinenumberEnd: 4038
    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:4044,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/resolvers.c:4048,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:4049,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:4051,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - unused
    - id
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4054
      start: 4040
    functionDepth: 1
    functionLinenumber: 4040
    functionLinenumberEnd: 4054
    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:4061,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:4064,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/resolvers.c:4065,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/resolvers.c:4066,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/resolvers.c:4068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - unused
    - metric_ctx
    - id
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4073
      start: 4056
    functionDepth: 1
    functionLinenumber: 4056
    functionLinenumberEnd: 4073
    functionName: rslv_promex_next_ts
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - LIST_ISEMPTY
    - LIST_NEXT
    - list_for_each_entry_from
    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:4082,1
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4083,1
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4084,1
    - Dst: ist
      Src: /src/haproxy/src/resolvers.c:4085,1
    - Dst: resolv_fill_stats
      Src: /src/haproxy/src/resolvers.c:4087,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: 4091
      start: 4075
    functionDepth: 2
    functionLinenumber: 4075
    functionLinenumberEnd: 4091
    functionName: rslv_promex_fill_ts
    functionSourceFile: /src/haproxy/src/resolvers.c
    functionUses: 0
    functionsReached:
    - resolv_fill_stats
    - ist
    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: fprintf
      Src: /src/haproxy/src/auth.c:218,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:222,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:225,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 124
    functionDepth: 9
    functionLinenumber: 124
    functionLinenumberEnd: 231
    functionName: userlist_postinit
    functionSourceFile: /src/haproxy/src/auth.c
    functionUses: 1
    functionsReached:
    - strcmp
    - ha_free
    - strtok
    - fprintf
    - free
    - ha_alert
    - calloc
    linkageType: ''
    returnType: int
    signature: int userlist_postinit()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:247,1
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:252,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:259,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:262,1
    - Dst: crypt_r
      Src: /src/haproxy/src/auth.c:268,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/auth.c:270,1
    - Dst: crypt
      Src: /src/haproxy/src/auth.c:271,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/auth.c:272,1
    - Dst: fprintf
      Src: /src/haproxy/src/auth.c:281,1
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - ul
    - user
    - pass
    argTypes:
    - struct userlist*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 288
    functionName: check_user
    functionSourceFile: /src/haproxy/src/auth.c
    functionUses: 2
    functionsReached:
    - strcmp
    - crypt
    - fprintf
    - crypt_r
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:305,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/auth.c:312,1
    - Dst: strcmp
      Src: /src/haproxy/src/auth.c:317,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: 322
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 322
    functionName: pat_match_auth
    functionSourceFile: /src/haproxy/src/auth.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - strcmp
    linkageType: ''
    returnType: struct pattern
    signature: 'struct pattern *

      pat_match_auth(struct sample *smp, struct pattern_expr *expr, int fill)'
  - BBCount: 176
    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:99,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:100,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:107,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:108,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:115,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:116,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:123,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:124,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:128,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:129,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:133,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:134,1
    - Dst: protocol_clrf_all
      Src: /src/haproxy/src/cfgparse-global.c:136,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:139,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:143,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:146,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:151,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/cfgparse-global.c:156,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/cfgparse-global.c:157,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:157,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/cfgparse-global.c:158,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:159,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-global.c:160,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:163,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:164,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:167,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:172,1
    - Dst: strl2irc
      Src: /src/haproxy/src/cfgparse-global.c:176,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:176,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:177,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:183,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:184,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:187,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:192,1
    - Dst: strl2irc
      Src: /src/haproxy/src/cfgparse-global.c:196,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:196,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:197,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:202,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:203,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:206,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:209,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:215,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:217,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:220,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:226,1
    - Dst: getpwnam
      Src: /src/haproxy/src/cfgparse-global.c:234,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:239,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:239,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:243,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:245,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:248,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:254,1
    - Dst: getgrnam
      Src: /src/haproxy/src/cfgparse-global.c:263,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:268,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:268,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:273,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:276,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:279,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:284,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-global.c:288,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:290,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:296,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:302,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:303,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:306,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:310,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:312,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:315,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:320,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:321,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:324,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:329,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:333,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:335,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:336,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:339,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:344,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:348,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:350,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:351,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:354,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:359,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:363,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:365,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:366,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:369,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:373,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:375,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:376,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:379,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:384,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:388,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:390,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:391,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:394,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:398,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:400,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:401,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:404,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:408,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:410,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:415,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:416,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:419,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:424,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:428,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:430,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:431,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:434,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:439,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:443,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:445,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:450,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:457,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:460,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-global.c:462,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-global.c:464,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-global.c:466,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:468,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:472,1
    - Dst: isupper
      Src: /src/haproxy/src/cfgparse-global.c:477,1
    - Dst: islower
      Src: /src/haproxy/src/cfgparse-global.c:477,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse-global.c:478,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:483,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:491,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:493,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:495,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:498,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:500,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:507,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:511,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:516,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-global.c:518,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:523,1
    - Dst: atol
      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: getpwnam
      Src: /src/haproxy/src/cfgparse-global.c:540,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:542,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:553,1
    - Dst: getgrnam
      Src: /src/haproxy/src/cfgparse-global.c:556,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:558,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:569,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:575,1
    - Dst: parse_logger
      Src: /src/haproxy/src/cfgparse-global.c:576,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:577,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:582,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:586,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:596,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:597,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:599,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:601,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:607,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:612,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:614,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:616,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:622,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:627,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:629,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:631,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:637,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:642,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:644,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:645,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:648,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/cfgparse-global.c:652,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/cfgparse-global.c:653,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:653,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:653,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:653,1
    - Dst: b_orig
      Src: /src/haproxy/src/cfgparse-global.c:654,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/cfgparse-global.c:655,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:656,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:661,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:662,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:665,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:670,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:674,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:676,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:680,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:684,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:687,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-global.c:692,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:694,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:699,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:704,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:709,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:718,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse-global.c:726,1
    - Dst: parse_process_number
      Src: /src/haproxy/src/cfgparse-global.c:733,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:734,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_cpu_set
      Src: /src/haproxy/src/cfgparse-global.c:751,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:752,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/cfgparse-global.c:758,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cfgparse-global.c:758,1
    - Dst: my_popcountl
      Src: /src/haproxy/src/cfgparse-global.c:759,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cfgparse-global.c:759,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:760,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cfgparse-global.c:778,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cfgparse-global.c:789,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cfgparse-global.c:791,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cfgparse-global.c:792,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cfgparse-global.c:793,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cfgparse-global.c:794,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:799,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:805,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:806,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:810,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:811,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:816,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:819,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:823,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/cfgparse-global.c:829,1
    - Dst: atoll
      Src: /src/haproxy/src/cfgparse-global.c:830,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:832,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/cfgparse-global.c:838,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse-global.c:847,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:851,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/cfgparse-global.c:857,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:858,1
    - Dst: parse
      Src: /src/haproxy/src/cfgparse-global.c:863,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:865,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:869,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/cfgparse-global.c:880,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:882,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-global.c:884,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:889,1
    CyclomaticComplexity: 303
    EdgeCount: 303
    ICount: 769
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 891
      start: 63
    functionDepth: 9
    functionLinenumber: 63
    functionLinenumberEnd: 891
    functionName: cfg_parse_global
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - blk_SHA1_Final
    - parse_logger
    - protocol_clrf_all
    - check_kw_experimental
    - HA_ATOMIC_STORE
    - atoi
    - parse_process_number
    - memcpy
    - getgrnam
    - strerror
    - ha_cpuset_count
    - parse
    - ha_cpuset_clr
    - my_popcountl
    - ha_warning
    - strcmp
    - snprintf
    - ha_cpuset_zero
    - blk_SHA1_Update
    - chunk_destroy
    - strlen
    - ha_cpuset_assign
    - isupper
    - atol
    - ha_cpuset_set
    - cfg_find_best_match
    - calloc
    - strdup
    - getpwnam
    - BUG_ON
    - HA_ATOMIC_LOAD
    - ha_alert
    - islower
    - b_orig
    - parse_cpu_set
    - blk_SHA1_Init
    - list_for_each_entry
    - strl2irc
    - parse_time_err
    - isdigit
    - atoll
    - free
    - chunk_initlen
    - ha_cpuset_ffs
    - strchr
    - alertif_too_many_args
    - strtol
    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:897,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: 903
      start: 893
    functionDepth: 7
    functionLinenumber: 893
    functionLinenumberEnd: 903
    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:915,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-global.c:919,1
    - Dst: istlen
      Src: /src/haproxy/src/cfgparse-global.c:920,1
    - Dst: istfind
      Src: /src/haproxy/src/cfgparse-global.c:920,1
    - Dst: istadv
      Src: /src/haproxy/src/cfgparse-global.c:921,1
    - Dst: istfind
      Src: /src/haproxy/src/cfgparse-global.c:921,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:923,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:926,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:930,1
    - Dst: istmatch
      Src: /src/haproxy/src/cfgparse-global.c:934,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-global.c:934,1
    - Dst: istmatch
      Src: /src/haproxy/src/cfgparse-global.c:940,1
    - Dst: ist
      Src: /src/haproxy/src/cfgparse-global.c:940,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:947,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: 952
      start: 906
    functionDepth: 5
    functionLinenumber: 906
    functionLinenumberEnd: 952
    functionName: cfg_parse_reject_privileged_ports
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - istmatch
    - istlen
    - strcmp
    - istadv
    - memprintf
    - istfind
    - ist
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:962,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:966,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:969,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: 977
      start: 955
    functionDepth: 7
    functionLinenumber: 955
    functionLinenumberEnd: 977
    functionName: cfg_parse_global_master_worker
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - memprintf
    - strcmp
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:987,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:990,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:993,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:996,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1000,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    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: 1005
      start: 980
    functionDepth: 7
    functionLinenumber: 980
    functionLinenumberEnd: 1005
    functionName: cfg_parse_global_mode
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - BUG_ON
    - strcmp
    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:1014,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: 1020
      start: 1007
    functionDepth: 7
    functionLinenumber: 1007
    functionLinenumberEnd: 1020
    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:1030,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1033,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1036,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1039,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1042,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1046,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: 1051
      start: 1023
    functionDepth: 7
    functionLinenumber: 1023
    functionLinenumberEnd: 1051
    functionName: cfg_parse_global_disable_poller
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - BUG_ON
    - strcmp
    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:1060,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1063,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1065,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1069,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:1072,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1074,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: 1079
      start: 1053
    functionDepth: 7
    functionLinenumber: 1053
    functionLinenumberEnd: 1079
    functionName: cfg_parse_global_pidfile
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - strdup
    - too_many_args
    - strcmp
    - BUG_ON
    - memprintf
    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:1086,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1089,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1091,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1094,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: 1099
      start: 1081
    functionDepth: 7
    functionLinenumber: 1081
    functionLinenumberEnd: 1099
    functionName: cfg_parse_global_non_std_directives
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - BUG_ON
    - strcmp
    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: 81
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1107,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1111,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1113,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1117,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1120,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1125,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1127,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1131,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1134,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1138,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1140,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1143,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1145,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1149,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1153,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1157,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1160,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1162,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1169,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1171,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1174,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1179,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1185,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1187,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1190,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1195,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: atol
      Src: /src/haproxy/src/cfgparse-global.c:1214,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1216,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1222,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1226,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-global.c:1230,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1232,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1237,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1242,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1247,1
    - Dst: strcmp
      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:1260,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1263,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1269,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1271,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1275,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1278,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1284,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1286,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1290,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1293,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1299,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1301,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1305,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1308,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1314,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1317,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1321,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1324,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1330,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1334,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1337,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1341,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1344,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1350,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1354,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1356,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/cfgparse-global.c:1359,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1365,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1367,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1370,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1374,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1376,1
    - Dst: atol
      Src: /src/haproxy/src/cfgparse-global.c:1379,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1383,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1385,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1388,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1390,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1396,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1398,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1401,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1403,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1409,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1411,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1414,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1416,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1420,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1422,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1425,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1427,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1429,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1432,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: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1449,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1456,1
    CyclomaticComplexity: 91
    EdgeCount: 91
    ICount: 318
    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: 1459
      start: 1101
    functionDepth: 7
    functionLinenumber: 1101
    functionLinenumberEnd: 1459
    functionName: cfg_parse_global_tune_opts
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - strcmp
    - parse_time_err
    - atoi
    - BUG_ON
    - memprintf
    - atol
    - parse_size_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:1466,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1469,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1472,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1476,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: 1482
      start: 1461
    functionDepth: 7
    functionLinenumber: 1461
    functionLinenumberEnd: 1482
    functionName: cfg_parse_global_tune_forward_opts
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - BUG_ON
    - strcmp
    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:1488,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1489,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1492,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1493,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1496,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: 1500
      start: 1484
    functionDepth: 5
    functionLinenumber: 1484
    functionLinenumberEnd: 1500
    functionName: cfg_parse_global_unsupported_opts
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - BUG_ON
    - memprintf
    - strcmp
    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:1507,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1507,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1508,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1511,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1517,1
    - Dst: setenv
      Src: /src/haproxy/src/cfgparse-global.c:1523,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1524,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1525,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1529,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1533,1
    - Dst: unsetenv
      Src: /src/haproxy/src/cfgparse-global.c:1538,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1539,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1540,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-global.c:1545,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-global.c:1555,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:1555,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-global.c:1556,1
    - Dst: strchr
      Src: /src/haproxy/src/cfgparse-global.c:1562,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1565,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-global.c:1570,1
    - Dst: unsetenv
      Src: /src/haproxy/src/cfgparse-global.c:1573,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1574,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1575,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1584,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: 1589
      start: 1502
    functionDepth: 7
    functionLinenumber: 1502
    functionLinenumberEnd: 1589
    functionName: cfg_parse_global_env_opts
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - too_many_args
    - setenv
    - strcmp
    - unsetenv
    - strncmp
    - BUG_ON
    - strlen
    - strerror
    - memprintf
    - strchr
    - memcpy
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1596,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1601,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1606,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cfgparse-global.c:1610,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:1611,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: 1613
      start: 1591
    functionDepth: 5
    functionLinenumber: 1591
    functionLinenumberEnd: 1613
    functionName: cfg_parse_global_shm_stats_file
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    - mark_tainted
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1620,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1625,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1630,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cfgparse-global.c:1634,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-global.c:1635,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: 1637
      start: 1615
    functionDepth: 5
    functionLinenumber: 1615
    functionLinenumberEnd: 1637
    functionName: cfg_parse_global_shm_stats_file_max_objects
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    - mark_tainted
    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:1647,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-global.c:1651,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-global.c:1655,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1657,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1662,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1667,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1672,1
    - Dst: usleep
      Src: /src/haproxy/src/cfgparse-global.c:1676,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: 1679
      start: 1639
    functionDepth: 7
    functionLinenumber: 1639
    functionLinenumberEnd: 1679
    functionName: cfg_parse_global_parser_pause
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - usleep
    - too_many_args
    - memprintf
    - parse_time_err
    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:1691,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-global.c:1694,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1696,1
    - Dst: setpriority
      Src: /src/haproxy/src/cfgparse-global.c:1709,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:1710,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1710,1
    - Dst: getpriority
      Src: /src/haproxy/src/cfgparse-global.c:1713,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-global.c:1715,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1715,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cfgparse-global.c:1723,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: 1727
      start: 1684
    functionDepth: 9
    functionLinenumber: 1684
    functionLinenumberEnd: 1727
    functionName: cfg_parse_tune_renice
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - too_many_args
    - BUG_ON
    - getpriority
    - memprintf
    - strerror
    - setpriority
    - strtol
    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:1735,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1739,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1743,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:1746,1
    - Dst: stat
      Src: /src/haproxy/src/cfgparse-global.c:1751,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse-global.c:1753,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1754,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse-global.c:1756,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1758,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse-global.c:1760,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-global.c:1761,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cfgparse-global.c:1763,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: 1768
      start: 1729
    functionDepth: 10
    functionLinenumber: 1729
    functionLinenumberEnd: 1768
    functionName: cfg_parse_global_chroot
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - strdup
    - ha_diag_warning
    - too_many_args
    - stat
    - memprintf
    - strerror
    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:1777,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1781,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1786,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-global.c:1791,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-global.c:1792,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1794,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: 1799
      start: 1770
    functionDepth: 7
    functionLinenumber: 1770
    functionLinenumberEnd: 1799
    functionName: cfg_parse_global_localpeer
    functionSourceFile: /src/haproxy/src/cfgparse-global.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - too_many_args
    - memprintf
    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:1808,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1812,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-global.c:1816,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-global.c:1818,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: 1825
      start: 1801
    functionDepth: 7
    functionLinenumber: 1801
    functionLinenumberEnd: 1825
    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: 16
    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: 7
    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:
    - fd_cant_recv
    - sockaddr_alloc
    - fd_set_nonblock
    - unlikely
    - accept
    - sockaddr_free
    - accept4
    - _HA_ATOMIC_AND
    - close
    - send_log
    - conn_new
    - likely
    - port_is_restricted
    - fd_set_cloexec
    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
    - strerror
    - send_log
    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:
    - sock_set_tos
    - fd_set_nonblock
    - __objt_server
    - my_socketat
    - objt_server
    - BUG_ON
    - close
    - send_log
    - sock_handle_system_err
    - protocol_lookup
    - setsockopt
    - ha_alert
    - sock_set_mark
    - qfprintf
    - fd_set_cloexec
    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:
    - getpeername
    - sock_restore_unix_family
    - getsockname
    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
    - sock_restore_unix_family
    - getpeername
    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: 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: ha_warning
      Src: /src/haproxy/src/sock.c:566,1
    - Dst: malloc
      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:
    - sock_restore_unix_family
    - close
    - malloc
    - setsockopt
    - CMSG_SPACE
    - strtoll
    - connect
    - ha_warning
    - recvmsg
    - ha_free
    - send_fd_uxst
    - CMSG_DATA
    - strlen
    - send
    - calloc
    - memset
    - getsockname
    - CMSG_LEN
    - strncmp
    - socketpair
    - socket
    - ha_alert
    - getsockopt
    - CMSG_NXTHDR
    - CMSG_FIRSTHDR
    - sock_inet_is_foreign
    - free
    - strncpy
    - memcpy
    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
    - USE_NS
    - strlen
    - free
    - struct receiver*::proto::fam::addrcmp
    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:
    - free
    - close
    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: 15
    BranchProfiles: []
    Callsites:
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/sock.c:923,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:929,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/sock.c:931,1
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:973,1
    - Dst: COUNT_IF
      Src: /src/haproxy/src/sock.c:974,1
    - Dst: obj_type
      Src: /src/haproxy/src/sock.c:989,1
    - Dst: objt_server
      Src: /src/haproxy/src/sock.c:990,1
    - Dst: connect
      Src: /src/haproxy/src/sock.c:992,1
    - Dst: get_addr_len
      Src: /src/haproxy/src/sock.c:992,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/sock.c:997,1
    - Dst: fd_may_send
      Src: /src/haproxy/src/sock.c:1008,1
    - Dst: fd_cond_recv
      Src: /src/haproxy/src/sock.c:1009,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/sock.c:1018,1
    - Dst: fd_stop_both
      Src: /src/haproxy/src/sock.c:1019,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/sock.c:1028,1
    - Dst: fd_cant_send
      Src: /src/haproxy/src/sock.c:1032,1
    - Dst: fd_want_send
      Src: /src/haproxy/src/sock.c:1033,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 61
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 1035
    functionName: sock_conn_check
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - obj_type
    - COUNT_IF
    - unlikely
    - fd_send_ready
    - HA_ATOMIC_AND
    - fd_want_send
    - fd_cant_send
    - objt_server
    - BUG_ON
    - fd_cond_recv
    - conn_ctrl_ready
    - fd_stop_both
    - conn_report_term_evt
    - fd_may_send
    - connect
    - get_addr_len
    linkageType: ''
    returnType: int
    signature: int sock_conn_check(struct connection *conn)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:1047,1
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:1054,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/sock.c:1055,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/sock.c:1055,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/sock.c:1056,1
    - Dst: fd_recv_active
      Src: /src/haproxy/src/sock.c:1056,1
    - Dst: sock_conn_check
      Src: /src/haproxy/src/sock.c:1061,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/sock.c:1066,1
    - Dst: fd_send_active
      Src: /src/haproxy/src/sock.c:1066,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/sock.c:1078,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/sock.c:1080,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/sock.c:1087,1
    - Dst: fd_recv_active
      Src: /src/haproxy/src/sock.c:1087,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/sock.c:1099,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/sock.c:1101,1
    - Dst: conn_notify_mux
      Src: /src/haproxy/src/sock.c:1109,1
    - Dst: unlikely
      Src: /src/haproxy/src/sock.c:1118,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/src/sock.c:1119,1
    - Dst: fd_stop_both
      Src: /src/haproxy/src/sock.c:1120,1
    - Dst: tasklet_wakeup
      Src: /src/haproxy/src/sock.c:1127,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 51
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1040
    functionDepth: 3
    functionLinenumber: 1040
    functionLinenumberEnd: 1130
    functionName: sock_conn_iocb
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    - tasklet_wakeup
    - fd_send_active
    - conn_notify_mux
    - unlikely
    - fd_send_ready
    - fd_recv_active
    - sock_conn_check
    - fd_stop_send
    - conn_ctrl_ready
    - fd_stop_both
    - fd_recv_ready
    linkageType: ''
    returnType: void
    signature: void sock_conn_iocb(int fd)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:1143,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/sock.c:1148,1
    - Dst: recv
      Src: /src/haproxy/src/sock.c:1155,1
    - Dst: recv
      Src: /src/haproxy/src/sock.c:1158,1
    - Dst: fd_cant_recv
      Src: /src/haproxy/src/sock.c:1166,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/sock.c:1183,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1185
    functionName: sock_drain
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - recv
    - fd_cant_recv
    - HA_ATOMIC_AND
    - BUG_ON
    - fd_recv_ready
    linkageType: ''
    returnType: int
    signature: int sock_drain(struct connection *conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/sock.c:1197,1
    - Dst: fd_recv_ready
      Src: /src/haproxy/src/sock.c:1200,1
    - Dst: fd_want_recv
      Src: /src/haproxy/src/sock.c:1203,1
    - Dst: fd_send_ready
      Src: /src/haproxy/src/sock.c:1207,1
    - Dst: fd_want_send
      Src: /src/haproxy/src/sock.c:1210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - conn
    - event_type
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1214
      start: 1193
    functionDepth: 1
    functionLinenumber: 1193
    functionLinenumberEnd: 1214
    functionName: sock_check_events
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_send_ready
    - fd_want_send
    - BUG_ON
    - fd_recv_ready
    - fd_want_recv
    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:1221,1
    - Dst: fd_stop_recv
      Src: /src/haproxy/src/sock.c:1224,1
    - Dst: fd_stop_send
      Src: /src/haproxy/src/sock.c:1227,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - conn
    - event_type
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1219
    functionDepth: 1
    functionLinenumber: 1219
    functionLinenumberEnd: 1228
    functionName: sock_ignore_events
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 0
    functionsReached:
    - fd_stop_recv
    - fd_stop_send
    - 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:1246,1
    - Dst: socket
      Src: /src/haproxy/src/sock.c:1249,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock.c:1253,1
    - Dst: memset
      Src: /src/haproxy/src/sock.c:1257,1
    - Dst: real_family
      Src: /src/haproxy/src/sock.c:1258,1
    - Dst: bind
      Src: /src/haproxy/src/sock.c:1259,1
    - Dst: getsockname
      Src: /src/haproxy/src/sock.c:1262,1
    - Dst: socket
      Src: /src/haproxy/src/sock.c:1265,1
    - Dst: setsockopt
      Src: /src/haproxy/src/sock.c:1269,1
    - Dst: bind
      Src: /src/haproxy/src/sock.c:1272,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:1282,1
    - Dst: close
      Src: /src/haproxy/src/sock.c:1284,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 3
    argNames:
    - fam
    - type
    - protocol
    argTypes:
    - struct proto_fam*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1287
    functionName: _sock_supports_reuseport
    functionSourceFile: /src/haproxy/src/sock.c
    functionUses: 1
    functionsReached:
    - bind
    - memset
    - getsockname
    - close
    - socket
    - real_family
    - setsockopt
    linkageType: ''
    returnType: int
    signature: int _sock_supports_reuseport(const struct proto_fam *fam, int type,
      int protocol)
  - 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: 16
    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:63,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/haproxy/src/jws.c:65,1
    - Dst: curves2nid
      Src: /src/haproxy/src/jws.c:71,1
    - Dst: nid2nist
      Src: /src/haproxy/src/jws.c:73,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/haproxy/src/jws.c:83,1
    - Dst: EC_KEY_get0_group
      Src: /src/haproxy/src/jws.c:85,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/haproxy/src/jws.c:87,1
    - Dst: BN_new
      Src: /src/haproxy/src/jws.c:91,1
    - Dst: BN_new
      Src: /src/haproxy/src/jws.c:93,1
    - Dst: EC_POINT_get_affine_coordinates
      Src: /src/haproxy/src/jws.c:95,1
    - Dst: EC_curve_nid2nist
      Src: /src/haproxy/src/jws.c:97,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/haproxy/src/jws.c:97,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:102,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:104,1
    - Dst: bn2base64url
      Src: /src/haproxy/src/jws.c:108,1
    - Dst: bn2base64url
      Src: /src/haproxy/src/jws.c:109,1
    - Dst: snprintf
      Src: /src/haproxy/src/jws.c:113,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:124,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:125,1
    - Dst: BN_free
      Src: /src/haproxy/src/jws.c:127,1
    - Dst: BN_free
      Src: /src/haproxy/src/jws.c:128,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 57
    argCount: 3
    argNames:
    - pkey
    - dst
    - dsize
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 133
    functionName: EVP_PKEY_EC_to_pub_jwk
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - nid2nist
    - EC_KEY_get0_group
    - bn2base64url
    - curves2nid
    - snprintf
    - free_trash_chunk
    - EVP_PKEY_get0_EC_KEY
    - BN_new
    - EVP_PKEY_get_utf8_string_param
    - EC_GROUP_get_curve_name
    - EC_KEY_get0_public_key
    - EC_POINT_get_affine_coordinates
    - EC_curve_nid2nist
    - EVP_PKEY_get_bn_param
    - BN_free
    - alloc_trash_chunk
    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:149,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/haproxy/src/jws.c:151,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/haproxy/src/jws.c:156,1
    - Dst: BN_dup
      Src: /src/haproxy/src/jws.c:158,1
    - Dst: RSA_get0_n
      Src: /src/haproxy/src/jws.c:158,1
    - Dst: BN_dup
      Src: /src/haproxy/src/jws.c:160,1
    - Dst: RSA_get0_e
      Src: /src/haproxy/src/jws.c:160,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:165,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:167,1
    - Dst: bn2base64url
      Src: /src/haproxy/src/jws.c:171,1
    - Dst: bn2base64url
      Src: /src/haproxy/src/jws.c:172,1
    - Dst: snprintf
      Src: /src/haproxy/src/jws.c:176,1
    - Dst: BN_free
      Src: /src/haproxy/src/jws.c:186,1
    - Dst: BN_free
      Src: /src/haproxy/src/jws.c:187,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:188,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:189,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 3
    argNames:
    - pkey
    - dst
    - dsize
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 194
    functionName: EVP_PKEY_RSA_to_pub_jwk
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - bn2base64url
    - alloc_trash_chunk
    - snprintf
    - free_trash_chunk
    - RSA_get0_e
    - BN_dup
    - EVP_PKEY_get0_RSA
    - EVP_PKEY_get_bn_param
    - BN_free
    - RSA_get0_n
    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:205,1
    - Dst: EVP_PKEY_RSA_to_pub_jwk
      Src: /src/haproxy/src/jws.c:207,1
    - Dst: EVP_PKEY_EC_to_pub_jwk
      Src: /src/haproxy/src/jws.c:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - pkey
    - dst
    - dsize
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 201
    functionDepth: 4
    functionLinenumber: 201
    functionLinenumberEnd: 216
    functionName: EVP_PKEY_to_pub_jwk
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - EVP_PKEY_EC_to_pub_jwk
    - EVP_PKEY_RSA_to_pub_jwk
    - EVP_PKEY_base_id
    linkageType: ''
    returnType: size_t
    signature: size_t EVP_PKEY_to_pub_jwk(EVP_PKEY *pkey, char *dst, size_t dsize)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:246,1
    - Dst: snprintf
      Src: /src/haproxy/src/jws.c:253,1
    - Dst: a2base64url
      Src: /src/haproxy/src/jws.c:268,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:270,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    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: 274
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 274
    functionName: jws_b64_protected
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - snprintf
    - free_trash_chunk
    - a2base64url
    - alloc_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:286,1
    - Dst: strlen
      Src: /src/haproxy/src/jws.c:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - payload
    - dst
    - dsize
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: jws_b64_payload
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - strlen
    - a2base64url
    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:300,1
    - Dst: EVP_PKEY_get_utf8_string_param
      Src: /src/haproxy/src/jws.c:306,1
    - Dst: curves2nid
      Src: /src/haproxy/src/jws.c:309,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/haproxy/src/jws.c:316,1
    - Dst: EC_KEY_get0_group
      Src: /src/haproxy/src/jws.c:318,1
    - Dst: EC_GROUP_get_curve_name
      Src: /src/haproxy/src/jws.c:321,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 346
    functionName: EVP_PKEY_to_jws_alg
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - EC_KEY_get0_group
    - EVP_PKEY_get0_EC_KEY
    - EVP_PKEY_get_utf8_string_param
    - EVP_PKEY_base_id
    - EC_GROUP_get_curve_name
    - curves2nid
    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:368,1
    - Dst: EVP_sha384
      Src: /src/haproxy/src/jws.c:373,1
    - Dst: EVP_sha512
      Src: /src/haproxy/src/jws.c:378,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:389,1
    - Dst: EVP_MD_CTX_new
      Src: /src/haproxy/src/jws.c:392,1
    - Dst: EVP_DigestSignInit
      Src: /src/haproxy/src/jws.c:395,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/haproxy/src/jws.c:398,1
    - Dst: strlen
      Src: /src/haproxy/src/jws.c:398,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/haproxy/src/jws.c:401,1
    - Dst: EVP_DigestSignUpdate
      Src: /src/haproxy/src/jws.c:404,1
    - Dst: strlen
      Src: /src/haproxy/src/jws.c:404,1
    - Dst: EVP_DigestSignFinal
      Src: /src/haproxy/src/jws.c:407,1
    - Dst: EVP_DigestSignFinal
      Src: /src/haproxy/src/jws.c:413,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/jws.c:419,1
    - Dst: EVP_PKEY_bits
      Src: /src/haproxy/src/jws.c:428,1
    - Dst: d2i_ECDSA_SIG
      Src: /src/haproxy/src/jws.c:430,1
    - Dst: ECDSA_SIG_get0_r
      Src: /src/haproxy/src/jws.c:433,1
    - Dst: ECDSA_SIG_get0_s
      Src: /src/haproxy/src/jws.c:436,1
    - Dst: BN_bn2binpad
      Src: /src/haproxy/src/jws.c:439,1
    - Dst: BN_bn2binpad
      Src: /src/haproxy/src/jws.c:442,1
    - Dst: a2base64url
      Src: /src/haproxy/src/jws.c:450,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:453,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 75
    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: 458
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 458
    functionName: jws_b64_signature
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - BN_bn2binpad
    - d2i_ECDSA_SIG
    - EVP_MD_CTX_new
    - EVP_sha384
    - alloc_trash_chunk
    - EVP_DigestSignUpdate
    - a2base64url
    - free_trash_chunk
    - EVP_sha512
    - EVP_DigestSignInit
    - strlen
    - EVP_PKEY_base_id
    - ECDSA_SIG_get0_s
    - EVP_PKEY_bits
    - EVP_DigestSignFinal
    - EVP_sha256
    - ECDSA_SIG_get0_r
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/jws.c:472,1
    - Dst: EVP_PKEY_base_id
      Src: /src/haproxy/src/jws.c:475,1
    - Dst: EVP_PKEY_RSA_to_pub_jwk
      Src: /src/haproxy/src/jws.c:477,1
    - Dst: EVP_PKEY_EC_to_pub_jwk
      Src: /src/haproxy/src/jws.c:480,1
    - Dst: EVP_Digest
      Src: /src/haproxy/src/jws.c:487,1
    - Dst: EVP_sha256
      Src: /src/haproxy/src/jws.c:487,1
    - Dst: a2base64url
      Src: /src/haproxy/src/jws.c:490,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/jws.c:493,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - pkey
    - dst
    - dsize
    argTypes:
    - EVP_PKEY*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 465
    functionDepth: 4
    functionLinenumber: 465
    functionLinenumberEnd: 497
    functionName: jws_thumbprint
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    functionsReached:
    - EVP_Digest
    - EVP_PKEY_RSA_to_pub_jwk
    - free_trash_chunk
    - a2base64url
    - EVP_PKEY_EC_to_pub_jwk
    - EVP_PKEY_base_id
    - EVP_sha256
    - alloc_trash_chunk
    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:504,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: 517
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 517
    functionName: jws_flattened
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 1
    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:540,1
    - Dst: fopen
      Src: /src/haproxy/src/jws.c:549,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:550,1
    - Dst: PEM_read_PrivateKey
      Src: /src/haproxy/src/jws.c:553,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:554,1
    - Dst: EVP_PKEY_to_pub_jwk
      Src: /src/haproxy/src/jws.c:558,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:560,1
    - Dst: EVP_PKEY_to_jws_alg
      Src: /src/haproxy/src/jws.c:562,1
    - Dst: jws_b64_protected
      Src: /src/haproxy/src/jws.c:563,1
    - Dst: jws_b64_payload
      Src: /src/haproxy/src/jws.c:564,1
    - Dst: jws_b64_signature
      Src: /src/haproxy/src/jws.c:565,1
    - Dst: jws_flattened
      Src: /src/haproxy/src/jws.c:566,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:568,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jws.c:570,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 520
    functionDepth: 5
    functionLinenumber: 520
    functionLinenumberEnd: 574
    functionName: jws_debug
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_to_jws_alg
    - jws_b64_payload
    - EVP_PKEY_free
    - PEM_read_PrivateKey
    - jws_b64_signature
    - fprintf
    - EVP_PKEY_to_pub_jwk
    - jws_flattened
    - jws_b64_protected
    - fopen
    linkageType: ''
    returnType: int
    signature: int jws_debug(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/haproxy/src/jws.c:590,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:591,1
    - Dst: PEM_read_PrivateKey
      Src: /src/haproxy/src/jws.c:594,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:595,1
    - Dst: EVP_PKEY_to_pub_jwk
      Src: /src/haproxy/src/jws.c:599,1
    - Dst: fprintf
      Src: /src/haproxy/src/jws.c:600,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/jws.c:602,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 577
    functionDepth: 5
    functionLinenumber: 577
    functionLinenumberEnd: 606
    functionName: jwk_debug
    functionSourceFile: /src/haproxy/src/jws.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    - PEM_read_PrivateKey
    - fprintf
    - EVP_PKEY_to_pub_jwk
    - fopen
    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:610,1
    - Dst: hap_register_unittest
      Src: /src/haproxy/src/jws.c:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 612
    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_CAS
    - _HA_ATOMIC_DWCAS
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:
    - MT_LIST_DELETE
    - FWLC_LBPRM_SEQ
    - pool_free
    - __ha_cpu_relax
    - _HA_ATOMIC_FETCH_SUB
    - fwlc_set_seq_and_smallest
    - eb32_delete
    - FWLC_LBPRM_SMALLEST
    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:
    - MT_LIST_POP
    - MT_LIST_APPEND
    - pool_free
    - pool_alloc
    - eb32_delete
    - MT_LIST_INIT
    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:
    - eb32_insert
    - eb32_lookup
    - container_of
    - fwlc_alloc_tree_elt
    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_LBPRM_SEQ
    - tasklet_wakeup
    - _HA_ATOMIC_LOAD
    - MT_LIST_APPEND
    - statistical_prng_range
    - fwlc_set_seq_and_smallest
    - FWLC_LBPRM_SMALLEST
    - _HA_ATOMIC_INC
    - fwlc_get_tree_elt
    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:
    - statistical_prng_range
    - mt_list_try_lock_prev
    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:
    - fwlc_get_key
    - tasklet_wakeup
    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:
    - mt_list_lock_full
    - HA_RWLOCK_WRTORD
    - pool_alloc
    - FWLC_LBPRM_SMALLEST
    - _HA_ATOMIC_INC
    - __ha_barrier_store
    - HA_ATOMIC_XCHG
    - HA_RWLOCK_WRUNLOCK
    - container_of
    - fwlc_check_srv_key
    - likely
    - FWLC_LBPRM_SEQ
    - HA_RWLOCK_TRYRDTOWR
    - tasklet_wakeup
    - _HA_ATOMIC_DEC
    - eb32_lookup
    - HA_RWLOCK_RDUNLOCK
    - fwlc_get_key
    - _HA_ATOMIC_STORE
    - mt_list_unlock_link
    - eb32_insert
    - mt_list_unlock_full
    - fwlc_alloc_tree_elt
    - HA_RWLOCK_RDLOCK
    - _HA_ATOMIC_LOAD
    - fwlc_lock_target_list
    - __ha_cpu_relax
    - fwlc_set_seq_and_smallest
    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:
    - fwlc_remove_from_tree
    - srv_currently_usable
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - fwlc_dequeue_srv
    - update_backend_weight
    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
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - update_backend_weight
    - fwlc_queue_srv
    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
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - srv_lb_status_changed
    - srv_willbe_usable
    - srv_lb_commit_status
    - fwlc_dequeue_srv
    - fwlc_set_server_status_down
    - update_backend_weight
    - fwlc_queue_srv
    - 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:729,1
    - Dst: recount_servers
      Src: /src/haproxy/src/lb_fwlc.c:734,1
    - Dst: update_backend_weight
      Src: /src/haproxy/src/lb_fwlc.c:735,1
    - Dst: srv_currently_usable
      Src: /src/haproxy/src/lb_fwlc.c:742,1
    - Dst: fwlc_queue_srv
      Src: /src/haproxy/src/lb_fwlc.c:745,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 712
    functionDepth: 4
    functionLinenumber: 712
    functionLinenumberEnd: 747
    functionName: fwlc_init_server_tree
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 1
    functionsReached:
    - recount_servers
    - srv_currently_usable
    - srv_lb_commit_status
    - update_backend_weight
    - fwlc_queue_srv
    linkageType: ''
    returnType: void
    signature: void fwlc_init_server_tree(struct proxy *p)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_fwlc.c:763,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:764,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/lb_fwlc.c:767,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:767,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/lb_fwlc.c:773,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:773,1
    - Dst: eb32_entry
      Src: /src/haproxy/src/lb_fwlc.c:786,1
    - Dst: statistical_prng_range
      Src: /src/haproxy/src/lb_fwlc.c:787,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:789,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:791,1
    - Dst: container_of
      Src: /src/haproxy/src/lb_fwlc.c:796,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:797,1
    - Dst: srv_dynamic_maxconn
      Src: /src/haproxy/src/lb_fwlc.c:800,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:801,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:801,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:812,1
    - Dst: fwlc_srv_reposition
      Src: /src/haproxy/src/lb_fwlc.c:813,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/lb_fwlc.c:814,1
    - Dst: eb32_next
      Src: /src/haproxy/src/lb_fwlc.c:841,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:842,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:845,1
    - Dst: likely
      Src: /src/haproxy/src/lb_fwlc.c:851,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:851,1
    - Dst: fwlc_set_seq_and_smallest
      Src: /src/haproxy/src/lb_fwlc.c:852,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:852,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:853,1
    - Dst: __ha_barrier_store
      Src: /src/haproxy/src/lb_fwlc.c:854,1
    - Dst: unlikely
      Src: /src/haproxy/src/lb_fwlc.c:862,1
    - Dst: FWLC_LBPRM_SMALLEST
      Src: /src/haproxy/src/lb_fwlc.c:862,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:862,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:862,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/lb_fwlc.c:868,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:874,1
    - Dst: FWLC_LBPRM_SEQ
      Src: /src/haproxy/src/lb_fwlc.c:874,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/lb_fwlc.c:884,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 91
    argCount: 2
    argNames:
    - p
    - srvtoavoid
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 754
    functionDepth: 4
    functionLinenumber: 754
    functionLinenumberEnd: 887
    functionName: fwlc_get_next_server
    functionSourceFile: /src/haproxy/src/lb_fwlc.c
    functionUses: 1
    functionsReached:
    - FWLC_LBPRM_SEQ
    - _HA_ATOMIC_LOAD
    - eb32_lookup_ge
    - srv_dynamic_maxconn
    - unlikely
    - statistical_prng_range
    - __ha_barrier_store
    - container_of
    - eb32_next
    - eb32_entry
    - HA_RWLOCK_RDUNLOCK
    - HA_ATOMIC_LOAD
    - fwlc_set_seq_and_smallest
    - FWLC_LBPRM_SMALLEST
    - fwlc_srv_reposition
    - likely
    - 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:49,1
    - Dst: regex_free
      Src: /src/haproxy/src/http_act.c:51,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_act.c:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: release_http_action
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - istfree
    - lf_expr_deinit
    - 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:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 4
    functionLinenumber: 58
    functionLinenumberEnd: 62
    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:72,1
    - Dst: release_act_http_reply
      Src: /src/haproxy/src/http_act.c:73,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: 77
      start: 68
    functionDepth: 5
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: check_act_http_reply
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - release_act_http_reply
    - http_check_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:94,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:101,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/http_act.c:105,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:109,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:120,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
    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: 134
      start: 88
    functionDepth: 6
    functionLinenumber: 88
    functionLinenumberEnd: 134
    functionName: http_action_set_req_line
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - build_logline
    - _HA_ATOMIC_INC
    - 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:171,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:176,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:179,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:179,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:180,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:189,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: 195
      start: 148
    functionDepth: 9
    functionLinenumber: 148
    functionLinenumberEnd: 195
    functionName: parse_set_req_line
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - parse_logformat_string
    - memprintf
    - lf_expr_init
    - 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:208,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_act.c:209,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_act.c:209,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:210,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:218,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:219,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:220,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:222,1
    - Dst: uri_normalizer_path_merge_slashes
      Src: /src/haproxy/src/http_act.c:225,1
    - Dst: iststop
      Src: /src/haproxy/src/http_act.c:225,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:230,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:236,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:237,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:238,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:240,1
    - Dst: uri_normalizer_path_dot
      Src: /src/haproxy/src/http_act.c:243,1
    - Dst: iststop
      Src: /src/haproxy/src/http_act.c:243,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:248,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:255,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:256,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:257,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:259,1
    - Dst: uri_normalizer_path_dotdot
      Src: /src/haproxy/src/http_act.c:262,1
    - Dst: iststop
      Src: /src/haproxy/src/http_act.c:262,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:267,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:273,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:274,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:275,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:277,1
    - Dst: uri_normalizer_query_sort
      Src: /src/haproxy/src/http_act.c:280,1
    - Dst: istfind
      Src: /src/haproxy/src/http_act.c:280,1
    - Dst: http_replace_req_query
      Src: /src/haproxy/src/http_act.c:285,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:292,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:293,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:294,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:296,1
    - Dst: uri_normalizer_percent_upper
      Src: /src/haproxy/src/http_act.c:299,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:304,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:311,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:312,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:313,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:315,1
    - Dst: uri_normalizer_percent_decode_unreserved
      Src: /src/haproxy/src/http_act.c:318,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:323,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:329,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:330,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:331,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:333,1
    - Dst: uri_normalizer_fragment_strip
      Src: /src/haproxy/src/http_act.c:336,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:341,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:347,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:348,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:349,1
    - Dst: isttest
      Src: /src/haproxy/src/http_act.c:351,1
    - Dst: uri_normalizer_fragment_encode
      Src: /src/haproxy/src/http_act.c:354,1
    - Dst: http_replace_req_path
      Src: /src/haproxy/src/http_act.c:359,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:380,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/src/http_act.c:391,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
    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: 405
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 405
    functionName: http_action_normalize_uri
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - uri_normalizer_path_merge_slashes
    - uri_normalizer_fragment_strip
    - free_trash_chunk
    - http_get_stline
    - istfind
    - alloc_trash_chunk
    - uri_normalizer_path_dot
    - uri_normalizer_path_dotdot
    - ist2
    - iststop
    - uri_normalizer_percent_upper
    - htxbuf
    - uri_normalizer_query_sort
    - http_parse_path
    - uri_normalizer_percent_decode_unreserved
    - http_uri_parser_init
    - _HA_ATOMIC_ADD
    - http_replace_req_query
    - http_replace_req_path
    - htx_sl_req_uri
    - isttest
    - uri_normalizer_fragment_encode
    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:421,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:425,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:430,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:435,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:438,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:445,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:445,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:446,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:450,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:455,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:458,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:465,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:465,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:466,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:470,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:473,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:480,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:480,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:481,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:485,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:490,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:496,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: 502
      start: 412
    functionDepth: 5
    functionLinenumber: 412
    functionLinenumberEnd: 502
    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:522,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:523,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/http_act.c:526,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/http_act.c:526,1
    - Dst: htxbuf
      Src: /src/haproxy/src/http_act.c:526,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:529,1
    - Dst: iststop
      Src: /src/haproxy/src/http_act.c:530,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:530,1
    - Dst: http_uri_parser_init
      Src: /src/haproxy/src/http_act.c:533,1
    - Dst: http_parse_path
      Src: /src/haproxy/src/http_act.c:534,1
    - Dst: istlen
      Src: /src/haproxy/src/http_act.c:537,1
    - Dst: regex_exec_match2
      Src: /src/haproxy/src/http_act.c:540,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:543,1
    - Dst: exp_replace
      Src: /src/haproxy/src/http_act.c:548,1
    - Dst: http_req_replace_stline
      Src: /src/haproxy/src/http_act.c:552,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:556,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:557,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:568,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
    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: 582
      start: 514
    functionDepth: 6
    functionLinenumber: 514
    functionLinenumberEnd: 582
    functionName: http_action_replace_uri
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - istlen
    - free_trash_chunk
    - http_parse_path
    - build_logline
    - http_uri_parser_init
    - regex_exec_match2
    - http_get_stline
    - iststop
    - htx_sl_req_uri
    - _HA_ATOMIC_INC
    - http_req_replace_stline
    - alloc_trash_chunk
    - exp_replace
    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:609,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:615,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:618,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:618,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:619,1
    - Dst: regex_comp
      Src: /src/haproxy/src/http_act.c:623,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:624,1
    - Dst: free
      Src: /src/haproxy/src/http_act.c:625,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:634,1
    - Dst: regex_free
      Src: /src/haproxy/src/http_act.c:635,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: 641
      start: 591
    functionDepth: 9
    functionLinenumber: 591
    functionLinenumberEnd: 641
    functionName: parse_replace_uri
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - lf_expr_init
    - strcmp
    - regex_comp
    - parse_logformat_string
    - free
    - memprintf
    - 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:647,1
    - Dst: _HA_ATOMIC_INC
      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
    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: 665
      start: 644
    functionDepth: 4
    functionLinenumber: 644
    functionLinenumberEnd: 665
    functionName: action_http_set_status
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - http_res_set_status
    - _HA_ATOMIC_INC
    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:680,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:684,1
    - Dst: strtol
      Src: /src/haproxy/src/http_act.c:689,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:691,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:698,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:699,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:700,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:700,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:702,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:702,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: 707
      start: 672
    functionDepth: 5
    functionLinenumber: 672
    functionLinenumberEnd: 707
    functionName: parse_http_set_status
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strdup
    - lf_expr_init
    - strcmp
    - memprintf
    - strtol
    - ist
    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:719,1
    - Dst: stream_abort
      Src: /src/haproxy/src/http_act.c:720,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:725,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
    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: 737
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 737
    functionName: http_action_reject
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - _HA_ATOMIC_INC
    - sc_must_kill_conn
    - stream_abort
    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: 749
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 749
    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: 766
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 766
    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: 779
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 779
    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:794,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_act.c:799,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_act.c:808,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: 811
      start: 786
    functionDepth: 3
    functionLinenumber: 786
    functionLinenumberEnd: 811
    functionName: http_action_req_capture
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    - memcpy
    - pool_alloc
    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:824,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:835,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_act.c:840,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_act.c:849,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: 852
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 852
    functionName: http_action_req_capture_by_id
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strm_fe
    - sample_fetch_as_type
    - memcpy
    - pool_alloc
    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:868,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: 874
      start: 859
    functionDepth: 5
    functionLinenumber: 859
    functionLinenumberEnd: 874
    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:880,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 877
    functionDepth: 5
    functionLinenumber: 877
    functionLinenumberEnd: 883
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:899,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:900,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:904,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:909,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:914,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/http_act.c:916,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:917,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:922,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:923,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:927,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:931,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:932,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:939,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:940,1
    - Dst: atoi
      Src: /src/haproxy/src/http_act.c:944,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:946,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:947,1
    - Dst: calloc
      Src: /src/haproxy/src/http_act.c:952,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:954,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:955,1
    - Dst: create_pool
      Src: /src/haproxy/src/http_act.c:962,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:975,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:982,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:983,1
    - Dst: strtol
      Src: /src/haproxy/src/http_act.c:987,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:989,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:990,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1006,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1007,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 90
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 890
    functionDepth: 7
    functionLinenumber: 890
    functionLinenumberEnd: 1013
    functionName: parse_http_req_capture
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strcmp
    - sample_parse_expr
    - atoi
    - create_pool
    - sample_src_names
    - memprintf
    - release_sample_expr
    - calloc
    - strtol
    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:1026,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:1037,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/http_act.c:1042,1
    - Dst: memcpy
      Src: /src/haproxy/src/http_act.c:1051,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: 1054
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1054
    functionName: http_action_res_capture_by_id
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strm_fe
    - sample_fetch_as_type
    - memcpy
    - pool_alloc
    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:1070,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: 1076
      start: 1061
    functionDepth: 5
    functionLinenumber: 1061
    functionLinenumberEnd: 1076
    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:1092,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1093,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1097,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:1102,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1107,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/http_act.c:1109,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1110,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1115,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1116,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1120,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1121,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1122,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: strtol
      Src: /src/haproxy/src/http_act.c:1134,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1136,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:1137,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: 1153
      start: 1083
    functionDepth: 7
    functionLinenumber: 1083
    functionLinenumberEnd: 1153
    functionName: parse_http_res_capture
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strcmp
    - sample_parse_expr
    - sample_src_names
    - memprintf
    - release_sample_expr
    - strtol
    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: 1164
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1164
    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:1179,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1201,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1201,1
    - Dst: http_parse_http_reply
      Src: /src/haproxy/src/http_act.c:1202,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1206,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1207,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1207,1
    - Dst: http_parse_http_reply
      Src: /src/haproxy/src/http_act.c:1208,1
    - Dst: http_parse_http_reply
      Src: /src/haproxy/src/http_act.c:1216,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: 1226
      start: 1171
    functionDepth: 7
    functionLinenumber: 1171
    functionLinenumberEnd: 1226
    functionName: parse_http_deny
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - http_parse_http_reply
    - strcmp
    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:1238,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1255,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1259,1
    - Dst: http_error_message
      Src: /src/haproxy/src/http_act.c:1261,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_act.c:1262,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/http_act.c:1264,1
    - Dst: http_reply_to_htx
      Src: /src/haproxy/src/http_act.c:1268,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_act.c:1273,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1274,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_act.c:1277,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:1277,1
    - Dst: b_orig
      Src: /src/haproxy/src/http_act.c:1277,1
    - Dst: b_data
      Src: /src/haproxy/src/http_act.c:1277,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/http_act.c:1281,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_act.c:1282,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1291,1
    - Dst: stream_inc_http_err_ctr
      Src: /src/haproxy/src/http_act.c:1298,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_act.c:1304,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: 1306
      start: 1233
    functionDepth: 13
    functionLinenumber: 1233
    functionLinenumberEnd: 1306
    functionName: http_action_auth
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - b_orig
    - http_add_header
    - http_find_header
    - http_reply_to_htx
    - chunk_printf
    - http_error_message
    - b_data
    - stream_inc_http_err_ctr
    - channel_htx_truncate
    - ist2
    - http_remove_header
    - htx_from_buf
    - _HA_ATOMIC_INC
    - http_forward_proxy_resp
    - htx_to_buf
    - ist
    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:1320,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1323,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1326,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1329,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:1329,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: 1335
      start: 1311
    functionDepth: 5
    functionLinenumber: 1311
    functionLinenumberEnd: 1335
    functionName: parse_http_auth
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strdup
    - lf_expr_init
    - strcmp
    - memprintf
    - ist
    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:1352,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:1353,1
    - Dst: htx_add_stline
      Src: /src/haproxy/src/http_act.c:1373,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1374,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1374,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1374,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:1382,1
    - Dst: b_tail
      Src: /src/haproxy/src/http_act.c:1382,1
    - Dst: b_room
      Src: /src/haproxy/src/http_act.c:1382,1
    - Dst: htx_add_header
      Src: /src/haproxy/src/http_act.c:1383,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:1383,1
    - Dst: b_head
      Src: /src/haproxy/src/http_act.c:1383,1
    - Dst: b_data
      Src: /src/haproxy/src/http_act.c:1383,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/http_act.c:1389,1
    - Dst: typeof
      Src: /src/haproxy/src/http_act.c:1389,1
    - Dst: htx_add_endof
      Src: /src/haproxy/src/http_act.c:1391,1
    - Dst: http_forward_proxy_resp
      Src: /src/haproxy/src/http_act.c:1393,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:1399,1
    - Dst: channel_htx_truncate
      Src: /src/haproxy/src/http_act.c:1405,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: 1409
      start: 1347
    functionDepth: 13
    functionLinenumber: 1347
    functionLinenumberEnd: 1409
    functionName: http_action_early_hint
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - htx_add_header
    - free_trash_chunk
    - build_logline
    - htx_add_stline
    - b_data
    - b_tail
    - channel_htx_truncate
    - ist2
    - b_room
    - LIST_NEXT
    - typeof
    - htx_from_buf
    - b_head
    - htx_add_endof
    - alloc_trash_chunk
    - http_forward_proxy_resp
    - ist
    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:1423,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:1429,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:1433,1
    - Dst: ist2
      Src: /src/haproxy/src/http_act.c:1435,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_act.c:1440,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1441,1
    - Dst: http_add_header
      Src: /src/haproxy/src/http_act.c:1445,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:1449,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1460,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1462,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1464,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1466,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: 1474
      start: 1419
    functionDepth: 3
    functionLinenumber: 1419
    functionLinenumberEnd: 1474
    functionName: http_action_set_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_add_header
    - http_find_header
    - free_trash_chunk
    - build_logline
    - ist2
    - http_remove_header
    - _HA_ATOMIC_INC
    - alloc_trash_chunk
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:1501,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1505,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1510,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:1510,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:1528,1
    - Dst: istfree
      Src: /src/haproxy/src/http_act.c:1529,1
    - Dst: istptr
      Src: /src/haproxy/src/http_act.c:1540,1
    - Dst: istend
      Src: /src/haproxy/src/http_act.c:1540,1
    - Dst: HTTP_IS_TOKEN
      Src: /src/haproxy/src/http_act.c:1541,1
    - Dst: istptr
      Src: /src/haproxy/src/http_act.c:1543,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1546,1
    - Dst: istptr
      Src: /src/haproxy/src/http_act.c:1546,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: 1552
      start: 1483
    functionDepth: 9
    functionLinenumber: 1483
    functionLinenumberEnd: 1552
    functionName: parse_http_set_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strdup
    - lf_expr_init
    - istfree
    - istptr
    - parse_logformat_string
    - HTTP_IS_TOKEN
    - memprintf
    - istend
    - ist
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: htxbuf
      Src: /src/haproxy/src/http_act.c:1566,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:1571,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:1575,1
    - Dst: http_replace_hdrs
      Src: /src/haproxy/src/http_act.c:1577,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:1582,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1593,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1595,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1597,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:1599,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: 1607
      start: 1562
    functionDepth: 4
    functionLinenumber: 1562
    functionLinenumberEnd: 1607
    functionName: http_action_replace_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - http_replace_hdrs
    - htxbuf
    - free_trash_chunk
    - build_logline
    - _HA_ATOMIC_INC
    - alloc_trash_chunk
    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:1624,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1628,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1632,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:1632,1
    - Dst: regex_comp
      Src: /src/haproxy/src/http_act.c:1635,1
    - Dst: istfree
      Src: /src/haproxy/src/http_act.c:1636,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:1656,1
    - Dst: istfree
      Src: /src/haproxy/src/http_act.c:1657,1
    - Dst: regex_free
      Src: /src/haproxy/src/http_act.c:1658,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: 1664
      start: 1613
    functionDepth: 9
    functionLinenumber: 1613
    functionLinenumberEnd: 1664
    functionName: parse_http_replace_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strdup
    - regex_free
    - lf_expr_init
    - regex_comp
    - istfree
    - parse_logformat_string
    - memprintf
    - ist
    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:1676,1
    - Dst: http_find_header
      Src: /src/haproxy/src/http_act.c:1683,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1684,1
    - Dst: http_find_pfx_header
      Src: /src/haproxy/src/http_act.c:1687,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1688,1
    - Dst: http_find_sfx_header
      Src: /src/haproxy/src/http_act.c:1691,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1692,1
    - Dst: http_find_sub_header
      Src: /src/haproxy/src/http_act.c:1695,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1696,1
    - Dst: http_match_header
      Src: /src/haproxy/src/http_act.c:1699,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/http_act.c:1700,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: 1706
      start: 1671
    functionDepth: 3
    functionLinenumber: 1671
    functionLinenumberEnd: 1706
    functionName: http_action_del_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_find_sub_header
    - http_find_header
    - http_remove_header
    - http_match_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:1723,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1727,1
    - Dst: ist
      Src: /src/haproxy/src/http_act.c:1731,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:1731,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:1734,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1737,1
    - Dst: pat_find_match_name
      Src: /src/haproxy/src/http_act.c:1742,1
    - Dst: regex_comp
      Src: /src/haproxy/src/http_act.c:1745,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1755,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: 1762
      start: 1713
    functionDepth: 5
    functionLinenumber: 1713
    functionLinenumberEnd: 1762
    functionName: parse_http_del_header
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strdup
    - lf_expr_init
    - strcmp
    - pat_find_match_name
    - regex_comp
    - memprintf
    - ist
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: tick_isset
      Src: /src/haproxy/src/http_act.c:1773,1
    - Dst: sample_fetch_as_type
      Src: /src/haproxy/src/http_act.c:1777,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_act.c:1780,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_act.c:1783,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/src/http_act.c:1784,1
    - Dst: tick_isset
      Src: /src/haproxy/src/http_act.c:1787,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/http_act.c:1787,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: 1792
      start: 1766
    functionDepth: 3
    functionLinenumber: 1766
    functionLinenumberEnd: 1792
    functionName: http_action_pause
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - tick_is_expired
    - sample_fetch_as_type
    - tick_isset
    - tick_add_ifset
    - MS_TO_TICKS
    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:1809,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1811,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1816,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:1822,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1825,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:1831,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: 1841
      start: 1797
    functionDepth: 7
    functionLinenumber: 1797
    functionLinenumberEnd: 1841
    functionName: parse_http_pause
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - sample_parse_expr
    - parse_time_err
    - memprintf
    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:1853,1
    - Dst: http_free_redirect_rule
      Src: /src/haproxy/src/http_act.c:1854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1845
    functionDepth: 4
    functionLinenumber: 1845
    functionLinenumberEnd: 1855
    functionName: release_http_redir
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - http_free_redirect_rule
    - LIST_DELETE
    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:1872,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: 1888
      start: 1860
    functionDepth: 7
    functionLinenumber: 1860
    functionLinenumberEnd: 1888
    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:1901,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:1906,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:1911,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/http_act.c:1917,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/http_act.c:1918,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/http_act.c:1919,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/http_act.c:1920,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/http_act.c:1928,1
    - Dst: build_logline
      Src: /src/haproxy/src/http_act.c:1933,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/http_act.c:1936,1
    - Dst: pat_ref_find_elt
      Src: /src/haproxy/src/http_act.c:1937,1
    - Dst: pat_ref_set_elt_duplicate
      Src: /src/haproxy/src/http_act.c:1940,1
    - Dst: pat_ref_add
      Src: /src/haproxy/src/http_act.c:1944,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/http_act.c:1946,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/http_act.c:1953,1
    - Dst: pat_ref_delete
      Src: /src/haproxy/src/http_act.c:1954,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/http_act.c:1955,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:1964,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/http_act.c:1965,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: 1973
      start: 1893
    functionDepth: 6
    functionLinenumber: 1893
    functionLinenumberEnd: 1973
    functionName: http_action_set_map
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - pat_ref_lookup
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - build_logline
    - pat_ref_find_elt
    - free_trash_chunk
    - pat_ref_set_elt_duplicate
    - pat_ref_delete
    - alloc_trash_chunk
    - pat_ref_add
    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:1978,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_act.c:1979,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/http_act.c:1981,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1982
      start: 1976
    functionDepth: 4
    functionLinenumber: 1976
    functionLinenumberEnd: 1982
    functionName: release_http_map
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - free
    - lf_expr_deinit
    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:2003,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2012,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2017,1
    - Dst: my_strndup
      Src: /src/haproxy/src/http_act.c:2025,1
    - Dst: strlen
      Src: /src/haproxy/src/http_act.c:2025,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:2043,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:2044,1
    - Dst: free
      Src: /src/haproxy/src/http_act.c:2045,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/http_act.c:2052,1
    - Dst: parse_logformat_string
      Src: /src/haproxy/src/http_act.c:2053,1
    - Dst: free
      Src: /src/haproxy/src/http_act.c:2054,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: 2061
      start: 1989
    functionDepth: 9
    functionLinenumber: 1989
    functionLinenumberEnd: 2061
    functionName: parse_http_set_map
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - my_strndup
    - lf_expr_init
    - parse_logformat_string
    - strlen
    - free
    - memprintf
    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:2080,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/http_act.c:2083,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/http_act.c:2087,1
    - Dst: stream_track_stkctr
      Src: /src/haproxy/src/http_act.c:2091,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2094,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2095,1
    - Dst: http_status_matches
      Src: /src/haproxy/src/http_act.c:2105,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2106,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2107,1
    - Dst: http_status_matches
      Src: /src/haproxy/src/http_act.c:2111,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2112,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/src/http_act.c:2113,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/http_act.c:2117,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2120,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/http_act.c:2122,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2122,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2125,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/http_act.c:2127,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2127,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2130,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/src/http_act.c:2132,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/src/http_act.c:2132,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/http_act.c:2135,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/src/http_act.c:2138,1
    - Dst: stkctr_set_flags
      Src: /src/haproxy/src/http_act.c:2141,1
    - Dst: stkctr_set_flags
      Src: /src/haproxy/src/http_act.c:2143,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: 2147
      start: 2066
    functionDepth: 5
    functionLinenumber: 2066
    functionLinenumberEnd: 2147
    functionName: http_action_track_sc
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - stktable_fetch_key
    - stktable_get_entry
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - http_status_matches
    - update_freq_ctr_period
    - stkctr_set_flags
    - stream_track_stkctr
    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:2151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2149
    functionDepth: 5
    functionLinenumber: 2149
    functionLinenumberEnd: 2152
    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:2167,1
    - Dst: strlen
      Src: /src/haproxy/src/http_act.c:2167,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/http_act.c:2171,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2183,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/http_act.c:2184,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:2185,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:2189,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2192,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/http_act.c:2193,1
    - Dst: strdup
      Src: /src/haproxy/src/http_act.c:2198,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: 2210
      start: 2157
    functionDepth: 7
    functionLinenumber: 2157
    functionLinenumberEnd: 2210
    functionName: parse_http_track_sc
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcmp
    - sample_parse_expr
    - strlen
    - sample_src_names
    - memprintf
    - release_sample_expr
    - cfg_parse_track_sc_num
    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:2221,1
    - Dst: stream_set_timeout
      Src: /src/haproxy/src/http_act.c:2225,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_act.c:2225,1
    - Dst: stream_set_timeout
      Src: /src/haproxy/src/http_act.c:2228,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/http_act.c:2228,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: 2232
      start: 2212
    functionDepth: 3
    functionLinenumber: 2212
    functionLinenumberEnd: 2232
    functionName: action_timeout_set_stream_timeout
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - stream_set_timeout
    - MS_TO_TICKS
    - sample_fetch_as_type
    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:2249,1
    - Dst: cfg_parse_rule_set_timeout
      Src: /src/haproxy/src/http_act.c:2253,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: 2260
      start: 2236
    functionDepth: 5
    functionLinenumber: 2236
    functionLinenumberEnd: 2260
    functionName: parse_http_set_timeout
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - cfg_parse_rule_set_timeout
    - memprintf
    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: 2275
      start: 2265
    functionDepth: 0
    functionLinenumber: 2265
    functionLinenumberEnd: 2275
    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:2287,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_act.c:2291,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/http_act.c:2293,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2296,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: 2303
      start: 2280
    functionDepth: 5
    functionLinenumber: 2280
    functionLinenumberEnd: 2303
    functionName: parse_http_strict_mode
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - memprintf
    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:2322,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/http_act.c:2332,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: 2336
      start: 2310
    functionDepth: 14
    functionLinenumber: 2310
    functionLinenumberEnd: 2336
    functionName: http_action_return
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - http_reply_message
    - _HA_ATOMIC_INC
    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:2347,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: 2357
      start: 2342
    functionDepth: 7
    functionLinenumber: 2342
    functionLinenumberEnd: 2357
    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:2377,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: 2391
      start: 2370
    functionDepth: 2
    functionLinenumber: 2370
    functionLinenumberEnd: 2391
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2405,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:2412,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2414,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/http_act.c:2417,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2419,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2423,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2427,1
    - Dst: strcmp
      Src: /src/haproxy/src/http_act.c:2432,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2434,1
    - Dst: parse_size_err
      Src: /src/haproxy/src/http_act.c:2437,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2439,1
    - Dst: memprintf
      Src: /src/haproxy/src/http_act.c:2450,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 5
    argNames:
    - args
    - orig_arg
    - px
    - rule
    - err
    argTypes:
    - char**
    - int*
    - struct proxy*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2462
      start: 2396
    functionDepth: 5
    functionLinenumber: 2396
    functionLinenumberEnd: 2462
    functionName: parse_http_wait_for_body
    functionSourceFile: /src/haproxy/src/http_act.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    - parse_size_err
    - strcmp
    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:2470,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_act.c:2471,1
    - Dst: log_orig_register
      Src: /src/haproxy/src/http_act.c:2472,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_act.c:2473,1
    - Dst: log_orig_register
      Src: /src/haproxy/src/http_act.c:2474,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/http_act.c:2475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2476
      start: 2468
    functionDepth: 4
    functionLinenumber: 2468
    functionLinenumberEnd: 2476
    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:2483,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: 2484
      start: 2480
    functionDepth: 1
    functionLinenumber: 2480
    functionLinenumberEnd: 2484
    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:2489,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: 2490
      start: 2486
    functionDepth: 1
    functionLinenumber: 2486
    functionLinenumberEnd: 2490
    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:2495,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: 2496
      start: 2492
    functionDepth: 1
    functionLinenumber: 2492
    functionLinenumberEnd: 2496
    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:
    - eb_clrtag
    - eb_gettag
    - eb_walk_down
    - eb_root_to_node
    - unlikely
    - eb_untag
    - container_of
    - eb32_entry
    - 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:
    - eb_clrtag
    - eb_gettag
    - eb_walk_down
    - eb_root_to_node
    - unlikely
    - eb_untag
    - container_of
    - eb32_entry
    - 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:43,1
    - Dst: my_realloc2
      Src: /src/haproxy/src/trace.c:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: alloc_trace_buffers_per_thread
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - my_realloc2
    - chunk_init
    linkageType: ''
    returnType: int
    signature: int alloc_trace_buffers_per_thread()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: chunk_destroy
      Src: /src/haproxy/src/trace.c:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    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: 73
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 73
    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: 65
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/trace.c:99,1
    - Dst: likely
      Src: /src/haproxy/src/trace.c:102,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:114,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:117,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:120,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:123,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:126,1
    - Dst: trace_pick_arg
      Src: /src/haproxy/src/trace.c:129,1
    - Dst: struct trace_source*::fill_ctx
      Src: /src/haproxy/src/trace.c:132,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/trace.c:140,1
    - Dst: objt_listener
      Src: /src/haproxy/src/trace.c:153,1
    - Dst: objt_server
      Src: /src/haproxy/src/trace.c:168,1
    - Dst: objt_proxy
      Src: /src/haproxy/src/trace.c:174,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:184,1
    CyclomaticComplexity: 83
    EdgeCount: 83
    ICount: 173
    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: 251
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 251
    functionName: __trace_enabled
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - trace_pick_arg
    - HA_ATOMIC_STORE
    - objt_server
    - HA_ATOMIC_LOAD
    - objt_listener
    - struct trace_source*::fill_ctx
    - likely
    - objt_proxy
    - LIST_INLIST
    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:269,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:271,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:282,1
    - Dst: ist2
      Src: /src/haproxy/src/trace.c:287,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:289,1
    - Dst: ist2
      Src: /src/haproxy/src/trace.c:290,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:291,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:298,1
    - Dst: isttest
      Src: /src/haproxy/src/trace.c:300,1
    - Dst: ist
      Src: /src/haproxy/src/trace.c:302,1
    - Dst: b_reset
      Src: /src/haproxy/src/trace.c:313,1
    - Dst: b_istput
      Src: /src/haproxy/src/trace.c:314,1
    - Dst: cb
      Src: /src/haproxy/src/trace.c:315,1
    - Dst: ist2
      Src: /src/haproxy/src/trace.c:316,1
    - Dst: sink_write
      Src: /src/haproxy/src/trace.c:329,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:334,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:335,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:338,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:339,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: 341
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 341
    functionName: __trace
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - sink_write
    - HA_ATOMIC_STORE
    - __trace_enabled
    - ist2
    - b_istput
    - cb
    - isttest
    - b_reset
    - ist
    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: 349
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 349
    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: 360
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 360
    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:368,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/trace.c:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - struct trace_source*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: trace_register_source
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - trace_source_reset
    linkageType: ''
    returnType: void
    signature: void trace_register_source(struct trace_source *source)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/src/trace.c:375,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:377,1
    - Dst: isteq
      Src: /src/haproxy/src/trace.c:378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 381
    functionName: trace_find_source
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - isteq
    - list_for_each_entry
    - ist
    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:386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ev
    - name
    argTypes:
    - struct trace_event*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 389
    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:397,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:399,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:401,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:403,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:405,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:407,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - level
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 411
    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:423,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:432,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:439,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 23
    argCount: 2
    argNames:
    - src
    - verbosity
    argTypes:
    - struct trace_source*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 450
    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:466,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:468,1
    - Dst: sink_find
      Src: /src/haproxy/src/trace.c:473,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:475,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - name
    - msg
    - file
    - line
    argTypes:
    - char*
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 459
    functionDepth: 5
    functionLinenumber: 459
    functionLinenumberEnd: 480
    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: 489
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 489
    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:510,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:516,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:517,1
    - Dst: trace_state_char
      Src: /src/haproxy/src/trace.c:517,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:520,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:524,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:526,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:527,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:528,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:532,1
    - Dst: trace_find_source
      Src: /src/haproxy/src/trace.c:536,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:538,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:556,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:566,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:567,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:568,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:569,1
    - Dst: trace_enforce_origin_priority
      Src: /src/haproxy/src/trace.c:573,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:576,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/trace.c:577,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:582,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:584,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/trace.c:586,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:588,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:593,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:594,1
    - Dst: trace_state_char
      Src: /src/haproxy/src/trace.c:594,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:597,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:602,1
    - Dst: trace_find_source
      Src: /src/haproxy/src/trace.c:603,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:605,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:611,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:614,1
    - Dst: trace_enforce_origin_priority
      Src: /src/haproxy/src/trace.c:615,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:616,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:622,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:623,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:624,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:625,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:643,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:645,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:646,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:647,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:649,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:650,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:654,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:665,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:666,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:668,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:669,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:672,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:675,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:676,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:679,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:680,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:681,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:684,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/trace.c:686,1
    - Dst: trace_find_event
      Src: /src/haproxy/src/trace.c:691,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:693,1
    - Dst: HA_ATOMIC_OR
      Src: /src/haproxy/src/trace.c:698,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/src/trace.c:700,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/src/trace.c:702,1
    - Dst: HA_ATOMIC_CAS
      Src: /src/haproxy/src/trace.c:703,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:709,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:714,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:715,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:716,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:717,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:722,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:724,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:728,1
    - Dst: _trace_get_sink
      Src: /src/haproxy/src/trace.c:731,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:737,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:740,1
    - Dst: trace_enforce_origin_priority
      Src: /src/haproxy/src/trace.c:741,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:742,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:749,1
    - Dst: trace_parse_level
      Src: /src/haproxy/src/trace.c:754,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/trace.c:757,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:759,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:760,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:761,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:763,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:765,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:767,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:769,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:771,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:774,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:779,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:782,1
    - Dst: trace_enforce_origin_priority
      Src: /src/haproxy/src/trace.c:783,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:784,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:791,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:795,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:797,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:801,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:805,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:809,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:813,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:828,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:832,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:836,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:848,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:853,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:858,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:863,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:866,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:867,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:868,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:870,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:871,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:872,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:874,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:875,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:876,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:878,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:879,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:880,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:882,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:883,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:884,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:886,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:887,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:888,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:890,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:891,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:892,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:894,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:895,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:896,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:898,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:899,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:900,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:902,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:903,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:904,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:906,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:907,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:908,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:910,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:911,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:912,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:914,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:915,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:916,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:918,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:919,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:920,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:922,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:923,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:924,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:926,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:927,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:928,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:931,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:938,1
    - Dst: trace_source_parse_verbosity
      Src: /src/haproxy/src/trace.c:944,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/trace.c:947,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:949,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:950,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:951,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:954,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:958,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:963,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/src/trace.c:967,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:973,1
    CyclomaticComplexity: 141
    EdgeCount: 141
    ICount: 335
    argCount: 4
    argNames:
    - args
    - msg
    - file
    - line
    argTypes:
    - char**
    - char**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 499
    functionDepth: 6
    functionLinenumber: 499
    functionLinenumberEnd: 980
    functionName: _trace_parse_statement
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - HA_ATOMIC_STORE
    - _trace_get_sink
    - trace_event_char
    - strcmp
    - chunk_printf
    - chunk_appendf
    - trace_find_source
    - trace_find_event
    - strdup
    - HA_ATOMIC_OR
    - trace_source_parse_verbosity
    - trace_state_char
    - HA_ATOMIC_LOAD
    - HA_ATOMIC_CAS
    - memprintf
    - trace_enforce_origin_priority
    - list_for_each_entry
    - HA_ATOMIC_AND
    - trace_parse_level
    - chunk_reset
    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:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - args
    - msg
    argTypes:
    - char**
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 985
    functionDepth: 7
    functionLinenumber: 985
    functionLinenumberEnd: 988
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: trace_source_reset
      Src: /src/haproxy/src/trace.c:992,1
    - Dst: sink_find
      Src: /src/haproxy/src/trace.c:993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - src
    - level
    - verbosity
    argTypes:
    - struct trace_source*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 990
    functionDepth: 2
    functionLinenumber: 990
    functionLinenumberEnd: 998
    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:1014,1
    - Dst: _trace_parse_cmd
      Src: /src/haproxy/src/trace.c:1015,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:1019,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1020,1
    - Dst: strdup
      Src: /src/haproxy/src/trace.c:1038,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1040,1
    - Dst: strtok_r
      Src: /src/haproxy/src/trace.c:1044,1
    - Dst: strchr
      Src: /src/haproxy/src/trace.c:1052,1
    - Dst: strlen
      Src: /src/haproxy/src/trace.c:1061,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:1061,1
    - Dst: trace_find_source
      Src: /src/haproxy/src/trace.c:1062,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1064,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1065,1
    - Dst: strlen
      Src: /src/haproxy/src/trace.c:1070,1
    - Dst: strchr
      Src: /src/haproxy/src/trace.c:1075,1
    - Dst: strlen
      Src: /src/haproxy/src/trace.c:1084,1
    - Dst: trace_parse_level
      Src: /src/haproxy/src/trace.c:1085,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1087,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1088,1
    - Dst: strlen
      Src: /src/haproxy/src/trace.c:1093,1
    - Dst: strchr
      Src: /src/haproxy/src/trace.c:1098,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1099,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1100,1
    - Dst: trace_source_parse_verbosity
      Src: /src/haproxy/src/trace.c:1104,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1109,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1112,1
    - Dst: memprintf
      Src: /src/haproxy/src/trace.c:1114,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1117,1
    - Dst: _trace_parse_cmd
      Src: /src/haproxy/src/trace.c:1123,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:1126,1
    - Dst: _trace_parse_cmd
      Src: /src/haproxy/src/trace.c:1127,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1133,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 2
    argNames:
    - arg_src
    - errmsg
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1004
    functionDepth: 5
    functionLinenumber: 1004
    functionLinenumberEnd: 1135
    functionName: trace_parse_cmd
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 2
    functionsReached:
    - strdup
    - list_for_each_entry
    - strcmp
    - _trace_parse_cmd
    - trace_source_parse_verbosity
    - ha_free
    - trace_find_source
    - strtok_r
    - strlen
    - memprintf
    - strchr
    - trace_parse_level
    linkageType: ''
    returnType: int
    signature: int trace_parse_cmd(const char *arg_src, char **errmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _trace_parse_statement
      Src: /src/haproxy/src/trace.c:1145,1
    - Dst: ha_notice
      Src: /src/haproxy/src/trace.c:1148,1
    - Dst: ha_warning
      Src: /src/haproxy/src/trace.c:1150,1
    - Dst: ha_free
      Src: /src/haproxy/src/trace.c:1156,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: 1160
      start: 1138
    functionDepth: 9
    functionLinenumber: 1138
    functionLinenumberEnd: 1160
    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:1177,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/trace.c:1179,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:1188,1
    - Dst: strcmp
      Src: /src/haproxy/src/trace.c:1192,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/trace.c:1193,1
    - Dst: ha_alert
      Src: /src/haproxy/src/trace.c:1194,1
    - Dst: parse
      Src: /src/haproxy/src/trace.c:1199,1
    - Dst: ha_alert
      Src: /src/haproxy/src/trace.c:1201,1
    - Dst: ha_warning
      Src: /src/haproxy/src/trace.c:1205,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/trace.c:1213,1
    - Dst: ha_alert
      Src: /src/haproxy/src/trace.c:1215,1
    - Dst: ha_alert
      Src: /src/haproxy/src/trace.c:1217,1
    - Dst: free
      Src: /src/haproxy/src/trace.c:1222,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - inv
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1172
    functionDepth: 9
    functionLinenumber: 1172
    functionLinenumberEnd: 1224
    functionName: cfg_parse_traces
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - cfg_find_best_match
    - ha_warning
    - list_for_each_entry
    - check_kw_experimental
    - strcmp
    - free
    - ha_alert
    - parse
    - alertif_too_many_args
    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:1232,1
    - Dst: trace_parse_statement
      Src: /src/haproxy/src/trace.c:1235,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/trace.c:1237,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: 1241
      start: 1227
    functionDepth: 8
    functionLinenumber: 1227
    functionLinenumberEnd: 1241
    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:1254,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/trace.c:1258,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:1260,1
    - Dst: trace_state_char
      Src: /src/haproxy/src/trace.c:1261,1
    - Dst: cli_msg
      Src: /src/haproxy/src/trace.c:1268,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/trace.c:1271,1
    - Dst: trace_find_source
      Src: /src/haproxy/src/trace.c:1274,1
    - Dst: cli_err
      Src: /src/haproxy/src/trace.c:1276,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/trace.c:1279,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:1280,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:1283,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/trace.c:1285,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:1287,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:1288,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:1289,1
    - Dst: trace_event_char
      Src: /src/haproxy/src/trace.c:1290,1
    - Dst: cli_msg
      Src: /src/haproxy/src/trace.c:1294,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: 1295
      start: 1244
    functionDepth: 2
    functionLinenumber: 1244
    functionLinenumberEnd: 1295
    functionName: cli_parse_show_trace
    functionSourceFile: /src/haproxy/src/trace.c
    functionUses: 0
    functionsReached:
    - trace_event_char
    - list_for_each_entry
    - chunk_printf
    - chunk_appendf
    - cli_err
    - trace_state_char
    - trace_find_source
    - cli_msg
    - cli_has_level
    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:24,1
    - Dst: write_u64
      Src: /src/haproxy/src/htx.c:25,1
    - Dst: read_u64
      Src: /src/haproxy/src/htx.c:25,1
    - Dst: memcpy
      Src: /src/haproxy/src/htx.c:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - src
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: htx_memcpy
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - write_u64
    - memcpy
    - read_u64
    - likely
    linkageType: ''
    returnType: void
    signature: void htx_memcpy(void *dst, void *src, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/htx.c:41,1
    - Dst: htxbuf
      Src: /src/haproxy/src/htx.c:42,1
    - Dst: htx_get_head
      Src: /src/haproxy/src/htx.c:59,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/htx.c:59,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:60,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:61,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:64,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:65,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:65,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:71,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:82,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:95,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:97,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 3
    argNames:
    - htx
    - blk
    - blkinfo
    argTypes:
    - struct htx*
    - struct htx_blk*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 98
    functionName: htx_defrag
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 2
    functionsReached:
    - htx_get_head
    - htxbuf
    - htx_get_blksz
    - get_trash_chunk
    - htx_get_blk_type
    - htx_memcpy
    - htx_get_blk_ptr
    - htx_get_next
    - htx_get_blk
    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:109,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/htx.c:109,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:117,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:118,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:123,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 130
    functionName: htx_defrag_blks
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_get_head
    - htx_get_blk_type
    - BUG_ON
    - htx_get_next
    - htx_get_blk
    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:143,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:149,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:163,1
    - Dst: htx_defrag_blks
      Src: /src/haproxy/src/htx.c:166,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:168,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:168,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:183,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:184,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:185,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:188,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:193,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:200,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:202,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:213,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:214,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:215,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 2
    argNames:
    - htx
    - blksz
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 219
    functionName: htx_reserve_nxblk
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_free_data_space
    - htx_pos_to_addr
    - htx_defrag_blks
    - BUG_ON
    - htx_defrag
    - htx_get_blk
    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:244,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:247,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:248,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:249,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:251,1
    - Dst: htx_free_space
      Src: /src/haproxy/src/htx.c:260,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:318,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:319,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:320,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:321,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: 323
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 323
    functionName: htx_prepare_blk_expansion
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_pos_to_addr
    - htx_get_blksz
    - 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:332,1
    - Dst: htx_reserve_nxblk
      Src: /src/haproxy/src/htx.c:333,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:336,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: 340
      start: 328
    functionDepth: 4
    functionLinenumber: 328
    functionLinenumberEnd: 340
    functionName: htx_add_blk
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    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:351,1
    - Dst: htx_reset
      Src: /src/haproxy/src/htx.c:357,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:362,1
    - Dst: htx_get_blk_pos
      Src: /src/haproxy/src/htx.c:363,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:364,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:368,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:387,1
    - Dst: htx_get_blk_pos
      Src: /src/haproxy/src/htx.c:391,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/htx.c:396,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:417,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:418,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:419,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:420,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 52
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 422
    functionName: htx_remove_blk
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 30
    functionsReached:
    - htx_get_blksz
    - htx_get_blk_type
    - BUG_ON
    - htx_reset
    - htx_get_blk
    - htx_get_blk_pos
    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:437,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:437,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:438,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - htx
    - offset
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 447
    functionName: htx_find_offset
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 4
    functionsReached:
    - htx_get_head_blk
    - htx_get_next_blk
    - htx_get_blksz
    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:455,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:458,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/htx.c:459,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:460,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - htx
    - offset
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 464
    functionName: htx_truncate
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 10
    functionsReached:
    - htx_get_blk_type
    - htx_remove_blk
    - htx_get_next_blk
    - htx_find_offset
    - htx_change_blk_value_len
    linkageType: ''
    returnType: void
    signature: void htx_truncate(struct htx *htx, uint32_t offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htx_reset
      Src: /src/haproxy/src/htx.c:480,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:486,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:488,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:489,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/htx.c:497,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - htx
    - count
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 472
    functionDepth: 2
    functionLinenumber: 472
    functionLinenumberEnd: 510
    functionName: htx_drain
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_get_head_blk
    - htx_cut_data_blk
    - htx_get_blk_type
    - htx_remove_blk
    - htx_reset
    linkageType: ''
    returnType: struct htx_ret
    signature: struct htx_ret htx_drain(struct htx *htx, uint32_t count)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:529,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:533,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:536,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:540,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:547,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:548,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:549,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:567,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:568,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/htx.c:569,1
    - Dst: istadv
      Src: /src/haproxy/src/htx.c:575,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:578,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:583,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:583,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:586,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:587,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:588,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:589,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 2
    argNames:
    - htx
    - data
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 519
    functionDepth: 5
    functionLinenumber: 519
    functionLinenumberEnd: 591
    functionName: htx_add_data_atonce
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 5
    functionsReached:
    - htx_free_data_space
    - htx_get_blksz
    - htx_pos_to_addr
    - htx_get_tail_blk
    - istadv
    - htx_get_blk_type
    - BUG_ON
    - htx_memcpy
    - htx_get_blk_ptr
    - htx_add_blk
    - htx_change_blk_value_len
    linkageType: ''
    returnType: struct htx_blk
    signature: struct htx_blk *htx_add_data_atonce(struct htx *htx, struct ist data)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/htx.c:605,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/htx.c:606,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:607,1
    - Dst: htx_prepare_blk_expansion
      Src: /src/haproxy/src/htx.c:608,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:615,1
    - Dst: ptr::ptr
      Src: /src/haproxy/src/htx.c:615,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:615,1
    - Dst: memmove
      Src: /src/haproxy/src/htx.c:616,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:616,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:616,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:617,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:617,1
    - Dst: memmove
      Src: /src/haproxy/src/htx.c:621,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:621,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:621,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:622,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:622,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:623,1
    - Dst: ptr::ptr
      Src: /src/haproxy/src/htx.c:623,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:623,1
    - Dst: htx_set_blk_value_len
      Src: /src/haproxy/src/htx.c:627,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:631,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:634,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:638,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:642,1
    - Dst: ptr::ptr
      Src: /src/haproxy/src/htx.c:642,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:642,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:643,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:646,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:646,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:646,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:646,1
    - Dst: htx_set_blk_value_len
      Src: /src/haproxy/src/htx.c:649,1
    - Dst: htx_set_blk_value_len
      Src: /src/haproxy/src/htx.c:661,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:664,1
    - Dst: memmove
      Src: /src/haproxy/src/htx.c:671,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:671,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:672,1
    - Dst: istend
      Src: /src/haproxy/src/htx.c:672,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:673,1
    - Dst: ptr::ptr
      Src: /src/haproxy/src/htx.c:673,1
    - Dst: len::len
      Src: /src/haproxy/src/htx.c:673,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 4
    argNames:
    - htx
    - blk
    - old
    - new
    argTypes:
    - struct htx*
    - struct htx_blk*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 598
    functionDepth: 3
    functionLinenumber: 598
    functionLinenumberEnd: 676
    functionName: htx_replace_blk_value
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 6
    functionsReached:
    - htx_set_blk_value_len
    - htx_get_blk_value
    - memmove
    - len::len
    - htx_prepare_blk_expansion
    - htx_memcpy
    - htx_get_blk_name
    - htx_get_blk_ptr
    - htx_defrag
    - istend
    - ptr::ptr
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: htx_used_space
      Src: /src/haproxy/src/htx.c:691,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:697,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:697,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:698,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/src/htx.c:705,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:709,1
    - Dst: htx_reserve_nxblk
      Src: /src/haproxy/src/htx.c:719,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:723,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:723,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:723,1
    - Dst: htx_cut_data_blk
      Src: /src/haproxy/src/htx.c:729,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:748,1
    - Dst: unlikely
      Src: /src/haproxy/src/htx.c:753,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:759,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:761,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/htx.c:766,1
    - Dst: htx_drain
      Src: /src/haproxy/src/htx.c:773,1
    - Dst: htx_get_head_blk
      Src: /src/haproxy/src/htx.c:778,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/src/htx.c:778,1
    - Dst: htx_used_space
      Src: /src/haproxy/src/htx.c:782,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 58
    argCount: 4
    argNames:
    - dst
    - src
    - count
    - mark
    argTypes:
    - struct htx*
    - struct htx*
    - uint32_t
    - enum htx_blk_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 683
    functionDepth: 4
    functionLinenumber: 683
    functionLinenumberEnd: 784
    functionName: htx_xfer_blks
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 5
    functionsReached:
    - htx_get_blksz
    - htx_reserve_nxblk
    - unlikely
    - htx_get_max_blksz
    - htx_get_head_blk
    - htx_cut_data_blk
    - htx_get_blk_type
    - htx_memcpy
    - htx_remove_blk
    - htx_get_next_blk
    - htx_get_blk_ptr
    - htx_used_space
    - htx_drain
    - htx_is_empty
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:798,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:802,1
    - Dst: htx_prepare_blk_expansion
      Src: /src/haproxy/src/htx.c:803,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:812,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:820,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/src/htx.c:821,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 4
    argNames:
    - htx
    - blk
    - name
    - value
    argTypes:
    - struct htx*
    - struct htx_blk*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 824
    functionName: htx_replace_header
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - htx_get_blksz
    - htx_get_blk_type
    - htx_prepare_blk_expansion
    - htx_memcpy
    - htx_get_blk_ptr
    - htx_defrag
    - ist2bin_lc
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:840,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:845,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:849,1
    - Dst: htx_prepare_blk_expansion
      Src: /src/haproxy/src/htx.c:851,1
    - Dst: htx_defrag
      Src: /src/haproxy/src/htx.c:858,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:867,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/htx.c:871,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/htx.c:872,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/htx.c:873,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:875,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/htx.c:875,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:876,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/htx.c:876,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:877,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/htx.c:877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    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: 880
      start: 830
    functionDepth: 3
    functionLinenumber: 830
    functionLinenumberEnd: 880
    functionName: htx_replace_stline
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - htx_get_blksz
    - HTX_SL_P2_LEN
    - htx_get_blk_type
    - htx_prepare_blk_expansion
    - htx_memcpy
    - HTX_SL_P3_LEN
    - HTX_SL_P1_PTR
    - htx_get_blk_ptr
    - htx_defrag
    - HTX_SL_P1_LEN
    - HTX_SL_P3_PTR
    - HTX_SL_P2_PTR
    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: 10
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:892,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:901,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:904,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:908,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:917,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:924,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/htx.c:929,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:931,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:932,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:933,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:934,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:938,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 888
    functionDepth: 5
    functionLinenumber: 888
    functionLinenumberEnd: 943
    functionName: htx_reserve_max_data
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 1
    functionsReached:
    - htx_free_data_space
    - htx_get_blksz
    - htx_pos_to_addr
    - htx_get_tail_blk
    - htx_get_blk_type
    - BUG_ON
    - htx_add_blk
    - htx_change_blk_value_len
    linkageType: ''
    returnType: struct htx_ret
    signature: struct htx_ret htx_reserve_max_data(struct htx *htx)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:957,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/htx.c:958,1
    - Dst: htx_get_tail_blk
      Src: /src/haproxy/src/htx.c:967,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:970,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:974,1
    - Dst: htx_pos_to_addr
      Src: /src/haproxy/src/htx.c:983,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:990,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:996,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:997,1
    - Dst: htx_change_blk_value_len
      Src: /src/haproxy/src/htx.c:998,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1000,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1001,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1002,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/htx.c:1003,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:1007,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:1012,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1012,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 48
    argCount: 2
    argNames:
    - htx
    - data
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 949
    functionDepth: 5
    functionLinenumber: 949
    functionLinenumberEnd: 1014
    functionName: htx_add_data
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 7
    functionsReached:
    - htx_free_data_space
    - htx_get_blksz
    - htx_pos_to_addr
    - htx_get_tail_blk
    - htx_get_blk_type
    - BUG_ON
    - htx_memcpy
    - htx_get_blk_ptr
    - htx_add_blk
    - htx_change_blk_value_len
    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:1027,1
    - Dst: htx_get_prev_blk
      Src: /src/haproxy/src/htx.c:1031,1
    - Dst: htx_get_prev_blk
      Src: /src/haproxy/src/htx.c:1031,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1032,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1040,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - htx
    - data
    argTypes:
    - struct htx*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1023
    functionDepth: 6
    functionLinenumber: 1023
    functionLinenumberEnd: 1045
    functionName: htx_add_last_data
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 2
    functionsReached:
    - htx_get_prev_blk
    - htx_get_blk_type
    - htx_add_data_atonce
    - htx_get_blksz
    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:1055,1
    - Dst: htx_get_prev_blk
      Src: /src/haproxy/src/htx.c:1055,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1061,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - htx
    - blk
    - ref
    argTypes:
    - struct htx*
    - struct htx_blk**
    - struct htx_blk**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1068
    functionName: htx_move_blk_before
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_get_prev_blk
    - htx_get_blksz
    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:1080,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/htx.c:1080,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/htx.c:1081,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/htx.c:1086,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/htx.c:1087,1
    - Dst: htx_memcpy
      Src: /src/haproxy/src/htx.c:1091,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1091,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/htx.c:1091,1
    - Dst: htx_truncate
      Src: /src/haproxy/src/htx.c:1097,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct htx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1074
    functionDepth: 5
    functionLinenumber: 1074
    functionLinenumberEnd: 1099
    functionName: htx_append_msg
    functionSourceFile: /src/haproxy/src/htx.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_get_head_blk
    - htx_get_blk_type
    - htx_memcpy
    - htx_get_next_blk
    - htx_add_blk
    - htx_get_blk_ptr
    - htx_truncate
    linkageType: ''
    returnType: int
    signature: int htx_append_msg(struct htx *dst, const struct htx *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:
    - strdup
    - obj_type
    - HA_RWLOCK_WRLOCK
    - __objt_listener
    - __objt_server
    - HA_RWLOCK_WRUNLOCK
    - guid_name
    - ha_free
    - __objt_proxy
    - guid_is_valid_fmt
    - memprintf
    - cebuis_item_insert
    - ABORT_NOW
    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_free
    - HA_RWLOCK_WRUNLOCK
    - 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:
    - strlen
    - invalid_char
    - memprintf
    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:
    - obj_type
    - __objt_listener
    - __objt_server
    - __objt_proxy
    - proxy_cap_str
    - memprintf
    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:86,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:89,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:92,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:93,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:102,1
    - Dst: sysctlbyname
      Src: /src/haproxy/src/cpu_topo.c:105,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cpu_topo.c:106,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:109,1
    - Dst: cpuset_getaffinity
      Src: /src/haproxy/src/cpu_topo.c:111,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:115,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:121,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:124,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 125
    functionName: ha_cpuset_detect_online
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - cpuset_getaffinity
    - parse_cpu_set
    - ha_cpuset_zero
    - BUG_ON
    - ha_cpuset_count
    - sysctlbyname
    - read_line_to_trash
    - ha_cpuset_or
    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:143,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:147,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:153,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:154,1
    - Dst: ha_cpuset_detect_online
      Src: /src/haproxy/src/cpu_topo.c:164,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:166,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 177
    functionName: cpu_detect_usable
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - ha_cpuset_detect_bound
    - ha_cpuset_detect_online
    - 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:184,1
    - Dst: sched_getaffinity
      Src: /src/haproxy/src/cpu_topo.c:189,1
    - Dst: cpuset_getaffinity
      Src: /src/haproxy/src/cpu_topo.c:191,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - set
    argTypes:
    - struct hap_cpuset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 201
    functionName: ha_cpuset_detect_bound
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 3
    functionsReached:
    - ha_cpuset_zero
    - sched_getaffinity
    - ha_cpuset_count
    - cpuset_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:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 216
    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:237,1
    - Dst: printf
      Src: /src/haproxy/src/cpu_topo.c:249,1
    - Dst: printf
      Src: /src/haproxy/src/cpu_topo.c:252,1
    - Dst: printf
      Src: /src/haproxy/src/cpu_topo.c:258,1
    - Dst: printf
      Src: /src/haproxy/src/cpu_topo.c:262,1
    - Dst: putchar
      Src: /src/haproxy/src/cpu_topo.c:265,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 1
    argNames:
    - topo
    argTypes:
    - struct ha_cpu_topo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 267
    functionName: cpu_topo_debug
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - printf
    - putchar
    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:276,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cpu_topo.c:280,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cpu_topo.c:286,1
    - Dst: ha_cpuset_isequal
      Src: /src/haproxy/src/cpu_topo.c:300,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:311,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:313,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:322,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:324,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:332,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:333,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:333,1
    - Dst: print_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:335,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:337,1
    - Dst: snprintf
      Src: /src/haproxy/src/cpu_topo.c:339,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cpu_topo.c:341,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 2
    argNames:
    - topo
    - trash
    argTypes:
    - struct ha_cpu_topo*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 346
    functionName: cpu_topo_dump_summary
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 2
    functionsReached:
    - snprintf
    - chunk_appendf
    - ha_cpuset_count
    - print_cpu_set
    - ha_cpuset_isequal
    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: 364
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 364
    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: 447
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 447
    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: 536
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 536
    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: 592
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 592
    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:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - topo
    - entries
    argTypes:
    - struct ha_cpu_topo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 600
    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:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - topo
    - entries
    argTypes:
    - struct ha_cpu_topo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 606
    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:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - topo
    - entries
    argTypes:
    - struct ha_cpu_topo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 612
    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:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - topo
    - entries
    argTypes:
    - struct ha_cpu_topo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 618
    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: 628
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 628
    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: 636
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 636
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 644
    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:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clusters
    - entries
    argTypes:
    - struct ha_cpu_cluster*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 650
    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:655,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clusters
    - entries
    argTypes:
    - struct ha_cpu_cluster*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 656
    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:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - clusters
    - entries
    argTypes:
    - struct ha_cpu_cluster*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 662
    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:670,1
    - Dst: sysconf
      Src: /src/haproxy/src/cpu_topo.c:673,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 679
    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:699,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:701,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:707,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:711,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:720,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:722,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:728,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:732,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:741,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:743,1
    - Dst: ha_cpuset_clr
      Src: /src/haproxy/src/cpu_topo.c:749,1
    - Dst: ha_cpuset_ffs
      Src: /src/haproxy/src/cpu_topo.c:753,1
    - Dst: cpu_reorder_by_cluster
      Src: /src/haproxy/src/cpu_topo.c:769,1
    - Dst: cpu_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:826,1
    - Dst: cpu_reorder_by_locality
      Src: /src/haproxy/src/cpu_topo.c:845,1
    - Dst: cpu_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:910,1
    CyclomaticComplexity: 69
    EdgeCount: 69
    ICount: 130
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 685
    functionDepth: 2
    functionLinenumber: 685
    functionLinenumberEnd: 911
    functionName: cpu_fixup_topology
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - cpu_reorder_by_cluster
    - cpu_reorder_by_locality
    - ha_cpuset_zero
    - ha_cpuset_ffs
    - cpu_reorder_by_index
    - ha_cpuset_set
    - 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:927,1
    - Dst: cpu_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:982,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 983
    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:992,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:993,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:999,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1000,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1006,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1007,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1013,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1014,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 986
    functionDepth: 2
    functionLinenumber: 986
    functionLinenumberEnd: 1017
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1067,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1072,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1080,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1085,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1026
    functionDepth: 10
    functionLinenumber: 1026
    functionLinenumberEnd: 1091
    functionName: cpu_policy_first_usable_node
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_cpuset_set
    - ha_cpuset_assign
    - ha_cpuset_zero
    - ha_diag_warning
    linkageType: ''
    returnType: int
    signature: int cpu_policy_first_usable_node(int policy, int tmin, int tmax, int
      gmin, int gmax, char **err)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1118,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1128,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1136,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1147,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1158,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1189,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1201,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1203,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1101
    functionDepth: 10
    functionLinenumber: 1101
    functionLinenumberEnd: 1206
    functionName: cpu_policy_group_by_cluster
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_diag_warning
    - ha_cpuset_zero
    - ha_cpuset_isset
    - ha_cpuset_assign
    - ha_cpuset_set
    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_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1234,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1244,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1252,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1263,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:1274,1
    - Dst: ha_cpuset_assign
      Src: /src/haproxy/src/cpu_topo.c:1305,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1317,1
    - Dst: ha_diag_warning
      Src: /src/haproxy/src/cpu_topo.c:1319,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 60
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1217
    functionDepth: 10
    functionLinenumber: 1217
    functionLinenumberEnd: 1322
    functionName: cpu_policy_group_by_ccx
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - ha_diag_warning
    - ha_cpuset_zero
    - ha_cpuset_isset
    - ha_cpuset_assign
    - ha_cpuset_set
    linkageType: ''
    returnType: int
    signature: int cpu_policy_group_by_ccx(int policy, int tmin, int tmax, int gmin,
      int gmax, char **err)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpu_cluster_reorder_by_avg_capa
      Src: /src/haproxy/src/cpu_topo.c:1340,1
    - Dst: cpu_cluster_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:1361,1
    - Dst: cpu_policy_group_by_ccx
      Src: /src/haproxy/src/cpu_topo.c:1366,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1331
    functionDepth: 11
    functionLinenumber: 1331
    functionLinenumberEnd: 1367
    functionName: cpu_policy_performance
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - 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: 5
    BranchProfiles: []
    Callsites:
    - Dst: cpu_cluster_reorder_by_avg_capa
      Src: /src/haproxy/src/cpu_topo.c:1385,1
    - Dst: cpu_cluster_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:1405,1
    - Dst: cpu_policy_group_by_ccx
      Src: /src/haproxy/src/cpu_topo.c:1410,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1376
    functionDepth: 11
    functionLinenumber: 1376
    functionLinenumberEnd: 1411
    functionName: cpu_policy_efficiency
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - 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: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_cluster_reorder_by_capa
      Src: /src/haproxy/src/cpu_topo.c:1427,1
    - Dst: cpu_cluster_reorder_by_index
      Src: /src/haproxy/src/cpu_topo.c:1444,1
    - Dst: cpu_policy_group_by_cluster
      Src: /src/haproxy/src/cpu_topo.c:1447,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 6
    argNames:
    - policy
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1418
    functionDepth: 11
    functionLinenumber: 1418
    functionLinenumberEnd: 1448
    functionName: cpu_policy_resource
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - cpu_policy_group_by_cluster
    - cpu_cluster_reorder_by_index
    - cpu_cluster_reorder_by_capa
    linkageType: ''
    returnType: int
    signature: int cpu_policy_resource(int policy, int tmin, int tmax, int gmin, int
      gmax, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cpu_map_configured
      Src: /src/haproxy/src/cpu_topo.c:1457,1
    - Dst: fct
      Src: /src/haproxy/src/cpu_topo.c:1467,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 5
    argNames:
    - tmin
    - tmax
    - gmin
    - gmax
    - err
    argTypes:
    - int
    - int
    - int
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1453
    functionDepth: 3
    functionLinenumber: 1453
    functionLinenumberEnd: 1471
    functionName: cpu_apply_policy
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - fct
    - cpu_map_configured
    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:1497,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1512,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1526,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1532,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1535,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1537,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1541,1
    - Dst: atoi
      Src: /src/haproxy/src/cpu_topo.c:1543,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1553,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1557,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1559,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1569,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1588,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1591,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:1594,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1596,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:1617,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:1618,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1622,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1623,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1626,1
    - Dst: ha_cpuset_count
      Src: /src/haproxy/src/cpu_topo.c:1626,1
    - Dst: memcmp
      Src: /src/haproxy/src/cpu_topo.c:1627,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1629,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:1648,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:1649,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1653,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1654,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1657,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1659,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1667,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpu_topo.c:1669,1
    - Dst: is_file_present
      Src: /src/haproxy/src/cpu_topo.c:1674,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1681,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpu_topo.c:1683,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1705,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1708,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpu_topo.c:1711,1
    - Dst: is_dir_present
      Src: /src/haproxy/src/cpu_topo.c:1718,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1721,1
    - Dst: str2uic
      Src: /src/haproxy/src/cpu_topo.c:1723,1
    - Dst: opendir
      Src: /src/haproxy/src/cpu_topo.c:1730,1
    - Dst: readdir
      Src: /src/haproxy/src/cpu_topo.c:1732,1
    - Dst: strncmp
      Src: /src/haproxy/src/cpu_topo.c:1737,1
    - Dst: strtol
      Src: /src/haproxy/src/cpu_topo.c:1745,1
    - Dst: read_line_to_trash
      Src: /src/haproxy/src/cpu_topo.c:1750,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1753,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1755,1
    - Dst: closedir
      Src: /src/haproxy/src/cpu_topo.c:1761,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 147
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1764
      start: 1478
    functionDepth: 3
    functionLinenumber: 1478
    functionLinenumberEnd: 1764
    functionName: cpu_detect_topology
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - parse_cpu_set
    - opendir
    - is_file_present
    - strcmp
    - memcmp
    - strncmp
    - closedir
    - atoi
    - ha_cpuset_isset
    - str2uic
    - readdir
    - is_dir_present
    - ha_cpuset_count
    - read_line_to_trash
    - strtol
    linkageType: ''
    returnType: int
    signature: int cpu_detect_topology(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysctlbyname
      Src: /src/haproxy/src/cpu_topo.c:1775,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cpu_topo.c:1776,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1782,1
    - Dst: cpuset_getaffinity
      Src: /src/haproxy/src/cpu_topo.c:1784,1
    - Dst: ha_cpuset_isset
      Src: /src/haproxy/src/cpu_topo.c:1789,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1768
    functionDepth: 2
    functionLinenumber: 1768
    functionLinenumberEnd: 1794
    functionName: cpu_detect_topology
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached:
    - sysctlbyname
    - ha_cpuset_zero
    - BUG_ON
    - ha_cpuset_isset
    - cpuset_getaffinity
    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: 1801
      start: 1798
    functionDepth: 0
    functionLinenumber: 1798
    functionLinenumberEnd: 1801
    functionName: cpu_detect_topology
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cpu_detect_topology(void)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1817,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1822,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1822,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1824,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1829,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:1833,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:1835,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1838,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1838,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1840,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1845,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:1849,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:1851,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1854,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1854,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1856,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1861,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:1865,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:1867,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1870,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1870,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1872,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1877,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:1881,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:1883,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1886,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1886,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1888,1
    - Dst: parse_cpu_set
      Src: /src/haproxy/src/cpu_topo.c:1893,1
    - Dst: ha_cpuset_or
      Src: /src/haproxy/src/cpu_topo.c:1897,1
    - Dst: ha_cpuset_and
      Src: /src/haproxy/src/cpu_topo.c:1899,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1904,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1910,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1921,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1926,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: 1929
      start: 1808
    functionDepth: 5
    functionLinenumber: 1808
    functionLinenumberEnd: 1929
    functionName: cfg_parse_cpu_set
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - parse_cpu_set
    - ha_cpuset_and
    - strcmp
    - memprintf
    - 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: 3
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cpu_topo.c:1940,1
    - Dst: strcmp
      Src: /src/haproxy/src/cpu_topo.c:1944,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1950,1
    - Dst: memprintf
      Src: /src/haproxy/src/cpu_topo.c:1952,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: 1959
      start: 1934
    functionDepth: 7
    functionLinenumber: 1934
    functionLinenumberEnd: 1959
    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:1968,1
    - Dst: calloc
      Src: /src/haproxy/src/cpu_topo.c:1971,1
    - Dst: malloc
      Src: /src/haproxy/src/cpu_topo.c:1976,1
    - Dst: malloc
      Src: /src/haproxy/src/cpu_topo.c:1981,1
    - Dst: memset
      Src: /src/haproxy/src/cpu_topo.c:1990,1
    - Dst: memset
      Src: /src/haproxy/src/cpu_topo.c:1994,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:1999,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2000,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2001,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2002,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2003,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2004,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2005,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2006,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2007,1
    - Dst: ha_cpuset_zero
      Src: /src/haproxy/src/cpu_topo.c:2008,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2012,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2013,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2014,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2015,1
    - Dst: ha_cpuset_set
      Src: /src/haproxy/src/cpu_topo.c:2016,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2020
      start: 1964
    functionDepth: 2
    functionLinenumber: 1964
    functionLinenumberEnd: 2020
    functionName: cpu_topo_alloc
    functionSourceFile: /src/haproxy/src/cpu_topo.c
    functionUses: 0
    functionsReached:
    - memset
    - ha_cpuset_zero
    - malloc
    - ha_cpuset_set
    - cpu_topo_get_maxcpus
    - calloc
    linkageType: ''
    returnType: int
    signature: int cpu_topo_alloc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_free
      Src: /src/haproxy/src/cpu_topo.c:2024,1
    - Dst: ha_free
      Src: /src/haproxy/src/cpu_topo.c:2025,1
    - Dst: ha_free
      Src: /src/haproxy/src/cpu_topo.c:2026,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 2022
    functionDepth: 1
    functionLinenumber: 2022
    functionLinenumberEnd: 2027
    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: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    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: 59
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 59
    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: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    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:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: proxy_mode
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 2
    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: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    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: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    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:95,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:97,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:100,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:102,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:106,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:108,1
    - Dst: isprint
      Src: /src/haproxy/src/flt_trace.c:108,1
    - Dst: fprintf
      Src: /src/haproxy/src/flt_trace.c:109,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 112
    functionName: trace_hexdump
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - isprint
    - fprintf
    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:121,1
    - Dst: b_contig_data
      Src: /src/haproxy/src/flt_trace.c:122,1
    - Dst: memcpy
      Src: /src/haproxy/src/flt_trace.c:125,1
    - Dst: b_peek
      Src: /src/haproxy/src/flt_trace.c:125,1
    - Dst: memcpy
      Src: /src/haproxy/src/flt_trace.c:126,1
    - Dst: b_orig
      Src: /src/haproxy/src/flt_trace.c:126,1
    - Dst: trace_hexdump
      Src: /src/haproxy/src/flt_trace.c:127,1
    - Dst: ist2
      Src: /src/haproxy/src/flt_trace.c:127,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: 128
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 128
    functionName: trace_raw_hexdump
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - b_orig
    - b_contig_data
    - ist2
    - b_peek
    - trace_hexdump
    - memcpy
    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:135,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_trace.c:135,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:136,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/flt_trace.c:137,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/flt_trace.c:145,1
    - Dst: istadv
      Src: /src/haproxy/src/flt_trace.c:146,1
    - Dst: isttrim
      Src: /src/haproxy/src/flt_trace.c:149,1
    - Dst: trace_hexdump
      Src: /src/haproxy/src/flt_trace.c:152,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: 154
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 154
    functionName: trace_htx_hexdump
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - isttrim
    - htx_get_blksz
    - htx_get_blk_value
    - istadv
    - htx_get_blk_type
    - htx_get_next_blk
    - trace_hexdump
    - htx_get_first_blk
    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:160,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:164,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_trace.c:166,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:169,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:171,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/flt_trace.c:173,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/flt_trace.c:175,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: 178
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 178
    functionName: trace_get_htx_datalen
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - htx_get_blksz
    - htx_get_next_blk
    - htx_get_blk_type
    - htx_find_offset
    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:190,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:192,1
    - Dst: FLT_TRACE
      Src: /src/haproxy/src/flt_trace.c:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 5
    functionLinenumber: 184
    functionLinenumberEnd: 202
    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:211,1
    - Dst: free
      Src: /src/haproxy/src/flt_trace.c:212,1
    - Dst: free
      Src: /src/haproxy/src/flt_trace.c:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 216
    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: 224
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 224
    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:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 234
    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:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 244
    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:253,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:255,1
    - Dst: filter_type
      Src: /src/haproxy/src/flt_trace.c:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 259
    functionName: trace_attach
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_STRM_TRACE
    - filter_type
    - FLT_CONF
    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:266,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:268,1
    - Dst: filter_type
      Src: /src/haproxy/src/flt_trace.c:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: trace_detach
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_STRM_TRACE
    - filter_type
    - FLT_CONF
    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:276,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: trace_stream_start
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_STRM_TRACE
    - FLT_CONF
    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:289,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:291,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: 294
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: trace_stream_set_backend
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_STRM_TRACE
    - FLT_CONF
    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:300,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: trace_stream_stop
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_STRM_TRACE
    - FLT_CONF
    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:310,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: trace_check_timeouts
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - FLT_STRM_TRACE
    - FLT_CONF
    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:324,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:326,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:328,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:328,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:328,1
    - Dst: register_data_filter
      Src: /src/haproxy/src/flt_trace.c:331,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: 333
      start: 320
    functionDepth: 2
    functionLinenumber: 320
    functionLinenumberEnd: 333
    functionName: trace_chn_start_analyze
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - register_data_filter
    - channel_label
    - FLT_CONF
    - proxy_mode
    - stream_pos
    - FLT_STRM_TRACE
    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:340,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:402,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:405,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:405,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:405,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: 408
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 408
    functionName: trace_chn_analyze
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - channel_label
    - FLT_CONF
    - proxy_mode
    - stream_pos
    - FLT_STRM_TRACE
    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:415,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:417,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:419,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:419,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:419,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: 421
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 421
    functionName: trace_chn_end_analyze
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - channel_label
    - FLT_CONF
    - proxy_mode
    - stream_pos
    - FLT_STRM_TRACE
    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:430,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:431,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/flt_trace.c:432,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:435,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:437,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:437,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:437,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/src/flt_trace.c:438,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/src/flt_trace.c:438,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/src/flt_trace.c:439,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/src/flt_trace.c:439,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/src/flt_trace.c:440,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/src/flt_trace.c:440,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/flt_trace.c:442,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/flt_trace.c:442,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/flt_trace.c:443,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/flt_trace.c:444,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/flt_trace.c:452,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/flt_trace.c:453,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:454,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: 458
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 458
    functionName: trace_http_headers
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - htx_get_blk_value
    - HTX_SL_P2_LEN
    - htx_get_blk_name
    - http_get_stline
    - FLT_CONF
    - htx_get_blk_type
    - HTX_SL_P1_PTR
    - stream_pos
    - HTX_SL_P3_PTR
    - htx_get_next
    - HTX_SL_P2_PTR
    - htx_get_blk
    - htxbuf
    - htx_get_first
    - HTX_SL_P1_LEN
    - channel_label
    - proxy_mode
    - HTX_SL_P3_LEN
    - FLT_STRM_TRACE
    linkageType: ''
    returnType: int
    signature: "int trace_http_headers(struct stream *s, struct filter *filter,\n\t\t
      \  struct http_msg *msg)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:464,1
    - Dst: trace_get_htx_datalen
      Src: /src/haproxy/src/flt_trace.c:468,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:468,1
    - Dst: ha_random
      Src: /src/haproxy/src/flt_trace.c:471,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:477,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:480,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:480,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:480,1
    - Dst: trace_htx_hexdump
      Src: /src/haproxy/src/flt_trace.c:484,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:484,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_trace.c:487,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    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: 489
      start: 460
    functionDepth: 3
    functionLinenumber: 460
    functionLinenumberEnd: 489
    functionName: trace_http_payload
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - channel_label
    - trace_get_htx_datalen
    - FLT_CONF
    - trace_htx_hexdump
    - proxy_mode
    - task_wakeup
    - stream_pos
    - FLT_STRM_TRACE
    - ha_random
    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:495,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:497,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:499,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:499,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:499,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: 501
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 501
    functionName: trace_http_end
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - channel_label
    - FLT_CONF
    - proxy_mode
    - stream_pos
    - FLT_STRM_TRACE
    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:507,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:509,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:511,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:511,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:511,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: 512
      start: 503
    functionDepth: 2
    functionLinenumber: 503
    functionLinenumberEnd: 512
    functionName: trace_http_reset
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - channel_label
    - FLT_CONF
    - proxy_mode
    - stream_pos
    - FLT_STRM_TRACE
    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:518,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:520,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:521,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:521,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: 522
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 522
    functionName: trace_http_reply
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - proxy_mode
    - FLT_STRM_TRACE
    - stream_pos
    - FLT_CONF
    linkageType: ''
    returnType: void
    signature: "void trace_http_reply(struct stream *s, struct filter *filter, short
      status,\n\t\t const struct buffer *msg)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/flt_trace.c:531,1
    - Dst: trace_get_htx_datalen
      Src: /src/haproxy/src/flt_trace.c:536,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:536,1
    - Dst: ha_random
      Src: /src/haproxy/src/flt_trace.c:539,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:545,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:548,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:548,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:548,1
    - Dst: trace_htx_hexdump
      Src: /src/haproxy/src/flt_trace.c:552,1
    - Dst: htxbuf
      Src: /src/haproxy/src/flt_trace.c:552,1
    - Dst: ha_random
      Src: /src/haproxy/src/flt_trace.c:557,1
    - Dst: FLT_STRM_TRACE
      Src: /src/haproxy/src/flt_trace.c:559,1
    - Dst: channel_label
      Src: /src/haproxy/src/flt_trace.c:562,1
    - Dst: proxy_mode
      Src: /src/haproxy/src/flt_trace.c:562,1
    - Dst: stream_pos
      Src: /src/haproxy/src/flt_trace.c:562,1
    - Dst: trace_raw_hexdump
      Src: /src/haproxy/src/flt_trace.c:566,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/flt_trace.c:570,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 5
    argNames:
    - s
    - filter
    - chn
    - offset
    - len
    argTypes:
    - struct stream*
    - struct filter*
    - struct channel*
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 572
    functionName: trace_tcp_payload
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - channel_label
    - trace_get_htx_datalen
    - FLT_CONF
    - trace_htx_hexdump
    - proxy_mode
    - task_wakeup
    - stream_pos
    - FLT_STRM_TRACE
    - trace_raw_hexdump
    - ha_random
    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: 12
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/flt_trace.c:617,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:619,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:624,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:628,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:630,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:635,1
    - Dst: strdup
      Src: /src/haproxy/src/flt_trace.c:639,1
    - Dst: memprintf
      Src: /src/haproxy/src/flt_trace.c:641,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:646,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:648,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:650,1
    - Dst: strcmp
      Src: /src/haproxy/src/flt_trace.c:652,1
    - Dst: free
      Src: /src/haproxy/src/flt_trace.c:668,1
    - Dst: free
      Src: /src/haproxy/src/flt_trace.c:669,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 53
    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: 671
      start: 610
    functionDepth: 5
    functionLinenumber: 610
    functionLinenumberEnd: 671
    functionName: parse_trace_flt
    functionSourceFile: /src/haproxy/src/flt_trace.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcmp
    - free
    - memprintf
    - calloc
    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:
    - field_origin
    - field_scope
    - chunk_appendf
    - field_nature
    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:
    - snprintf
    - flt_trim
    - chunk_appendf
    - field_str
    - field_format
    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_emit_json_field_tags
    - chunk_appendf
    - chunk_strcat
    - stats_print_rslv_field_json
    - stats_print_proxy_field_json
    - stats_emit_json_data_field
    - chunk_reset
    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:
    - stats_emit_json_field_tags
    - chunk_appendf
    - chunk_reset
    - chunk_strcat
    - stats_emit_json_data_field
    - field_format
    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_appendf
    - chunk_strcat
    - 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:63,1
    - Dst: stat
      Src: /src/haproxy/src/cfgparse-ssl.c:67,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:68,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/cfgparse-ssl.c:72,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:73,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:79,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:82,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:85,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:86,1
    - Dst: ssl_free_global_issuers
      Src: /src/haproxy/src/cfgparse-ssl.c:87,1
    - Dst: scandir
      Src: /src/haproxy/src/cfgparse-ssl.c:89,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:91,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-ssl.c:92,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:100,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:101,1
    - Dst: stat
      Src: /src/haproxy/src/cfgparse-ssl.c:102,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-ssl.c:103,1
    - Dst: strerror
      Src: /src/haproxy/src/cfgparse-ssl.c:103,1
    - Dst: S_ISREG
      Src: /src/haproxy/src/cfgparse-ssl.c:106,1
    - Dst: BIO_new
      Src: /src/haproxy/src/cfgparse-ssl.c:109,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/cfgparse-ssl.c:109,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/cfgparse-ssl.c:112,1
    - Dst: ssl_load_global_issuer_from_BIO
      Src: /src/haproxy/src/cfgparse-ssl.c:114,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-ssl.c:116,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:117,1
    - Dst: BIO_free
      Src: /src/haproxy/src/cfgparse-ssl.c:121,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:123,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: 126
      start: 52
    functionDepth: 9
    functionLinenumber: 52
    functionLinenumberEnd: 126
    functionName: ssl_load_global_issuers_from_path
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - BIO_new
    - strerror
    - S_ISREG
    - ha_warning
    - ssl_free_global_issuers
    - strcmp
    - snprintf
    - stat
    - ha_free
    - strlen
    - BIO_free
    - strdup
    - too_many_args
    - memprintf
    - ssl_load_global_issuer_from_BIO
    - BIO_read_filename
    - scandir
    - free
    - S_ISDIR
    - BIO_s_file
    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:140,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: 143
      start: 131
    functionDepth: 5
    functionLinenumber: 131
    functionLinenumberEnd: 143
    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:157,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:163,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:168,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:169,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:174,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:177,1
    - Dst: ssl_init_single_engine
      Src: /src/haproxy/src/cfgparse-ssl.c:180,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    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: 186
      start: 149
    functionDepth: 5
    functionLinenumber: 149
    functionLinenumberEnd: 186
    functionName: ssl_parse_global_ssl_engine
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - strcmp
    - ssl_init_single_engine
    - free
    - memprintf
    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:200,1
    - Dst: EVP_set_default_properties
      Src: /src/haproxy/src/cfgparse-ssl.c:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    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: 208
      start: 193
    functionDepth: 5
    functionLinenumber: 193
    functionLinenumberEnd: 208
    functionName: ssl_parse_global_ssl_propquery
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - EVP_set_default_properties
    - memprintf
    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:220,1
    - Dst: ssl_init_provider
      Src: /src/haproxy/src/cfgparse-ssl.c:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    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: 228
      start: 213
    functionDepth: 5
    functionLinenumber: 213
    functionLinenumberEnd: 228
    functionName: ssl_parse_global_ssl_provider
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_init_provider
    - memprintf
    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:238,1
    - Dst: OSSL_PROVIDER_set_default_search_path
      Src: /src/haproxy/src/cfgparse-ssl.c:242,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: 245
      start: 233
    functionDepth: 5
    functionLinenumber: 233
    functionLinenumberEnd: 245
    functionName: ssl_parse_global_ssl_provider_path
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - OSSL_PROVIDER_set_default_search_path
    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:259,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:263,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:267,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:268,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: 270
      start: 251
    functionDepth: 7
    functionLinenumber: 251
    functionLinenumberEnd: 270
    functionName: ssl_parse_global_ciphers
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - too_many_args
    - memprintf
    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:284,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:288,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:292,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:293,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:296,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: 300
      start: 275
    functionDepth: 7
    functionLinenumber: 275
    functionLinenumberEnd: 300
    functionName: ssl_parse_global_ciphersuites
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - too_many_args
    - memprintf
    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: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:314,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:318,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:322,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:323,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: 325
      start: 307
    functionDepth: 7
    functionLinenumber: 307
    functionLinenumberEnd: 325
    functionName: ssl_parse_global_curves
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - too_many_args
    - memprintf
    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: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:341,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:345,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:349,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:350,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: 352
      start: 333
    functionDepth: 7
    functionLinenumber: 333
    functionLinenumberEnd: 352
    functionName: ssl_parse_global_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - too_many_args
    - memprintf
    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: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:368,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:372,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:376,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:377,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: 379
      start: 360
    functionDepth: 7
    functionLinenumber: 360
    functionLinenumberEnd: 379
    functionName: ssl_parse_global_client_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - too_many_args
    - memprintf
    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:391,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:393,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:395,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:397,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:399,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:401,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:403,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cfgparse-ssl.c:405,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:409,1
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:413,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:417,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-ssl.c:421,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:423,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: 427
      start: 385
    functionDepth: 9
    functionLinenumber: 385
    functionLinenumberEnd: 427
    functionName: ssl_parse_global_int
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - too_many_args
    - strcmp
    - atoi
    - memprintf
    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:435,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:440,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-ssl.c:444,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:446,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: 450
      start: 429
    functionDepth: 10
    functionLinenumber: 429
    functionLinenumberEnd: 450
    functionName: ssl_parse_global_capture_buffer
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - create_pool
    - ssl_parse_global_int
    - memprintf
    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:459,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:462,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:464,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:467,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-ssl.c:474,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:476,1
    - Dst: create_pool
      Src: /src/haproxy/src/cfgparse-ssl.c:480,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:482,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: 487
      start: 454
    functionDepth: 7
    functionLinenumber: 454
    functionLinenumberEnd: 487
    functionName: ssl_parse_global_keylog
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - create_pool
    - too_many_args
    - memprintf
    - strcmp
    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:493,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: 495
      start: 489
    functionDepth: 5
    functionLinenumber: 489
    functionLinenumberEnd: 495
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: too_many_args
      Src: /src/haproxy/src/cfgparse-ssl.c:505,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: 510
      start: 501
    functionDepth: 7
    functionLinenumber: 501
    functionLinenumberEnd: 510
    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:521,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:525,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/cfgparse-ssl.c:529,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:531,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:536,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:541,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: 545
      start: 515
    functionDepth: 7
    functionLinenumber: 515
    functionLinenumberEnd: 545
    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:555,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:559,1
    - Dst: ssl_sock_load_global_dh_param_from_file
      Src: /src/haproxy/src/cfgparse-ssl.c:563,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:564,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: 568
      start: 551
    functionDepth: 7
    functionLinenumber: 551
    functionLinenumberEnd: 568
    functionName: ssl_parse_global_dh_param_file
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_sock_load_global_dh_param_from_file
    - too_many_args
    - memprintf
    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:581,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:585,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-ssl.c:589,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:591,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:596,1
    - Dst: OpenSSL_version
      Src: /src/haproxy/src/cfgparse-ssl.c:596,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: 600
      start: 575
    functionDepth: 7
    functionLinenumber: 575
    functionLinenumberEnd: 600
    functionName: ssl_parse_global_default_dh
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - OpenSSL_version
    - too_many_args
    - memprintf
    - atoi
    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:619,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:622,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:625,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:628,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:631,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:634,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:641,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:660,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:664,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: 666
      start: 607
    functionDepth: 5
    functionLinenumber: 607
    functionLinenumberEnd: 666
    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: 676
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 676
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:685,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:690,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:692,1
    - Dst: ssl_store_load_locations_file
      Src: /src/haproxy/src/cfgparse-ssl.c:694,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:695,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: 699
      start: 682
    functionDepth: 5
    functionLinenumber: 682
    functionLinenumberEnd: 699
    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:704,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: 705
      start: 702
    functionDepth: 6
    functionLinenumber: 702
    functionLinenumberEnd: 705
    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:708,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: 709
      start: 706
    functionDepth: 7
    functionLinenumber: 706
    functionLinenumberEnd: 709
    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:714,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: 715
      start: 712
    functionDepth: 6
    functionLinenumber: 712
    functionLinenumberEnd: 715
    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:718,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: 719
      start: 716
    functionDepth: 7
    functionLinenumber: 716
    functionLinenumberEnd: 719
    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:725,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:730,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:732,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: 735
      start: 722
    functionDepth: 5
    functionLinenumber: 722
    functionLinenumberEnd: 735
    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:741,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:744,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: 746
      start: 738
    functionDepth: 5
    functionLinenumber: 738
    functionLinenumberEnd: 746
    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:752,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:756,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:757,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: 759
      start: 749
    functionDepth: 5
    functionLinenumber: 749
    functionLinenumberEnd: 759
    functionName: ssl_bind_parse_ciphers
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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:762,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: 763
      start: 760
    functionDepth: 6
    functionLinenumber: 760
    functionLinenumberEnd: 763
    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:770,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:774,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:775,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:778,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: 781
      start: 766
    functionDepth: 5
    functionLinenumber: 766
    functionLinenumberEnd: 781
    functionName: ssl_bind_parse_ciphersuites
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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:785,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: 786
      start: 783
    functionDepth: 6
    functionLinenumber: 783
    functionLinenumberEnd: 786
    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:795,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:800,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:800,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:801,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:802,1
    - Dst: ssl_sock_load_cert
      Src: /src/haproxy/src/cfgparse-ssl.c:805,1
    - Dst: ssl_sock_load_cert
      Src: /src/haproxy/src/cfgparse-ssl.c:808,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: 809
      start: 789
    functionDepth: 11
    functionLinenumber: 789
    functionLinenumberEnd: 809
    functionName: bind_parse_crt
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - snprintf
    - strlen
    - ssl_sock_load_cert
    - memprintf
    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:817,1
    - Dst: ssl_sock_load_cert_list_file
      Src: /src/haproxy/src/cfgparse-ssl.c:821,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:823,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: 826
      start: 812
    functionDepth: 10
    functionLinenumber: 812
    functionLinenumberEnd: 826
    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:832,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:836,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:841,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:843,1
    - Dst: ssl_store_load_locations_file
      Src: /src/haproxy/src/cfgparse-ssl.c:845,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:846,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: 851
      start: 829
    functionDepth: 5
    functionLinenumber: 829
    functionLinenumberEnd: 851
    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:854,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: 855
      start: 852
    functionDepth: 6
    functionLinenumber: 852
    functionLinenumberEnd: 855
    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:862,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:865,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:868,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: 871
      start: 858
    functionDepth: 5
    functionLinenumber: 858
    functionLinenumberEnd: 871
    functionName: ssl_bind_parse_curves
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    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:874,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: 875
      start: 872
    functionDepth: 6
    functionLinenumber: 872
    functionLinenumberEnd: 875
    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:881,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:886,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-ssl.c:889,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-ssl.c:891,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:894,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cfgparse-ssl.c:898,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: 901
      start: 878
    functionDepth: 5
    functionLinenumber: 878
    functionLinenumberEnd: 901
    functionName: ssl_bind_parse_ktls
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - memprintf
    - 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:905,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: 906
      start: 903
    functionDepth: 6
    functionLinenumber: 903
    functionLinenumberEnd: 906
    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:913,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:916,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:919,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: 922
      start: 909
    functionDepth: 5
    functionLinenumber: 909
    functionLinenumberEnd: 922
    functionName: ssl_bind_parse_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    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:925,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: 926
      start: 923
    functionDepth: 6
    functionLinenumber: 923
    functionLinenumberEnd: 926
    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:933,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:936,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:939,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: 942
      start: 929
    functionDepth: 5
    functionLinenumber: 929
    functionLinenumberEnd: 942
    functionName: ssl_bind_parse_client_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    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:945,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: 946
      start: 943
    functionDepth: 6
    functionLinenumber: 943
    functionLinenumberEnd: 946
    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:953,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:956,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:960,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:964,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: 968
      start: 950
    functionDepth: 5
    functionLinenumber: 950
    functionLinenumberEnd: 968
    functionName: ssl_bind_parse_ecdhe
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    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: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_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:985,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:989,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:992,1
    - Dst: cert_ignerr_bitfield_set_all
      Src: /src/haproxy/src/cfgparse-ssl.c:993,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:999,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1001,1
    - Dst: strtok_r
      Src: /src/haproxy/src/cfgparse-ssl.c:1006,1
    - Dst: isdigit
      Src: /src/haproxy/src/cfgparse-ssl.c:1008,1
    - Dst: atoi
      Src: /src/haproxy/src/cfgparse-ssl.c:1009,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1011,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1013,1
    - Dst: x509_v_err_str_to_int
      Src: /src/haproxy/src/cfgparse-ssl.c:1017,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1019,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1021,1
    - Dst: cert_ignerr_bitfield_set
      Src: /src/haproxy/src/cfgparse-ssl.c:1025,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1028,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: 1030
      start: 975
    functionDepth: 5
    functionLinenumber: 975
    functionLinenumberEnd: 1030
    functionName: bind_parse_ignore_err
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - cert_ignerr_bitfield_set
    - strcmp
    - atoi
    - x509_v_err_str_to_int
    - strtok_r
    - isdigit
    - free
    - cert_ignerr_bitfield_set_all
    - memprintf
    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:1037,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1041,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1043,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1045,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1047,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1049,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1053,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1055,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1061,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: 1063
      start: 1033
    functionDepth: 5
    functionLinenumber: 1033
    functionLinenumberEnd: 1063
    functionName: parse_tls_method_options
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - memprintf
    - strncmp
    - strcmp
    - strchr
    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:1067,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: 1068
      start: 1065
    functionDepth: 6
    functionLinenumber: 1065
    functionLinenumberEnd: 1068
    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:1072,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: 1073
      start: 1070
    functionDepth: 6
    functionLinenumber: 1070
    functionLinenumberEnd: 1073
    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:1081,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1085,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1088,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1091,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1093,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1096,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: 1100
      start: 1076
    functionDepth: 5
    functionLinenumber: 1076
    functionLinenumberEnd: 1100
    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:1107,1
    - Dst: parse_tls_method_minmax
      Src: /src/haproxy/src/cfgparse-ssl.c:1109,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: 1117
      start: 1102
    functionDepth: 9
    functionLinenumber: 1102
    functionLinenumberEnd: 1117
    functionName: ssl_bind_parse_tls_method_minmax
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - parse_tls_method_minmax
    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:1120,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: 1121
      start: 1118
    functionDepth: 6
    functionLinenumber: 1118
    functionLinenumberEnd: 1121
    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:1125,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: 1126
      start: 1123
    functionDepth: 6
    functionLinenumber: 1123
    functionLinenumberEnd: 1126
    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:1131,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: 1136
      start: 1129
    functionDepth: 0
    functionLinenumber: 1129
    functionLinenumberEnd: 1136
    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: 1143
      start: 1139
    functionDepth: 0
    functionLinenumber: 1139
    functionLinenumberEnd: 1143
    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: 1149
      start: 1145
    functionDepth: 0
    functionLinenumber: 1145
    functionLinenumberEnd: 1149
    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:1158,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1162,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1168,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1169,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1171,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-ssl.c:1175,1
    - Dst: memchr
      Src: /src/haproxy/src/cfgparse-ssl.c:1181,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1183,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1187,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1201,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: 1204
      start: 1152
    functionDepth: 5
    functionLinenumber: 1152
    functionLinenumberEnd: 1204
    functionName: ssl_bind_parse_npn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strlen
    - free
    - memprintf
    - memchr
    - calloc
    - memcpy
    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:1208,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: 1209
      start: 1206
    functionDepth: 6
    functionLinenumber: 1206
    functionLinenumberEnd: 1209
    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:1222,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1230,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1231,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1233,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-ssl.c:1236,1
    - Dst: memchr
      Src: /src/haproxy/src/cfgparse-ssl.c:1242,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1244,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1248,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1268,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: 1271
      start: 1213
    functionDepth: 5
    functionLinenumber: 1213
    functionLinenumberEnd: 1271
    functionName: ssl_sock_parse_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 3
    functionsReached:
    - strlen
    - free
    - memchr
    - memprintf
    - calloc
    - memcpy
    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:1279,1
    - Dst: ssl_sock_parse_alpn
      Src: /src/haproxy/src/cfgparse-ssl.c:1281,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1283,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1286,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: 1289
      start: 1274
    functionDepth: 6
    functionLinenumber: 1274
    functionLinenumberEnd: 1289
    functionName: ssl_bind_parse_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - free
    - memprintf
    - ssl_sock_parse_alpn
    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:1293,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: 1294
      start: 1291
    functionDepth: 7
    functionLinenumber: 1291
    functionLinenumberEnd: 1294
    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:1302,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1305,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1309,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1313,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: 1323
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1323
    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: 1330
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1330
    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:1338,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: 1342
      start: 1333
    functionDepth: 5
    functionLinenumber: 1333
    functionLinenumberEnd: 1342
    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:1347,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: 1352
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1352
    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:1364,1
    - Dst: tlskeys_ref_lookup
      Src: /src/haproxy/src/cfgparse-ssl.c:1368,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1375,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1377,1
    - Dst: malloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1381,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1383,1
    - Dst: fopen
      Src: /src/haproxy/src/cfgparse-ssl.c:1387,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1388,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1392,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1394,1
    - Dst: fgets
      Src: /src/haproxy/src/cfgparse-ssl.c:1399,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1400,1
    - Dst: base64dec
      Src: /src/haproxy/src/cfgparse-ssl.c:1410,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1412,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1424,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1431,1
    - Dst: fclose
      Src: /src/haproxy/src/cfgparse-ssl.c:1435,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/cfgparse-ssl.c:1442,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/cfgparse-ssl.c:1445,1
    - Dst: fclose
      Src: /src/haproxy/src/cfgparse-ssl.c:1451,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1453,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1454,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1455,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1460,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: 1463
      start: 1355
    functionDepth: 5
    functionLinenumber: 1355
    functionLinenumberEnd: 1463
    functionName: bind_parse_tls_ticket_keys
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - strdup
    - LIST_INSERT
    - fclose
    - fgets
    - strlen
    - base64dec
    - malloc
    - free
    - memprintf
    - tlskeys_ref_lookup
    - fopen
    - calloc
    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:1469,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1473,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1475,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1477,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1480,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: 1486
      start: 1466
    functionDepth: 5
    functionLinenumber: 1466
    functionLinenumberEnd: 1486
    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:1489,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: 1490
      start: 1487
    functionDepth: 6
    functionLinenumber: 1487
    functionLinenumberEnd: 1490
    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:1495,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1497,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1500,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: 1504
      start: 1493
    functionDepth: 5
    functionLinenumber: 1493
    functionLinenumberEnd: 1504
    functionName: ssl_bind_parse_no_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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:1509,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: 1510
      start: 1507
    functionDepth: 6
    functionLinenumber: 1507
    functionLinenumberEnd: 1510
    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: 1518
      start: 1514
    functionDepth: 0
    functionLinenumber: 1514
    functionLinenumberEnd: 1518
    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:1522,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: 1523
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1523
    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:1534,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1538,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1544,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:1545,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1547,1
    - Dst: memcpy
      Src: /src/haproxy/src/cfgparse-ssl.c:1551,1
    - Dst: memchr
      Src: /src/haproxy/src/cfgparse-ssl.c:1558,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:1561,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1565,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1579,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: 1582
      start: 1528
    functionDepth: 5
    functionLinenumber: 1528
    functionLinenumberEnd: 1582
    functionName: srv_parse_npn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strlen
    - free
    - memprintf
    - memchr
    - calloc
    - memcpy
    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:1587,1
    - Dst: ssl_sock_parse_alpn
      Src: /src/haproxy/src/cfgparse-ssl.c:1588,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: 1589
      start: 1585
    functionDepth: 6
    functionLinenumber: 1585
    functionLinenumberEnd: 1589
    functionName: parse_alpn
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 6
    functionsReached:
    - free
    - ssl_sock_parse_alpn
    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:1596,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1600,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1603,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: 1606
      start: 1593
    functionDepth: 7
    functionLinenumber: 1593
    functionLinenumberEnd: 1606
    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:1612,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1616,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1619,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: 1622
      start: 1609
    functionDepth: 7
    functionLinenumber: 1609
    functionLinenumberEnd: 1622
    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:1630,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1635,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1637,1
    - Dst: ssl_store_load_locations_file
      Src: /src/haproxy/src/cfgparse-ssl.c:1639,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1640,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: 1645
      start: 1625
    functionDepth: 5
    functionLinenumber: 1625
    functionLinenumberEnd: 1645
    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:1651,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1655,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1656,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1658,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: 1663
      start: 1648
    functionDepth: 5
    functionLinenumber: 1648
    functionLinenumberEnd: 1663
    functionName: srv_parse_check_sni
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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:1671,1
    - Dst: strncmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1676,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: 1682
      start: 1666
    functionDepth: 5
    functionLinenumber: 1666
    functionLinenumberEnd: 1682
    functionName: srv_parse_renegotiate
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strncmp
    - memprintf
    linkageType: ''
    returnType: int
    signature: "int srv_parse_renegotiate(char **args, int *cur_arg, struct proxy
      *px,\n                                 struct server *newsrv, char **err)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1688,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1691,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1707,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1715,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1723,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 32
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1733
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1733
    functionName: ssl_sock_init_srv
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - 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:1739,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1740,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: 1745
      start: 1736
    functionDepth: 5
    functionLinenumber: 1736
    functionLinenumberEnd: 1745
    functionName: srv_parse_check_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_sock_init_srv
    - memprintf
    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:1751,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1755,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1756,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1759,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: 1764
      start: 1748
    functionDepth: 5
    functionLinenumber: 1748
    functionLinenumberEnd: 1764
    functionName: srv_parse_ciphers
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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:1771,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:1775,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1776,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1779,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1785,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: 1789
      start: 1767
    functionDepth: 5
    functionLinenumber: 1767
    functionLinenumberEnd: 1789
    functionName: srv_parse_ciphersuites
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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:1795,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1802,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1805,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1807,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: 1812
      start: 1792
    functionDepth: 5
    functionLinenumber: 1792
    functionLinenumberEnd: 1812
    functionName: srv_parse_client_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    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:1819,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1825,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1830,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1832,1
    - Dst: ssl_store_load_locations_file
      Src: /src/haproxy/src/cfgparse-ssl.c:1834,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1835,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: 1840
      start: 1816
    functionDepth: 5
    functionLinenumber: 1816
    functionLinenumberEnd: 1840
    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:1846,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1853,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:1856,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1858,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: 1863
      start: 1843
    functionDepth: 5
    functionLinenumber: 1843
    functionLinenumberEnd: 1863
    functionName: srv_parse_curves
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    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:1870,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1875,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1877,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: 1880
      start: 1866
    functionDepth: 5
    functionLinenumber: 1866
    functionLinenumberEnd: 1880
    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: 1887
      start: 1883
    functionDepth: 0
    functionLinenumber: 1883
    functionLinenumberEnd: 1887
    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: 1894
      start: 1890
    functionDepth: 0
    functionLinenumber: 1890
    functionLinenumberEnd: 1894
    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:1900,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: 1903
      start: 1897
    functionDepth: 1
    functionLinenumber: 1897
    functionLinenumberEnd: 1903
    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: 1911
      start: 1906
    functionDepth: 0
    functionLinenumber: 1906
    functionLinenumberEnd: 1911
    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: 1920
      start: 1914
    functionDepth: 0
    functionLinenumber: 1914
    functionLinenumberEnd: 1920
    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:1927,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1928,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:1933,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: 1937
      start: 1923
    functionDepth: 5
    functionLinenumber: 1923
    functionLinenumberEnd: 1937
    functionName: srv_parse_no_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_sock_init_srv
    - ha_free
    - memprintf
    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:1943,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1949,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1953,1
    - Dst: strcasecmp
      Src: /src/haproxy/src/cfgparse-ssl.c:1955,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:1958,1
    - Dst: mark_tainted
      Src: /src/haproxy/src/cfgparse-ssl.c:1962,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: 1964
      start: 1940
    functionDepth: 5
    functionLinenumber: 1940
    functionLinenumberEnd: 1964
    functionName: srv_parse_ktls
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strcasecmp
    - memprintf
    - 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: 1971
      start: 1967
    functionDepth: 0
    functionLinenumber: 1967
    functionLinenumberEnd: 1971
    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: 1978
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1978
    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: 1985
      start: 1981
    functionDepth: 0
    functionLinenumber: 1981
    functionLinenumberEnd: 1985
    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: 1992
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1992
    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: 2001
      start: 1995
    functionDepth: 0
    functionLinenumber: 1995
    functionLinenumberEnd: 2001
    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:2007,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2014,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2017,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2019,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: 2024
      start: 2004
    functionDepth: 5
    functionLinenumber: 2004
    functionLinenumberEnd: 2024
    functionName: srv_parse_sigalgs
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    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:2030,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2037,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2041,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2042,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2044,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: 2050
      start: 2027
    functionDepth: 5
    functionLinenumber: 2027
    functionLinenumberEnd: 2050
    functionName: srv_parse_sni
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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: 2057
      start: 2053
    functionDepth: 0
    functionLinenumber: 2053
    functionLinenumberEnd: 2057
    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: 2064
      start: 2060
    functionDepth: 0
    functionLinenumber: 2060
    functionLinenumberEnd: 2064
    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:2070,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2071,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: 2076
      start: 2067
    functionDepth: 5
    functionLinenumber: 2067
    functionLinenumberEnd: 2076
    functionName: srv_parse_ssl
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - ssl_sock_init_srv
    - memprintf
    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: 2083
      start: 2079
    functionDepth: 0
    functionLinenumber: 2079
    functionLinenumberEnd: 2083
    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: 2090
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2090
    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:2096,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2100,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2102,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2105,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: 2111
      start: 2093
    functionDepth: 5
    functionLinenumber: 2093
    functionLinenumberEnd: 2111
    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:2117,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2121,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2122,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2125,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: 2130
      start: 2114
    functionDepth: 5
    functionLinenumber: 2114
    functionLinenumberEnd: 2130
    functionName: srv_parse_verifyhost
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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:2139,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2143,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2145,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2147,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2149,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2151,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2153,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2153,1
    - Dst: parse_tls_method_minmax
      Src: /src/haproxy/src/cfgparse-ssl.c:2154,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2157,1
    - Dst: parse_tls_method_options
      Src: /src/haproxy/src/cfgparse-ssl.c:2161,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2162,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: 2168
      start: 2133
    functionDepth: 6
    functionLinenumber: 2133
    functionLinenumberEnd: 2168
    functionName: ssl_parse_default_bind_options
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - parse_tls_method_options
    - parse_tls_method_minmax
    - memprintf
    - strcmp
    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:2177,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2181,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2183,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2183,1
    - Dst: parse_tls_method_minmax
      Src: /src/haproxy/src/cfgparse-ssl.c:2184,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2187,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2191,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2191,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2193,1
    - Dst: parse_tls_method_options
      Src: /src/haproxy/src/cfgparse-ssl.c:2200,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2201,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: 2207
      start: 2171
    functionDepth: 6
    functionLinenumber: 2171
    functionLinenumberEnd: 2207
    functionName: ssl_parse_default_server_options
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - parse_tls_method_options
    - parse_tls_method_minmax
    - memprintf
    - strcmp
    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:2227,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2231,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2236,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2239,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: 2241
      start: 2212
    functionDepth: 7
    functionLinenumber: 2212
    functionLinenumberEnd: 2241
    functionName: ssl_parse_global_path_base
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - too_many_args
    - memprintf
    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:2249,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-ssl.c:2255,1
    - Dst: strtol
      Src: /src/haproxy/src/cfgparse-ssl.c:2259,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-ssl.c:2261,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-ssl.c:2267,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: 2274
      start: 2244
    functionDepth: 9
    functionLinenumber: 2244
    functionLinenumberEnd: 2274
    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:2285,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: 2288
      start: 2277
    functionDepth: 5
    functionLinenumber: 2277
    functionLinenumberEnd: 2288
    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:2314,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2316,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2319,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2321,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:2327,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2329,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2337,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2342,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:2346,1
    - Dst: strlen
      Src: /src/haproxy/src/cfgparse-ssl.c:2346,1
    - Dst: snprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2347,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2348,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2355,1
    - Dst: strdup
      Src: /src/haproxy/src/cfgparse-ssl.c:2356,1
    - Dst: strcmp
      Src: /src/haproxy/src/cfgparse-ssl.c:2364,1
    - Dst: calloc
      Src: /src/haproxy/src/cfgparse-ssl.c:2367,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2369,1
    - Dst: parse
      Src: /src/haproxy/src/cfgparse-ssl.c:2373,1
    - Dst: ckch_conf_parse
      Src: /src/haproxy/src/cfgparse-ssl.c:2383,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2395,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/cfgparse-ssl.c:2402,1
    - Dst: ckch_conf_clean
      Src: /src/haproxy/src/cfgparse-ssl.c:2406,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2407,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/cfgparse-ssl.c:2408,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2409,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2410,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2411,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: 2413
      start: 2303
    functionDepth: 5
    functionLinenumber: 2303
    functionLinenumberEnd: 2413
    functionName: proxy_parse_ssl_f_use
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - strdup
    - LIST_INSERT
    - strcmp
    - snprintf
    - ha_free
    - ckch_conf_clean
    - strlen
    - free
    - memprintf
    - ssl_sock_free_ssl_conf
    - parse
    - ckch_conf_parse
    - calloc
    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:2430,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2434,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2436,1
    - Dst: crtlist_new
      Src: /src/haproxy/src/cfgparse-ssl.c:2442,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2444,1
    - Dst: crtlist_entry_new
      Src: /src/haproxy/src/cfgparse-ssl.c:2449,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2451,1
    - Dst: crtlist_load_crt
      Src: /src/haproxy/src/cfgparse-ssl.c:2459,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse-ssl.c:2463,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2465,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2466,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2467,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/cfgparse-ssl.c:2472,1
    - Dst: memprintf
      Src: /src/haproxy/src/cfgparse-ssl.c:2473,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cfgparse-ssl.c:2479,1
    - Dst: ssl_sock_load_cert_list_file
      Src: /src/haproxy/src/cfgparse-ssl.c:2481,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cfgparse-ssl.c:2493,1
    - Dst: free
      Src: /src/haproxy/src/cfgparse-ssl.c:2494,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cfgparse-ssl.c:2496,1
    - Dst: ckch_conf_clean
      Src: /src/haproxy/src/cfgparse-ssl.c:2497,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2498,1
    - Dst: ssl_sock_free_ssl_conf
      Src: /src/haproxy/src/cfgparse-ssl.c:2499,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2500,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cfgparse-ssl.c:2501,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2502,1
    - Dst: crtlist_entry_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2505,1
    - Dst: crtlist_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2506,1
    - Dst: ha_free
      Src: /src/haproxy/src/cfgparse-ssl.c:2509,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2511
      start: 2420
    functionDepth: 10
    functionLinenumber: 2420
    functionLinenumberEnd: 2511
    functionName: post_section_frontend_crt_init
    functionSourceFile: /src/haproxy/src/cfgparse-ssl.c
    functionUses: 0
    functionsReached:
    - crtlist_new
    - ebst_insert
    - ssl_sock_free_ssl_conf
    - LIST_DELETE
    - list_for_each_entry
    - list_for_each_entry_safe
    - ha_free
    - ckch_conf_clean
    - crtlist_load_crt
    - crtlist_entry_new
    - crtlist_free
    - free
    - memprintf
    - ssl_sock_load_cert_list_file
    - ha_alert
    - crtlist_entry_free
    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:
    - _HA_ATOMIC_AND
    - _HA_ATOMIC_OR
    - signal
    - qfprintf
    - wake_thread
    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:
    - list_for_each_entry_safe
    - ha_sigmask
    - task_wakeup
    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
    - LIST_INIT
    - signal
    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:
    - signal
    - list_for_each_entry_safe
    - LIST_DELETE
    - 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: 6
    functionsReached:
    - signal
    - pool_alloc
    - 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:
    - signal
    - pool_alloc
    - 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:
    - pool_free
    - LIST_DELETE
    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:
    - pool_free
    - list_for_each_entry_safe
    - LIST_DELETE
    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:
    - pool_free
    - list_for_each_entry_safe
    - signal
    - LIST_DELETE
    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:
    - eb32_lookup
    - memcmp
    - eb32_entry
    - read_u32
    - release_entry_locked
    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:
    - cache_wrunlock
    - delete_entry
    - HA_ATOMIC_LOAD
    - cache_wrlock
    - HA_ATOMIC_SUB_FETCH
    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:
    - memcmp
    - struct vary_hashing_information*::cmp_fn
    linkageType: ''
    returnType: int
    signature: int secondary_key_cmp(const char *ref_key, const char *new_key)
  - BBCount: 5
    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: release_entry_locked
      Src: /src/haproxy/src/cache.c:401,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 4
    argNames:
    - cache
    - entry
    - secondary_key
    - delete_expired
    argTypes:
    - struct cache_tree*
    - struct cache_entry*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 376
    functionDepth: 4
    functionLinenumber: 376
    functionLinenumberEnd: 407
    functionName: get_secondary_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - secondary_key_cmp
    - eb32_next_dup
    - eb32_entry
    - release_entry_locked
    linkageType: ''
    returnType: struct cache_entry
    signature: "struct cache_entry *get_secondary_entry(struct cache_tree *cache,
      struct cache_entry *entry,\n                                        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: 415
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 415
    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:433,1
    - Dst: eb32_prev_dup
      Src: /src/haproxy/src/cache.c:434,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:436,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: 448
      start: 425
    functionDepth: 4
    functionLinenumber: 425
    functionLinenumberEnd: 448
    functionName: clear_expired_duplicates
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - eb32_prev_dup
    - container_of
    - release_entry_locked
    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:470,1
    - Dst: eb32_prev_dup
      Src: /src/haproxy/src/cache.c:479,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:483,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:496,1
    - Dst: clear_expired_duplicates
      Src: /src/haproxy/src/cache.c:500,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:504,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:506,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: 516
      start: 463
    functionDepth: 5
    functionLinenumber: 463
    functionLinenumberEnd: 516
    functionName: insert_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - eb32_prev_dup
    - container_of
    - eb32_insert
    - clear_expired_duplicates
    - release_entry_locked
    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:538,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:543,1
    - Dst: eb32_prev_dup
      Src: /src/haproxy/src/cache.c:549,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:551,1
    - Dst: eb32_delete
      Src: /src/haproxy/src/cache.c:556,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - del_entry
    argTypes:
    - struct cache_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 526
    functionDepth: 1
    functionLinenumber: 526
    functionLinenumberEnd: 558
    functionName: delete_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 1
    functionsReached:
    - eb32_prev_dup
    - eb32_delete
    - eb32_next_dup
    - container_of
    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: 564
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 564
    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: 569
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 569
    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: 578
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 578
    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:586,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 3
    functionLinenumber: 580
    functionLinenumberEnd: 588
    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:603,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:604,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:608,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cache.c:609,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:620,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:624,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cache.c:625,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:637,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/cache.c:638,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - px
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 590
    functionDepth: 9
    functionLinenumber: 590
    functionLinenumberEnd: 644
    functionName: cache_store_check
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - list_for_each_entry
    - ha_alert
    - strcmp
    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:651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 661
    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:667,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:669,1
    - Dst: release_entry_unlocked
      Src: /src/haproxy/src/cache.c:681,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:683,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:684,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:685,1
    - Dst: pool_free
      Src: /src/haproxy/src/cache.c:688,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - s
    - filter
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 663
    functionDepth: 4
    functionLinenumber: 663
    functionLinenumberEnd: 691
    functionName: cache_store_strm_deinit
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - shctx_row_reattach
    - release_entry_unlocked
    - FLT_CONF
    - pool_free
    - shctx_wrunlock
    - shctx_wrlock
    - shctx_ptr
    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:711,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: 717
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 717
    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:728,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: 730
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 730
    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:740,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:741,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:742,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:743,1
    - Dst: pool_free
      Src: /src/haproxy/src/cache.c:744,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: 745
      start: 732
    functionDepth: 4
    functionLinenumber: 732
    functionLinenumberEnd: 745
    functionName: disable_cache_entry
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - shctx_row_reattach
    - release_entry_unlocked
    - pool_free
    - shctx_wrunlock
    - shctx_wrlock
    linkageType: ''
    returnType: void
    signature: "void disable_cache_entry(struct cache_st *st,\n                                       struct
      filter *filter, struct shared_context *shctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: FLT_CONF
      Src: /src/haproxy/src/cache.c:751,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:752,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:754,1
    - Dst: unregister_data_filter
      Src: /src/haproxy/src/cache.c:766,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cache.c:770,1
    - Dst: htx_find_offset
      Src: /src/haproxy/src/cache.c:774,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/src/cache.c:777,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/cache.c:778,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/cache.c:779,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/src/cache.c:787,1
    - Dst: istadv
      Src: /src/haproxy/src/cache.c:788,1
    - Dst: isttrim
      Src: /src/haproxy/src/cache.c:789,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:792,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cache.c:793,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:807,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:808,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/cache.c:808,1
    - Dst: shctx_row_reserve_hot
      Src: /src/haproxy/src/cache.c:819,1
    - Dst: ASSUME_NONNULL
      Src: /src/haproxy/src/cache.c:824,1
    - Dst: shctx_row_data_append
      Src: /src/haproxy/src/cache.c:825,1
    - Dst: b_head
      Src: /src/haproxy/src/cache.c:826,1
    - Dst: b_data
      Src: /src/haproxy/src/cache.c:826,1
    - Dst: disable_cache_entry
      Src: /src/haproxy/src/cache.c:833,1
    - Dst: unregister_data_filter
      Src: /src/haproxy/src/cache.c:834,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 61
    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: 836
      start: 747
    functionDepth: 5
    functionLinenumber: 747
    functionLinenumberEnd: 836
    functionName: cache_store_http_payload
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - disable_cache_entry
    - htx_get_blk_value
    - istadv
    - htx_get_blk_ptr
    - ASSUME_NONNULL
    - b_head
    - FLT_CONF
    - b_data
    - htx_get_blk_type
    - unregister_data_filter
    - isttrim
    - htxbuf
    - shctx_row_reserve_hot
    - htx_get_next_blk
    - htx_find_offset
    - shctx_ptr
    - chunk_memcat
    - htx_get_blksz
    - shctx_row_data_append
    - chunk_istcat
    - chunk_reset
    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:843,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:845,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:855,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:859,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:860,1
    - Dst: pool_free
      Src: /src/haproxy/src/cache.c:864,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: 869
      start: 838
    functionDepth: 2
    functionLinenumber: 838
    functionLinenumberEnd: 869
    functionName: cache_store_http_end
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - shctx_row_reattach
    - FLT_CONF
    - pool_free
    - shctx_wrunlock
    - shctx_wrlock
    - shctx_ptr
    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: 907
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 907
    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:925,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:939,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:939,1
    - Dst: directive_value
      Src: /src/haproxy/src/cache.c:942,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cache.c:944,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:946,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:947,1
    - Dst: strtol
      Src: /src/haproxy/src/cache.c:949,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:950,1
    - Dst: directive_value
      Src: /src/haproxy/src/cache.c:954,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cache.c:956,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:958,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:959,1
    - Dst: strtol
      Src: /src/haproxy/src/cache.c:961,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:962,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:971,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:971,1
    - Dst: parse_http_date
      Src: /src/haproxy/src/cache.c:972,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:972,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:972,1
    - Dst: my_timegm
      Src: /src/haproxy/src/cache.c:973,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:994,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1000,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1006,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: 1011
      start: 923
    functionDepth: 5
    functionLinenumber: 923
    functionLinenumberEnd: 1011
    functionName: http_calc_maxage
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - http_find_header
    - istlen
    - get_trash_chunk
    - unlikely
    - my_timegm
    - MIN
    - istptr
    - directive_value
    - parse_http_date
    - chunk_memcat
    - strtol
    - ist
    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:1023,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/cache.c:1024,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/cache.c:1025,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/cache.c:1026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - first
    - data
    argTypes:
    - struct shared_block*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1014
    functionDepth: 2
    functionLinenumber: 1014
    functionLinenumberEnd: 1028
    functionName: cache_free_blocks
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_UNLOCK
    - HA_SPIN_LOCK
    - LIST_INSERT
    - retain_entry
    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:1040,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/cache.c:1041,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cache.c:1043,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cache.c:1044,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cache.c:1057,1
    - Dst: delete_entry
      Src: /src/haproxy/src/cache.c:1058,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/cache.c:1061,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - shctx
    argTypes:
    - struct shared_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1030
    functionDepth: 2
    functionLinenumber: 1030
    functionLinenumberEnd: 1064
    functionName: cache_reserve_finish
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - list_for_each_entry_safe
    - BUG_ON
    - cache_wrunlock
    - delete_entry
    - cache_wrlock
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:1077,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1077,1
    - Dst: parse_http_date
      Src: /src/haproxy/src/cache.c:1078,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:1078,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1078,1
    - Dst: my_timegm
      Src: /src/haproxy/src/cache.c:1079,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:1085,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1085,1
    - Dst: parse_http_date
      Src: /src/haproxy/src/cache.c:1086,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:1086,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1086,1
    - Dst: my_timegm
      Src: /src/haproxy/src/cache.c:1087,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1071
    functionDepth: 5
    functionLinenumber: 1071
    functionLinenumberEnd: 1098
    functionName: get_last_modified_time
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - istlen
    - my_timegm
    - istptr
    - parse_http_date
    - ist
    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:1118,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1118,1
    - Dst: isteqi
      Src: /src/haproxy/src/cache.c:1121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - htx
    - vary_signature
    argTypes:
    - struct htx*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1130
    functionName: http_check_vary_header
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - isteqi
    - 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:1166,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1166,1
    - Dst: parse_encoding_value
      Src: /src/haproxy/src/cache.c:1167,1
    - Dst: write_u32
      Src: /src/haproxy/src/cache.c:1177,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: 1180
      start: 1141
    functionDepth: 1
    functionLinenumber: 1141
    functionLinenumberEnd: 1180
    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:1198,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:1201,1
    - Dst: obj_type
      Src: /src/haproxy/src/cache.c:1210,1
    - Dst: get_cache_tree_from_hash
      Src: /src/haproxy/src/cache.c:1219,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:1219,1
    - Dst: cache_wrlock
      Src: /src/haproxy/src/cache.c:1238,1
    - Dst: get_entry
      Src: /src/haproxy/src/cache.c:1240,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:1242,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1243,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:1258,1
    - Dst: FLT_ID
      Src: /src/haproxy/src/cache.c:1259,1
    - Dst: FLT_CONF
      Src: /src/haproxy/src/cache.c:1259,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:1269,1
    - Dst: http_check_vary_header
      Src: /src/haproxy/src/cache.c:1282,1
    - Dst: http_request_reduce_secondary_key
      Src: /src/haproxy/src/cache.c:1289,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:1292,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1292,1
    - Dst: http_check_response_for_cacheability
      Src: /src/haproxy/src/cache.c:1296,1
    - Dst: cache_wrlock
      Src: /src/haproxy/src/cache.c:1301,1
    - Dst: get_entry
      Src: /src/haproxy/src/cache.c:1302,1
    - Dst: get_secondary_entry
      Src: /src/haproxy/src/cache.c:1305,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1312,1
    - Dst: release_entry_locked
      Src: /src/haproxy/src/cache.c:1315,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1318,1
    - Dst: shctx_row_reserve_hot
      Src: /src/haproxy/src/cache.c:1320,1
    - Dst: memset
      Src: /src/haproxy/src/cache.c:1329,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1338,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1340,1
    - Dst: cache_wrlock
      Src: /src/haproxy/src/cache.c:1342,1
    - Dst: insert_entry
      Src: /src/haproxy/src/cache.c:1344,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1346,1
    - Dst: cache_wrunlock
      Src: /src/haproxy/src/cache.c:1349,1
    - Dst: http_calc_maxage
      Src: /src/haproxy/src/cache.c:1358,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:1361,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1361,1
    - Dst: strl2llrc
      Src: /src/haproxy/src/cache.c:1363,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1364,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1369,1
    - Dst: http_remove_header
      Src: /src/haproxy/src/cache.c:1374,1
    - Dst: get_last_modified_time
      Src: /src/haproxy/src/cache.c:1379,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/cache.c:1381,1
    - Dst: htx_get_first
      Src: /src/haproxy/src/cache.c:1382,1
    - Dst: htx_get_next
      Src: /src/haproxy/src/cache.c:1382,1
    - Dst: htx_get_blk
      Src: /src/haproxy/src/cache.c:1383,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/src/cache.c:1384,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/src/cache.c:1385,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:1388,1
    - Dst: chunk_memcat
      Src: /src/haproxy/src/cache.c:1389,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/cache.c:1389,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/src/cache.c:1396,1
    - Dst: isteq
      Src: /src/haproxy/src/cache.c:1397,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1397,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1398,1
    - Dst: b_data
      Src: /src/haproxy/src/cache.c:1399,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1399,1
    - Dst: set_secondary_key_encoding
      Src: /src/haproxy/src/cache.c:1417,1
    - Dst: shctx_row_reserve_hot
      Src: /src/haproxy/src/cache.c:1420,1
    - Dst: shctx_row_data_append
      Src: /src/haproxy/src/cache.c:1431,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cache.c:1437,1
    - Dst: release_entry_unlocked
      Src: /src/haproxy/src/cache.c:1449,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:1451,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:1452,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:1453,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: 1457
      start: 1187
    functionDepth: 6
    functionLinenumber: 1187
    functionLinenumberEnd: 1457
    functionName: http_action_store_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - get_entry
    - obj_type
    - isteq
    - get_cache_tree_from_hash
    - unlikely
    - get_last_modified_time
    - FLT_ID
    - htx_get_blk_name
    - cache_wrlock
    - memcpy
    - htx_get_blk_ptr
    - shctx_wrlock
    - shctx_row_reattach
    - set_secondary_key_encoding
    - release_entry_unlocked
    - istlen
    - FLT_CONF
    - b_data
    - htx_get_blk_type
    - http_remove_header
    - LIST_INIT
    - htx_get_next
    - read_u32
    - insert_entry
    - htx_get_blk
    - release_entry_locked
    - htxbuf
    - shctx_row_reserve_hot
    - http_find_header
    - memset
    - htx_get_first
    - cache_wrunlock
    - http_request_reduce_secondary_key
    - http_calc_maxage
    - http_check_vary_header
    - strl2llrc
    - shctx_wrunlock
    - shctx_ptr
    - chunk_memcat
    - ist
    - htx_get_blksz
    - list_for_each_entry
    - http_check_response_for_cacheability
    - shctx_row_data_append
    - get_secondary_entry
    - chunk_reset
    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:1469,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:1470,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:1472,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:1474,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:1475,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:1476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1477
      start: 1465
    functionDepth: 3
    functionLinenumber: 1465
    functionLinenumberEnd: 1477
    functionName: http_cache_applet_release
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - shctx_row_reattach
    - block_ptr
    - shctx_wrunlock
    - shctx_wrlock
    - shctx_ptr
    - release_entry
    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:1484,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/cache.c:1490,1
    - Dst: htx_add_blk
      Src: /src/haproxy/src/cache.c:1499,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/src/cache.c:1505,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1507,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1508,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1514,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1514,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: 1522
      start: 1480
    functionDepth: 5
    functionLinenumber: 1480
    functionLinenumberEnd: 1522
    functionName: htx_cache_dump_blk
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - htx_free_data_space
    - MIN
    - htx_get_blk_ptr
    - htx_add_blk
    - LIST_NEXT
    - typeof
    - shctx_ptr
    - memcpy
    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:1528,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/src/cache.c:1532,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1554,1
    - Dst: htx_add_data
      Src: /src/haproxy/src/cache.c:1555,1
    - Dst: ist2
      Src: /src/haproxy/src/cache.c:1555,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1563,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1563,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: 1574
      start: 1524
    functionDepth: 6
    functionLinenumber: 1524
    functionLinenumberEnd: 1574
    functionName: htx_cache_dump_data_blk
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - htx_free_data_space
    - MIN
    - htx_add_data
    - ist2
    - LIST_NEXT
    - typeof
    - shctx_ptr
    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:1580,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1598,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1599,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1602,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1602,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1603,1
    - Dst: htx_cache_dump_blk
      Src: /src/haproxy/src/cache.c:1610,1
    - Dst: htx_cache_dump_data_blk
      Src: /src/haproxy/src/cache.c:1613,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: 1626
      start: 1576
    functionDepth: 7
    functionLinenumber: 1576
    functionLinenumberEnd: 1626
    functionName: htx_cache_dump_msg
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - MIN
    - LIST_NEXT
    - typeof
    - htx_cache_dump_data_blk
    - htx_cache_dump_blk
    - shctx_ptr
    - memcpy
    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:1632,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1653,1
    - Dst: b_putblk
      Src: /src/haproxy/src/cache.c:1654,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1662,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1662,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: 1673
      start: 1628
    functionDepth: 1
    functionLinenumber: 1628
    functionLinenumberEnd: 1673
    functionName: ff_cache_dump_data_blk
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - b_putblk
    - MIN
    - LIST_NEXT
    - typeof
    - 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:1679,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:1680,1
    - Dst: MIN
      Src: /src/haproxy/src/cache.c:1698,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1699,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/src/cache.c:1702,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:1702,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1703,1
    - Dst: ff_cache_dump_data_blk
      Src: /src/haproxy/src/cache.c:1711,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: 1726
      start: 1675
    functionDepth: 2
    functionLinenumber: 1675
    functionLinenumberEnd: 1726
    functionName: ff_cache_dump_msg
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - ff_cache_dump_data_blk
    - MIN
    - block_ptr
    - LIST_NEXT
    - typeof
    - shctx_ptr
    - memcpy
    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:1735,1
    - Dst: MAX
      Src: /src/haproxy/src/cache.c:1736,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1737,1
    - Dst: ultoa_o
      Src: /src/haproxy/src/cache.c:1739,1
    - Dst: b_head
      Src: /src/haproxy/src/cache.c:1739,1
    - Dst: b_size
      Src: /src/haproxy/src/cache.c:1739,1
    - Dst: b_set_data
      Src: /src/haproxy/src/cache.c:1740,1
    - Dst: b_head
      Src: /src/haproxy/src/cache.c:1740,1
    - Dst: http_add_header
      Src: /src/haproxy/src/cache.c:1741,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1741,1
    - Dst: ist2
      Src: /src/haproxy/src/cache.c:1741,1
    - Dst: b_head
      Src: /src/haproxy/src/cache.c:1741,1
    - Dst: b_data
      Src: /src/haproxy/src/cache.c:1741,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1728
    functionDepth: 3
    functionLinenumber: 1728
    functionLinenumberEnd: 1744
    functionName: htx_cache_add_age_hdr
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - http_add_header
    - unlikely
    - b_set_data
    - b_data
    - ultoa_o
    - ist2
    - MAX
    - b_head
    - b_size
    - ist
    - chunk_reset
    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:1750,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cache.c:1753,1
    - Dst: ff_cache_dump_msg
      Src: /src/haproxy/src/cache.c:1755,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/cache.c:1758,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cache.c:1759,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cache.c:1761,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/cache.c:1762,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: 1767
      start: 1746
    functionDepth: 3
    functionLinenumber: 1746
    functionLinenumberEnd: 1767
    functionName: http_cache_fastfwd
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - applet_fl_clr
    - block_ptr
    - applet_set_eoi
    - BUG_ON
    - ff_cache_dump_msg
    - applet_set_eos
    - se_fl_clr
    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:1773,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cache.c:1779,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cache.c:1782,1
    - Dst: se_fl_test
      Src: /src/haproxy/src/cache.c:1782,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/cache.c:1786,1
    - Dst: htx_is_empty
      Src: /src/haproxy/src/cache.c:1786,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:1786,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:1789,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/src/cache.c:1796,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1800,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cache.c:1800,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/cache.c:1804,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/cache.c:1807,1
    - Dst: unlikely
      Src: /src/haproxy/src/cache.c:1812,1
    - Dst: applet_fl_test
      Src: /src/haproxy/src/cache.c:1812,1
    - Dst: htx_cache_dump_msg
      Src: /src/haproxy/src/cache.c:1817,1
    - Dst: htx_get_tail_type
      Src: /src/haproxy/src/cache.c:1818,1
    - Dst: htx_cache_add_age_hdr
      Src: /src/haproxy/src/cache.c:1819,1
    - Dst: http_replace_res_status
      Src: /src/haproxy/src/cache.c:1825,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1825,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:1825,1
    - Dst: htx_sl_req_meth
      Src: /src/haproxy/src/cache.c:1833,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/cache.c:1833,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:1833,1
    - Dst: find_http_meth
      Src: /src/haproxy/src/cache.c:1834,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:1834,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:1834,1
    - Dst: se_fl_set
      Src: /src/haproxy/src/cache.c:1838,1
    - Dst: htx_cache_dump_msg
      Src: /src/haproxy/src/cache.c:1848,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/cache.c:1850,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/cache.c:1854,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/src/cache.c:1861,1
    - Dst: se_fl_clr
      Src: /src/haproxy/src/cache.c:1862,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cache.c:1863,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/cache.c:1869,1
    - Dst: htx_to_buf
      Src: /src/haproxy/src/cache.c:1874,1
    - Dst: b_reset
      Src: /src/haproxy/src/cache.c:1878,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/src/cache.c:1879,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/src/cache.c:1885,1
    - Dst: b_reset
      Src: /src/haproxy/src/cache.c:1890,1
    - Dst: b_data
      Src: /src/haproxy/src/cache.c:1892,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:1893,1
    - Dst: b_head
      Src: /src/haproxy/src/cache.c:1893,1
    - Dst: b_data
      Src: /src/haproxy/src/cache.c:1893,1
    - Dst: htx_from_buf
      Src: /src/haproxy/src/cache.c:1894,1
    - Dst: applet_set_eos
      Src: /src/haproxy/src/cache.c:1896,1
    - Dst: applet_set_error
      Src: /src/haproxy/src/cache.c:1897,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 102
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1769
    functionDepth: 8
    functionLinenumber: 1769
    functionLinenumberEnd: 1900
    functionName: http_cache_io_handler
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - unlikely
    - applet_set_eoi
    - http_get_stline
    - memcpy
    - htx_from_buf
    - b_head
    - se_fl_clr
    - istlen
    - appctx_get_buf
    - block_ptr
    - b_data
    - find_http_meth
    - htx_get_tail_type
    - htxbuf
    - htx_cache_dump_msg
    - applet_fl_clr
    - applet_need_more_data
    - se_fl_set
    - se_fl_test
    - BUG_ON
    - htx_sl_req_meth
    - applet_fl_set
    - applet_set_eos
    - ist
    - applet_fl_test
    - htx_is_empty
    - b_reset
    - applet_set_error
    - http_replace_res_status
    - istptr
    - htx_cache_add_age_hdr
    - htx_to_buf
    linkageType: ''
    returnType: void
    signature: void http_cache_io_handler(struct appctx *appctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:1908,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:1908,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:1909,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:1915,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:1918,1
    - Dst: calloc
      Src: /src/haproxy/src/cache.c:1926,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:1928,1
    - Dst: strdup
      Src: /src/haproxy/src/cache.c:1932,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:1934,1
    - Dst: calloc
      Src: /src/haproxy/src/cache.c:1939,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:1941,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cache.c:1947,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:1953,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 44
    argCount: 4
    argNames:
    - proxy
    - name
    - rule
    - err
    argTypes:
    - struct proxy*
    - char*
    - struct act_rule*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1903
    functionDepth: 5
    functionLinenumber: 1903
    functionLinenumberEnd: 1955
    functionName: parse_cache_rule
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - strdup
    - list_for_each_entry
    - strcmp
    - LIST_APPEND
    - free
    - memprintf
    - calloc
    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:1963,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: 1968
      start: 1957
    functionDepth: 6
    functionLinenumber: 1957
    functionLinenumberEnd: 1968
    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:1976,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cache.c:1983,1
    - Dst: http_get_stline
      Src: /src/haproxy/src/cache.c:1986,1
    - Dst: htx_sl_req_uri
      Src: /src/haproxy/src/cache.c:1987,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cache.c:2004,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2004,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:2005,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2005,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cache.c:2007,1
    - Dst: chunk_istcat
      Src: /src/haproxy/src/cache.c:2010,1
    - Dst: blk_SHA1_Init
      Src: /src/haproxy/src/cache.c:2013,1
    - Dst: blk_SHA1_Update
      Src: /src/haproxy/src/cache.c:2014,1
    - Dst: blk_SHA1_Final
      Src: /src/haproxy/src/cache.c:2015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 1973
    functionDepth: 4
    functionLinenumber: 1973
    functionLinenumberEnd: 2018
    functionName: sha1_hosturi
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - blk_SHA1_Final
    - htxbuf
    - blk_SHA1_Init
    - http_find_header
    - get_trash_chunk
    - blk_SHA1_Update
    - http_get_stline
    - chunk_istcat
    - htx_sl_req_uri
    - ist
    linkageType: ''
    returnType: int
    signature: int sha1_hosturi(struct stream *s)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:2050,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2050,1
    - Dst: isteq
      Src: /src/haproxy/src/cache.c:2054,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2054,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/cache.c:2065,1
    - Dst: shctx_row_data_get
      Src: /src/haproxy/src/cache.c:2067,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:2067,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:2067,1
    - Dst: b_orig
      Src: /src/haproxy/src/cache.c:2068,1
    - Dst: ist2
      Src: /src/haproxy/src/cache.c:2070,1
    - Dst: b_orig
      Src: /src/haproxy/src/cache.c:2070,1
    - Dst: http_compare_etags
      Src: /src/haproxy/src/cache.c:2078,1
    - Dst: http_find_header
      Src: /src/haproxy/src/cache.c:2088,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2088,1
    - Dst: parse_http_date
      Src: /src/haproxy/src/cache.c:2089,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:2089,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:2089,1
    - Dst: my_timegm
      Src: /src/haproxy/src/cache.c:2090,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: 2102
      start: 2034
    functionDepth: 5
    functionLinenumber: 2034
    functionLinenumberEnd: 2102
    functionName: should_send_notmodified_response
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - b_orig
    - isteq
    - http_find_header
    - istlen
    - get_trash_chunk
    - block_ptr
    - my_timegm
    - istptr
    - http_compare_etags
    - ist2
    - shctx_row_data_get
    - shctx_ptr
    - parse_http_date
    - ist
    linkageType: ''
    returnType: int
    signature: "int should_send_notmodified_response(struct cache *cache, struct htx
      *htx,\n                                            struct cache_entry *entry)"
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:2112,1
    - Dst: http_check_request_for_cacheability
      Src: /src/haproxy/src/cache.c:2123,1
    - Dst: sha1_hosturi
      Src: /src/haproxy/src/cache.c:2129,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cache.c:2135,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/cache.c:2137,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/cache.c:2141,1
    - Dst: get_cache_tree_from_hash
      Src: /src/haproxy/src/cache.c:2144,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:2144,1
    - Dst: cache_rdlock
      Src: /src/haproxy/src/cache.c:2149,1
    - Dst: get_entry
      Src: /src/haproxy/src/cache.c:2150,1
    - Dst: retain_entry
      Src: /src/haproxy/src/cache.c:2158,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:2160,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:2161,1
    - Dst: shctx_row_detach
      Src: /src/haproxy/src/cache.c:2163,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2166,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:2169,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:2170,1
    - Dst: http_request_build_secondary_key
      Src: /src/haproxy/src/cache.c:2176,1
    - Dst: cache_rdlock
      Src: /src/haproxy/src/cache.c:2177,1
    - Dst: get_secondary_entry
      Src: /src/haproxy/src/cache.c:2178,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2182,1
    - Dst: retain_entry
      Src: /src/haproxy/src/cache.c:2183,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:2184,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:2186,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:2187,1
    - Dst: shctx_row_detach
      Src: /src/haproxy/src/cache.c:2188,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:2189,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:2192,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2195,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:2198,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:2199,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:2200,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2211,1
    - Dst: sc_applet_create
      Src: /src/haproxy/src/cache.c:2216,1
    - Dst: objt_applet
      Src: /src/haproxy/src/cache.c:2216,1
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/cache.c:2217,1
    - Dst: should_send_notmodified_response
      Src: /src/haproxy/src/cache.c:2226,1
    - Dst: htxbuf
      Src: /src/haproxy/src/cache.c:2226,1
    - Dst: strm_fe
      Src: /src/haproxy/src/cache.c:2228,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/cache.c:2230,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/cache.c:2234,1
    - Dst: release_entry
      Src: /src/haproxy/src/cache.c:2239,1
    - Dst: shctx_wrlock
      Src: /src/haproxy/src/cache.c:2240,1
    - Dst: shctx_row_reattach
      Src: /src/haproxy/src/cache.c:2241,1
    - Dst: shctx_wrunlock
      Src: /src/haproxy/src/cache.c:2242,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:2246,1
    - Dst: http_request_prebuild_full_secondary_key
      Src: /src/haproxy/src/cache.c:2253,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 95
    argCount: 5
    argNames:
    - rule
    - px
    - sess
    - s
    - flags
    argTypes:
    - struct act_rule*
    - struct proxy*
    - struct session*
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2256
      start: 2104
    functionDepth: 6
    functionLinenumber: 2104
    functionLinenumberEnd: 2256
    functionName: http_action_req_cache_use
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - get_entry
    - get_cache_tree_from_hash
    - sha1_hosturi
    - strm_fe
    - http_check_request_for_cacheability
    - shctx_row_detach
    - http_request_build_secondary_key
    - _HA_ATOMIC_INC
    - shctx_wrlock
    - release_entry
    - shctx_row_reattach
    - block_ptr
    - cache_rdunlock
    - read_u32
    - htxbuf
    - shctx_wrunlock
    - http_request_prebuild_full_secondary_key
    - retain_entry
    - shctx_ptr
    - applet_reserve_svcctx
    - sc_applet_create
    - objt_applet
    - cache_rdlock
    - should_send_notmodified_response
    - get_secondary_entry
    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:2265,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: 2270
      start: 2259
    functionDepth: 6
    functionLinenumber: 2259
    functionLinenumberEnd: 2270
    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:2276,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2279,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2285,1
    - Dst: calloc
      Src: /src/haproxy/src/cache.c:2293,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2295,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/cache.c:2300,1
    - Dst: strlen
      Src: /src/haproxy/src/cache.c:2301,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2302,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:2307,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2308,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2309,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2321,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2325,1
    - Dst: strtoul
      Src: /src/haproxy/src/cache.c:2330,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2332,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2339,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2348,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2349,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2355,1
    - Dst: atoi
      Src: /src/haproxy/src/cache.c:2360,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2361,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2365,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2371,1
    - Dst: strtoul
      Src: /src/haproxy/src/cache.c:2376,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2378,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2384,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: strcmp
      Src: /src/haproxy/src/cache.c:2395,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2397,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2400,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2404,1
    - Dst: alertif_too_many_args
      Src: /src/haproxy/src/cache.c:2408,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2414,1
    - Dst: strtoul
      Src: /src/haproxy/src/cache.c:2419,1
    - Dst: ha_warning
      Src: /src/haproxy/src/cache.c:2421,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2429,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 139
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2435
      start: 2272
    functionDepth: 9
    functionLinenumber: 2272
    functionLinenumberEnd: 2435
    functionName: cfg_parse_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - ha_warning
    - list_for_each_entry
    - strcmp
    - atoi
    - strlcpy2
    - strlen
    - ha_alert
    - strtoul
    - alertif_too_many_args
    - calloc
    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:2446,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2457,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cache.c:2465,1
    - Dst: ha_free
      Src: /src/haproxy/src/cache.c:2470,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2439
    functionDepth: 9
    functionLinenumber: 2439
    functionLinenumberEnd: 2473
    functionName: cfg_post_parse_section_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - ha_free
    - ha_alert
    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:2484,1
    - Dst: shctx_init
      Src: /src/haproxy/src/cache.c:2486,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2491,1
    - Dst: ha_alert
      Src: /src/haproxy/src/cache.c:2493,1
    - Dst: memcpy
      Src: /src/haproxy/src/cache.c:2504,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/cache.c:2506,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cache.c:2507,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2508,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/cache.c:2511,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/cache.c:2513,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/src/cache.c:2514,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/cache.c:2524,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2529,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2530,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2475
    functionDepth: 9
    functionLinenumber: 2475
    functionLinenumberEnd: 2542
    functionName: post_check_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - LIST_DELETE
    - list_for_each_entry
    - strcmp
    - list_for_each_entry_safe
    - LIST_APPEND
    - free
    - LIST_INIT
    - HA_SPIN_INIT
    - ha_alert
    - shctx_init
    - memcpy
    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: 2572
      start: 2563
    functionDepth: 0
    functionLinenumber: 2563
    functionLinenumberEnd: 2572
    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:2592,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2601,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2602,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2605,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2606,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2609,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2610,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2613,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2614,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2617,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2618,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: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2636,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2639,1
    - Dst: CHECK_ENCODING
      Src: /src/haproxy/src/cache.c:2640,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2643,1
    - Dst: http_trim_leading_spht
      Src: /src/haproxy/src/cache.c:2653,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:2654,1
    - Dst: istnext
      Src: /src/haproxy/src/cache.c:2659,1
    - Dst: http_trim_leading_spht
      Src: /src/haproxy/src/cache.c:2661,1
    - Dst: isteq
      Src: /src/haproxy/src/cache.c:2663,1
    - Dst: ist
      Src: /src/haproxy/src/cache.c:2663,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: 2669
      start: 2584
    functionDepth: 2
    functionLinenumber: 2584
    functionLinenumberEnd: 2669
    functionName: parse_encoding_value
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 1
    functionsReached:
    - isteq
    - istlen
    - istnext
    - http_trim_leading_spht
    - CHECK_ENCODING
    - ist
    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:2700,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:2711,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/src/cache.c:2715,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:2715,1
    - Dst: parse_encoding_value
      Src: /src/haproxy/src/cache.c:2718,1
    - Dst: write_u32
      Src: /src/haproxy/src/cache.c:2749,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: 2755
      start: 2684
    functionDepth: 3
    functionLinenumber: 2684
    functionLinenumberEnd: 2755
    functionName: accept_encoding_normalizer
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - istlen
    - write_u32
    - parse_encoding_value
    - istptr
    - ist2bin_lc
    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:2772,1
    - Dst: write_u64
      Src: /src/haproxy/src/cache.c:2774,1
    - Dst: XXH3
      Src: /src/haproxy/src/cache.c:2774,1
    - Dst: istptr
      Src: /src/haproxy/src/cache.c:2774,1
    - Dst: istlen
      Src: /src/haproxy/src/cache.c:2774,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: 2779
      start: 2766
    functionDepth: 1
    functionLinenumber: 2766
    functionLinenumberEnd: 2779
    functionName: default_normalizer
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - istlen
    - write_u64
    - istptr
    - XXH3
    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:2787,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:2788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ref
    - new
    - len
    argTypes:
    - void*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2806
      start: 2785
    functionDepth: 1
    functionLinenumber: 2785
    functionLinenumberEnd: 2806
    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:2824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2825
      start: 2820
    functionDepth: 1
    functionLinenumber: 2820
    functionLinenumberEnd: 2825
    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:2841,1
    - Dst: struct vary_hashing_information*::norm_fn
      Src: /src/haproxy/src/cache.c:2856,1
    - Dst: memset
      Src: /src/haproxy/src/cache.c:2862,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - s
    - vary_signature
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2838
    functionDepth: 1
    functionLinenumber: 2838
    functionLinenumberEnd: 2871
    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: 2899
      start: 2878
    functionDepth: 0
    functionLinenumber: 2878
    functionLinenumberEnd: 2899
    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:2914,1
    - Dst: strdup
      Src: /src/haproxy/src/cache.c:2917,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:2919,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/cache.c:2926,1
    - Dst: strcmp
      Src: /src/haproxy/src/cache.c:2931,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:2938,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/cache.c:2944,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2945,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2946,1
    - Dst: calloc
      Src: /src/haproxy/src/cache.c:2952,1
    - Dst: memprintf
      Src: /src/haproxy/src/cache.c:2954,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2969,1
    - Dst: free
      Src: /src/haproxy/src/cache.c:2970,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: 2972
      start: 2903
    functionDepth: 5
    functionLinenumber: 2903
    functionLinenumberEnd: 2972
    functionName: parse_cache_flt
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - strdup
    - LIST_DELETE
    - strcmp
    - list_for_each_entry_safe
    - free
    - memprintf
    - calloc
    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:2977,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/cache.c:2979,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/cache.c:2982,1
    - Dst: typeof
      Src: /src/haproxy/src/cache.c:2982,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: 2984
      start: 2975
    functionDepth: 2
    functionLinenumber: 2975
    functionLinenumberEnd: 2984
    functionName: cli_parse_show_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - applet_reserve_svcctx
    - typeof
    - LIST_ELEM
    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:2991,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/cache.c:2996,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:3001,1
    - Dst: shctx_rdlock
      Src: /src/haproxy/src/cache.c:3007,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cache.c:3008,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:3008,1
    - Dst: shctx_ptr
      Src: /src/haproxy/src/cache.c:3008,1
    - Dst: shctx_rdunlock
      Src: /src/haproxy/src/cache.c:3009,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cache.c:3010,1
    - Dst: cache_rdlock
      Src: /src/haproxy/src/cache.c:3024,1
    - Dst: eb32_lookup_ge
      Src: /src/haproxy/src/cache.c:3027,1
    - Dst: container_of
      Src: /src/haproxy/src/cache.c:3033,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/cache.c:3037,1
    - Dst: read_u32
      Src: /src/haproxy/src/cache.c:3037,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cache.c:3039,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/cache.c:3040,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:3041,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:3041,1
    - Dst: block_ptr
      Src: /src/haproxy/src/cache.c:3042,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/cache.c:3047,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:3048,1
    - Dst: cache_rdunlock
      Src: /src/haproxy/src/cache.c:3052,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/cache.c:3056,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/cache.c:3060,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3062
      start: 2987
    functionDepth: 2
    functionLinenumber: 2987
    functionLinenumberEnd: 3062
    functionName: cli_io_handler_show_cache
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - eb32_lookup_ge
    - shctx_rdlock
    - list_for_each_entry_from
    - block_ptr
    - chunk_printf
    - free_trash_chunk
    - chunk_appendf
    - container_of
    - cache_rdlock
    - cache_rdunlock
    - applet_putchk
    - read_u32
    - shctx_ptr
    - alloc_trash_chunk
    - shctx_rdunlock
    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: 3076
      start: 3068
    functionDepth: 0
    functionLinenumber: 3068
    functionLinenumberEnd: 3076
    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:3091,1
    - Dst: strlen
      Src: /src/haproxy/src/cache.c:3098,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: 3103
      start: 3081
    functionDepth: 1
    functionLinenumber: 3081
    functionLinenumberEnd: 3103
    functionName: smp_fetch_res_cache_name
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - strlen
    - sc_appctx
    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:3109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3110
      start: 3107
    functionDepth: 2
    functionLinenumber: 3107
    functionLinenumberEnd: 3110
    functionName: cache_init
    functionSourceFile: /src/haproxy/src/cache.c
    functionUses: 0
    functionsReached:
    - ha_random64
    linkageType: ''
    returnType: void
    signature: void cache_init()
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: objt_conn
      Src: /src/haproxy/src/frontend.c:53,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/frontend.c:58,1
    - Dst: log_orig_proxy
      Src: /src/haproxy/src/frontend.c:60,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/frontend.c:61,1
    - Dst: log_orig
      Src: /src/haproxy/src/frontend.c:61,1
    - Dst: likely
      Src: /src/haproxy/src/frontend.c:63,1
    - Dst: lf_expr_isempty
      Src: /src/haproxy/src/frontend.c:63,1
    - Dst: struct stream*::do_log
      Src: /src/haproxy/src/frontend.c:67,1
    - Dst: log_orig
      Src: /src/haproxy/src/frontend.c:67,1
    - Dst: sc_src
      Src: /src/haproxy/src/frontend.c:70,1
    - Dst: send_log
      Src: /src/haproxy/src/frontend.c:72,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/frontend.c:78,1
    - Dst: sc_dst
      Src: /src/haproxy/src/frontend.c:81,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/frontend.c:83,1
    - Dst: get_host_port
      Src: /src/haproxy/src/frontend.c:84,1
    - Dst: strlcpy2
      Src: /src/haproxy/src/frontend.c:86,1
    - Dst: send_log
      Src: /src/haproxy/src/frontend.c:89,1
    - Dst: get_host_port
      Src: /src/haproxy/src/frontend.c:90,1
    - Dst: send_log
      Src: /src/haproxy/src/frontend.c:98,1
    - Dst: unlikely
      Src: /src/haproxy/src/frontend.c:107,1
    - Dst: sc_conn
      Src: /src/haproxy/src/frontend.c:115,1
    - Dst: conn_get_alpn
      Src: /src/haproxy/src/frontend.c:116,1
    - Dst: MIN
      Src: /src/haproxy/src/frontend.c:117,1
    - Dst: memcpy
      Src: /src/haproxy/src/frontend.c:118,1
    - Dst: sc_src
      Src: /src/haproxy/src/frontend.c:123,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/frontend.c:125,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/frontend.c:129,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/frontend.c:132,1
    - Dst: get_host_port
      Src: /src/haproxy/src/frontend.c:134,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/frontend.c:140,1
    - Dst: DISGUISE
      Src: /src/haproxy/src/frontend.c:146,1
    - Dst: write
      Src: /src/haproxy/src/frontend.c:146,1
    - Dst: unlikely
      Src: /src/haproxy/src/frontend.c:152,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/frontend.c:153,1
    - Dst: unlikely
      Src: /src/haproxy/src/frontend.c:157,1
    - Dst: pool_zalloc
      Src: /src/haproxy/src/frontend.c:158,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/frontend.c:162,1
    - Dst: http_create_txn
      Src: /src/haproxy/src/frontend.c:162,1
    - Dst: pool_free
      Src: /src/haproxy/src/frontend.c:170,1
    - Dst: pool_free
      Src: /src/haproxy/src/frontend.c:172,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 86
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 49
    functionDepth: 10
    functionLinenumber: 49
    functionLinenumberEnd: 175
    functionName: frontend_accept
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 0
    functionsReached:
    - sc_conn
    - unlikely
    - http_create_txn
    - pool_free
    - sc_src
    - conn_get_alpn
    - get_host_port
    - objt_conn
    - MIN
    - chunk_printf
    - log_orig
    - pool_zalloc
    - DISGUISE
    - likely
    - LIST_ISEMPTY
    - write
    - addr_to_str
    - lf_expr_isempty
    - sc_dst
    - strlcpy2
    - log_orig_proxy
    - IS_HTX_STRM
    - struct stream*::do_log
    - send_log
    - memcpy
    linkageType: ''
    returnType: int
    signature: int frontend_accept(struct stream *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/frontend.c:190,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/src/frontend.c:198,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/src/frontend.c:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: increment_actconn
    functionSourceFile: /src/haproxy/src/frontend.c
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_CAS
    - __ha_cpu_relax
    - unlikely
    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: 216
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 216
    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:228,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: 230
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 230
    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:244,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: 246
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 246
    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:264,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: 266
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 266
    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:284,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: 286
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 286
    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: 306
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 306
    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:313,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: 315
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 315
    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: []
    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: 421
    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: 52
    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:
    - memset
    - ncbmb_size
    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:
    - BUG_ON_HOT
    - ncbmb_size
    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
    - itbmap_load
    - BUG_ON
    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:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - prev
    argTypes:
    - struct ncbmbuf*
    - struct itbmap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 152
    functionName: itbmap_next
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    - itbmap_load
    - ncbmb_size
    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: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    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:169,1
    - Dst: ncbmb_is_null
      Src: /src/haproxy/src/ncbmbuf.c:169,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:171,1
    - Dst: memset
      Src: /src/haproxy/src/ncbmbuf.c:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - head
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: ncbmb_init
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    - memset
    - ncbmb_is_null
    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:190,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: 193
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 193
    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: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    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:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 215
    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: 221
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 221
    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: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    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:235,1
    - Dst: itbmap_is_full
      Src: /src/haproxy/src/ncbmbuf.c:239,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:241,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - buf
    - 'off'
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 259
    functionName: ncbmb_data
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 4
    functionsReached:
    - itbmap_is_full
    - itbmap_get
    - 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:269,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:271,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:273,1
    - Dst: ncbmb_wrap
      Src: /src/haproxy/src/ncbmbuf.c:275,1
    - Dst: ncbmb_wrap
      Src: /src/haproxy/src/ncbmbuf.c:276,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbmbuf.c:278,1
    - Dst: ncbmb_set_bitmap
      Src: /src/haproxy/src/ncbmbuf.c:279,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbmbuf.c:281,1
    - Dst: ncbmb_orig
      Src: /src/haproxy/src/ncbmbuf.c:281,1
    - Dst: ncbmb_set_bitmap
      Src: /src/haproxy/src/ncbmbuf.c:282,1
    - Dst: memcpy
      Src: /src/haproxy/src/ncbmbuf.c:285,1
    - Dst: ncbmb_set_bitmap
      Src: /src/haproxy/src/ncbmbuf.c:286,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: 290
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 290
    functionName: ncbmb_add
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 1
    functionsReached:
    - ncbmb_wrap
    - ncbmb_orig
    - ncbmb_peek
    - BUG_ON_HOT
    - memcpy
    - ncbmb_set_bitmap
    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:302,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:302,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:305,1
    - Dst: bit_unset
      Src: /src/haproxy/src/ncbmbuf.c:324,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:332,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/src/ncbmbuf.c:333,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:333,1
    - Dst: ncbmb_size
      Src: /src/haproxy/src/ncbmbuf.c:334,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - adv
    argTypes:
    - struct ncbmbuf*
    - ncb_sz_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 339
    functionName: ncbmb_advance
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 2
    functionsReached:
    - BUG_ON_HOT
    - bit_unset
    - itbmap_get
    - ncbmb_size
    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:348,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:351,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:352,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:353,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:356,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:358,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:359,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - b
    - line
    argTypes:
    - struct ncbmbuf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 360
    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: 364
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 364
    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:367,1
    - Dst: calloc
      Src: /src/haproxy/src/ncbmbuf.c:368,1
    - Dst: memset
      Src: /src/haproxy/src/ncbmbuf.c:371,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:374,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:375,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:375,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:377,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:378,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:378,1
    - Dst: ncbmb_advance
      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: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:382,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:383,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:383,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:386,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:387,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:387,1
    - Dst: ncbmb_add
      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:392,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:392,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:393,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:394,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:395,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:395,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:396,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:399,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:399,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:401,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:402,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:402,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: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:405,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:408,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:409,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:411,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:412,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:412,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: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:417,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:420,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:420,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:422,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:423,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:423,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:430,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:430,1
    - Dst: ncbmb_advance
      Src: /src/haproxy/src/ncbmbuf.c:431,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:432,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:432,1
    - Dst: fprintf
      Src: /src/haproxy/src/ncbmbuf.c:433,1
    - Dst: free
      Src: /src/haproxy/src/ncbmbuf.c:435,1
    - Dst: free
      Src: /src/haproxy/src/ncbmbuf.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 436
    functionName: test_ncbmb
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - memset
    - ncbmb_advance
    - ncbmb_add
    - fprintf
    - ncbmb_make
    - free
    - ncbmbuf_print_buf
    - NCBMB_DATA_EQ
    - calloc
    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: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    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:444,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:448,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:448,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:449,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:449,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:450,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:450,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:452,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:452,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:453,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:453,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:456,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:456,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:457,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:457,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:458,1
    - Dst: BUG_ON
      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: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:465,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:465,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:466,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:466,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:467,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:467,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:468,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:468,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:471,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:471,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:472,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:472,1
    - Dst: itbmap_next
      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: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:474,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:477,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:477,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:478,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:478,1
    - Dst: itbmap_next
      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: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:480,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:483,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:483,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:484,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:484,1
    - Dst: itbmap_next
      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: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:486,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:489,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:489,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:490,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:490,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:491,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:491,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:494,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:494,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:495,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:495,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:496,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:496,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:498,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:498,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:499,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:499,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:501,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:501,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:502,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:502,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:505,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:505,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:506,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:506,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:507,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:507,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:510,1
    - Dst: ncbmbuf_print_buf
      Src: /src/haproxy/src/ncbmbuf.c:510,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:511,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:511,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:512,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:512,1
    - Dst: itbmap_next
      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: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:515,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:517,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:517,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:518,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:518,1
    - Dst: itbmap_next
      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: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:520,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:523,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:523,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:524,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:524,1
    - Dst: itbmap_next
      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: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:528,1
    - Dst: itbmap_get
      Src: /src/haproxy/src/ncbmbuf.c:530,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:530,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:531,1
    - Dst: ITBMAP_CHECK
      Src: /src/haproxy/src/ncbmbuf.c:531,1
    - Dst: itbmap_next
      Src: /src/haproxy/src/ncbmbuf.c:532,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/ncbmbuf.c:532,1
    - Dst: free
      Src: /src/haproxy/src/ncbmbuf.c:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 535
    functionName: test_itbmap
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - ITBMAP_CHECK
    - itbmap_next
    - BUG_ON
    - ncbmb_make
    - free
    - ncbmbuf_print_buf
    - itbmap_get
    - calloc
    linkageType: ''
    returnType: void
    signature: void test_itbmap(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/ncbmbuf.c:540,1
    - Dst: calloc
      Src: /src/haproxy/src/ncbmbuf.c:541,1
    - Dst: memset
      Src: /src/haproxy/src/ncbmbuf.c:544,1
    - Dst: ncbmb_make
      Src: /src/haproxy/src/ncbmbuf.c:546,1
    - Dst: ncbmb_add
      Src: /src/haproxy/src/ncbmbuf.c:547,1
    - Dst: NCBMB_DATA_EQ
      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:574,1
    - Dst: NCBMB_DATA_EQ
      Src: /src/haproxy/src/ncbmbuf.c:575,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: free
      Src: /src/haproxy/src/ncbmbuf.c:597,1
    - Dst: free
      Src: /src/haproxy/src/ncbmbuf.c:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 598
    functionName: test_ngtcp2_crypto
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 0
    functionsReached:
    - memset
    - ncbmb_add
    - ncbmb_make
    - free
    - NCBMB_DATA_EQ
    - calloc
    linkageType: ''
    returnType: void
    signature: void test_ngtcp2_crypto(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ncbmb
      Src: /src/haproxy/src/ncbmbuf.c:602,1
    - Dst: test_itbmap
      Src: /src/haproxy/src/ncbmbuf.c:603,1
    - Dst: test_ngtcp2_crypto
      Src: /src/haproxy/src/ncbmbuf.c:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 600
    functionDepth: 5
    functionLinenumber: 600
    functionLinenumberEnd: 606
    functionName: main
    functionSourceFile: /src/haproxy/src/ncbmbuf.c
    functionUses: 30
    functionsReached:
    - test_ngtcp2_crypto
    - test_itbmap
    - 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:
    - SSL_get_ex_data
    - TRACE_LEAVE
    - TRACE_ENTER
    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_add_custom_ext
    - SSL_CTX_has_client_custom_ext
    - xprt_get
    - SSL_CTX_set_keylog_callback
    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:
    - TRACE_ENTER
    - tls_aead
    - tls_md
    - quic_hkdf_expand_label
    - EVP_CIPHER_key_length
    - memcpy
    - TRACE_LEAVE
    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:
    - struct quic_openssl_compat*::method::set_encryption_secrets
    - SSL_CIPHER_get_id
    - SSL_get_ex_data
    - strncmp
    - qc_is_back
    - TRACE_ENTER
    - quic_set_tls_alert
    - TRACE_LEAVE
    - quic_tls_compat_set_encryption_secret
    - SSL_get_current_cipher
    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_LEAVE
    - TRACE_ENTER
    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_EncryptFinal_ex
    - EVP_CIPHER_CTX_free
    - EVP_CIPHER_CTX_new
    - EVP_EncryptInit_ex
    - EVP_CIPHER_nid
    - TRACE_ENTER
    - EVP_CIPHER_CTX_ctrl
    - EVP_EncryptUpdate
    - TRACE_LEAVE
    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:
    - quic_tls_compute_nonce
    - TRACE_ENTER
    - quic_tls_tls_seal
    - quic_tls_compat_create_header
    - memcpy
    - TRACE_LEAVE
    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:368,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:374,1
    - Dst: struct quic_openssl_compat*::method::add_handshake_data
      Src: /src/haproxy/src/quic_openssl_compat.c:380,1
    - Dst: struct quic_openssl_compat*::method::send_alert
      Src: /src/haproxy/src/quic_openssl_compat.c:385,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:391,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 7
    argNames:
    - conn
    - write_p
    - version
    - content_type
    - buf
    - len
    - ssl
    argTypes:
    - struct connection*
    - int
    - int
    - int
    - void*
    - size_t
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 392
    functionName: quic_tls_compat_msg_callback
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - TRACE_ENTER
    - struct quic_openssl_compat*::method::send_alert
    - struct quic_openssl_compat*::method::add_handshake_data
    - TRACE_LEAVE
    linkageType: ''
    returnType: void
    signature: "void quic_tls_compat_msg_callback(struct connection *conn,\n                                  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:398,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:400,1
    - Dst: BIO_new
      Src: /src/haproxy/src/quic_openssl_compat.c:402,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/quic_openssl_compat.c:402,1
    - Dst: BIO_new
      Src: /src/haproxy/src/quic_openssl_compat.c:406,1
    - Dst: BIO_s_null
      Src: /src/haproxy/src/quic_openssl_compat.c:406,1
    - Dst: SSL_set_bio
      Src: /src/haproxy/src/quic_openssl_compat.c:410,1
    - Dst: SSL_set_max_early_data
      Src: /src/haproxy/src/quic_openssl_compat.c:412,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:422,1
    - Dst: BIO_free
      Src: /src/haproxy/src/quic_openssl_compat.c:425,1
    - Dst: BIO_free
      Src: /src/haproxy/src/quic_openssl_compat.c:426,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - ssl
    - quic_method
    argTypes:
    - SSL*
    - SSL_QUIC_METHOD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 394
    functionDepth: 1
    functionLinenumber: 394
    functionLinenumberEnd: 428
    functionName: SSL_set_quic_method
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - SSL_get_ex_data
    - BIO_new
    - SSL_set_bio
    - TRACE_ENTER
    - SSL_set_max_early_data
    - BIO_free
    - BIO_s_null
    - BIO_s_mem
    - TRACE_LEAVE
    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:432,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:434,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 437
    functionName: SSL_quic_read_level
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - SSL_get_ex_data
    - TRACE_LEAVE
    - TRACE_ENTER
    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:442,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:444,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 440
    functionDepth: 1
    functionLinenumber: 440
    functionLinenumberEnd: 447
    functionName: SSL_quic_write_level
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 0
    functionsReached:
    - SSL_get_ex_data
    - TRACE_LEAVE
    - TRACE_ENTER
    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:458,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:461,1
    - Dst: SSL_get_rbio
      Src: /src/haproxy/src/quic_openssl_compat.c:463,1
    - Dst: memset
      Src: /src/haproxy/src/quic_openssl_compat.c:466,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_openssl_compat.c:471,1
    - Dst: quic_tls_compat_create_header
      Src: /src/haproxy/src/quic_openssl_compat.c:474,1
    - Dst: BIO_write
      Src: /src/haproxy/src/quic_openssl_compat.c:475,1
    - Dst: BIO_write
      Src: /src/haproxy/src/quic_openssl_compat.c:476,1
    - Dst: QUIC_MIN
      Src: /src/haproxy/src/quic_openssl_compat.c:482,1
    - Dst: memcpy
      Src: /src/haproxy/src/quic_openssl_compat.c:483,1
    - Dst: quic_tls_compat_create_record
      Src: /src/haproxy/src/quic_openssl_compat.c:493,1
    - Dst: BIO_write
      Src: /src/haproxy/src/quic_openssl_compat.c:497,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:506,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: 508
      start: 449
    functionDepth: 3
    functionLinenumber: 449
    functionLinenumberEnd: 508
    functionName: SSL_provide_quic_data
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - memset
    - quic_tls_compat_create_header
    - BIO_write
    - SSL_get_ex_data
    - TRACE_ENTER
    - SSL_get_rbio
    - quic_tls_compat_create_record
    - QUIC_MIN
    - memcpy
    - TRACE_LEAVE
    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:512,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:515,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ssl
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 518
    functionName: SSL_process_quic_post_handshake
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - SSL_get_ex_data
    - TRACE_LEAVE
    - TRACE_ENTER
    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:522,1
    - Dst: TRACE_ENTER
      Src: /src/haproxy/src/quic_openssl_compat.c:527,1
    - Dst: TRACE_LEAVE
      Src: /src/haproxy/src/quic_openssl_compat.c:528,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: 530
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: SSL_set_quic_transport_params
    functionSourceFile: /src/haproxy/src/quic_openssl_compat.c
    functionUses: 1
    functionsReached:
    - SSL_get_ex_data
    - TRACE_LEAVE
    - TRACE_ENTER
    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:157,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:162,1
    - Dst: stktable_compatible_sample
      Src: /src/haproxy/src/proxy.c:166,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:167,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:173,1
    - Dst: stktable_alloc_data_type
      Src: /src/haproxy/src/proxy.c:175,1
    - Dst: stktable_alloc_data_type
      Src: /src/haproxy/src/proxy.c:176,1
    - Dst: in_proxies_list
      Src: /src/haproxy/src/proxy.c:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - curproxy
    - mrule
    argTypes:
    - struct proxy*
    - struct sticking_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 152
    functionDepth: 9
    functionLinenumber: 152
    functionLinenumberEnd: 182
    functionName: resolve_stick_rule
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - in_proxies_list
    - stktable_alloc_data_type
    - stktable_find_by_name
    - ha_free
    - ha_alert
    - stktable_compatible_sample
    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:189,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:190,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/proxy.c:191,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - rules
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 184
    functionDepth: 5
    functionLinenumber: 184
    functionLinenumberEnd: 194
    functionName: free_stick_rules
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - release_sample_expr
    - free
    - LIST_DELETE
    - free_acl_cond
    linkageType: ''
    returnType: void
    signature: void free_stick_rules(struct list *rules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:189,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:190,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/proxy.c:191,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 104
    functionsReached:
    - release_sample_expr
    - free
    - LIST_DELETE
    - free_acl_cond
    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:201,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:202,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:203,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:204,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - srules
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 207
    functionName: free_server_rules
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - lf_expr_deinit
    - free
    - LIST_DELETE
    - free_acl_cond
    linkageType: ''
    returnType: void
    signature: void free_server_rules(struct list *srules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:201,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:202,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:203,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:204,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 206
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 104
    functionsReached:
    - lf_expr_deinit
    - free
    - LIST_DELETE
    - free_acl_cond
    linkageType: ''
    returnType: void
    signature: void list_for_each_entry_safe(srule, sruleb, srules, list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/proxy.c:220,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:221,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/proxy.c:222,1
    - Dst: drop_file_name
      Src: /src/haproxy/src/proxy.c:223,1
    - Dst: counters_fe_shared_drop
      Src: /src/haproxy/src/proxy.c:224,1
    - Dst: counters_be_shared_drop
      Src: /src/haproxy/src/proxy.c:225,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:226,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:227,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:228,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:229,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:230,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:231,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:232,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:233,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:234,1
    - Dst: istfree
      Src: /src/haproxy/src/proxy.c:235,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:236,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:238,1
    - Dst: istfree
      Src: /src/haproxy/src/proxy.c:240,1
    - Dst: istfree
      Src: /src/haproxy/src/proxy.c:241,1
    - Dst: http_ext_clean
      Src: /src/haproxy/src/proxy.c:243,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:245,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:246,1
    - Dst: prune_acl
      Src: /src/haproxy/src/proxy.c:247,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:248,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:251,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:252,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:253,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:254,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:255,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:256,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:257,1
    - Dst: free_act_rules
      Src: /src/haproxy/src/proxy.c:259,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:262,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:263,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:264,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:265,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:267,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/proxy.c:268,1
    - Dst: free_logger
      Src: /src/haproxy/src/proxy.c:269,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:275,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/proxy.c:276,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/proxy.c:278,1
    - Dst: free_email_alert
      Src: /src/haproxy/src/proxy.c:280,1
    - Dst: stats_uri_auth_drop
      Src: /src/haproxy/src/proxy.c:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 213
    functionDepth: 7
    functionLinenumber: 213
    functionLinenumberEnd: 283
    functionName: proxy_free_common
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - cebis_item_delete
    - prune_acl
    - istfree
    - list_for_each_entry_safe
    - ha_free
    - free_email_alert
    - counters_fe_shared_drop
    - LIST_DEL_INIT
    - free_act_rules
    - chunk_destroy
    - stats_uri_auth_drop
    - counters_be_shared_drop
    - free
    - free_logger
    - lf_expr_deinit
    - drop_file_name
    - http_ext_clean
    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:303,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/proxy.c:306,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:307,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:308,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:309,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:311,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:313,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:314,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:315,1
    - Dst: guid_remove
      Src: /src/haproxy/src/proxy.c:318,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/proxy.c:320,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/proxy.c:321,1
    - Dst: free_server_rules
      Src: /src/haproxy/src/proxy.c:323,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:325,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:326,1
    - Dst: free_acl_cond
      Src: /src/haproxy/src/proxy.c:327,1
    - Dst: lf_expr_deinit
      Src: /src/haproxy/src/proxy.c:329,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:330,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:331,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:334,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:335,1
    - Dst: http_free_redirect_rule
      Src: /src/haproxy/src/proxy.c:336,1
    - Dst: free_stick_rules
      Src: /src/haproxy/src/proxy.c:339,1
    - Dst: free_stick_rules
      Src: /src/haproxy/src/proxy.c:340,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:347,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:348,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:349,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:358,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:359,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:360,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:366,1
    - Dst: struct proxy*::lbprm::server_deinit
      Src: /src/haproxy/src/proxy.c:370,1
    - Dst: srv_drop
      Src: /src/haproxy/src/proxy.c:372,1
    - Dst: srv_free_params
      Src: /src/haproxy/src/proxy.c:379,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:380,1
    - Dst: struct proxy*::lbprm::proxy_deinit
      Src: /src/haproxy/src/proxy.c:384,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:386,1
    - Dst: guid_remove
      Src: /src/haproxy/src/proxy.c:387,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:388,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:389,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:390,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:391,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:392,1
    - Dst: counters_fe_shared_drop
      Src: /src/haproxy/src/proxy.c:394,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:395,1
    - Dst: task_destroy
      Src: /src/haproxy/src/proxy.c:397,1
    - Dst: EXTRA_COUNTERS_FREE
      Src: /src/haproxy/src/proxy.c:399,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:400,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/proxy.c:404,1
    - Dst: struct bind_conf*::xprt::destroy_bind_conf
      Src: /src/haproxy/src/proxy.c:406,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:407,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:408,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:409,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/proxy.c:410,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:411,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:412,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:413,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:414,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:416,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:418,1
    - Dst: flt_deinit
      Src: /src/haproxy/src/proxy.c:421,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:423,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:426,1
    - Dst: task_destroy
      Src: /src/haproxy/src/proxy.c:428,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:430,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:431,1
    - Dst: stktable_deinit
      Src: /src/haproxy/src/proxy.c:433,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:434,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:435,1
    - Dst: HA_RWLOCK_DESTROY
      Src: /src/haproxy/src/proxy.c:437,1
    - Dst: HA_RWLOCK_DESTROY
      Src: /src/haproxy/src/proxy.c:438,1
    - Dst: proxy_unref_defaults
      Src: /src/haproxy/src/proxy.c:440,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 106
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 288
    functionDepth: 8
    functionLinenumber: 288
    functionLinenumberEnd: 441
    functionName: deinit_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - flt_deinit
    - free_stick_rules
    - EXTRA_COUNTERS_FREE
    - task_destroy
    - free_acl_cond
    - lf_expr_deinit
    - proxy_free_common
    - proxy_unref_defaults
    - list_for_each_entry_safe
    - struct bind_conf*::xprt::destroy_bind_conf
    - ha_free
    - pool_destroy
    - struct proxy*::lbprm::proxy_deinit
    - srv_free
    - stktable_deinit
    - srv_drop
    - guid_remove
    - counters_fe_shared_drop
    - struct proxy*::lbprm::server_deinit
    - release_sample_expr
    - free_server_rules
    - http_free_redirect_rule
    - srv_free_params
    - LIST_DELETE
    - list_for_each_entry
    - free
    - HA_RWLOCK_DESTROY
    linkageType: ''
    returnType: void
    signature: void deinit_proxy(struct proxy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: deinit_proxy
      Src: /src/haproxy/src/proxy.c:446,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 9
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: free_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 8
    functionsReached:
    - ha_free
    - deinit_proxy
    linkageType: ''
    returnType: void
    signature: void free_proxy(struct proxy *p)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - cap
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 469
    functionName: proxy_cap_str
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 7
    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: 491
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 491
    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: make_word_fingerprint
      Src: /src/haproxy/src/proxy.c:507,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/proxy.c:510,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/proxy.c:511,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/proxy.c:519,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/proxy.c:520,1
    - Dst: make_word_fingerprint
      Src: /src/haproxy/src/proxy.c:528,1
    - Dst: word_fingerprint_distance
      Src: /src/haproxy/src/proxy.c:529,1
    - Dst: strlen
      Src: /src/haproxy/src/proxy.c:537,1
    - Dst: strlen
      Src: /src/haproxy/src/proxy.c:537,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - word
    - extra
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 499
    functionDepth: 2
    functionLinenumber: 499
    functionLinenumberEnd: 540
    functionName: proxy_find_best_option
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - word_fingerprint_distance
    - strlen
    - make_word_fingerprint
    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:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - from
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 557
    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:581,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:585,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:590,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:594,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:598,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:602,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:606,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:611,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:616,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:620,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:624,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:628,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:632,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:636,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:637,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:639,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:640,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:642,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:643,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:646,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:655,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:659,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:661,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:666,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:671,1
    - Dst: warn_if_lower
      Src: /src/haproxy/src/proxy.c:675,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:676,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:677,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:682,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:683,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:688,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:693,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/proxy.c:697,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: 699
      start: 568
    functionDepth: 5
    functionLinenumber: 568
    functionLinenumberEnd: 699
    functionName: proxy_parse_timeout
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - strcmp
    - warn_if_lower
    - parse_time_err
    - memprintf
    - proxy_type_str
    - MS_TO_TICKS
    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:720,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:725,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:730,1
    - Dst: strtoul
      Src: /src/haproxy/src/proxy.c:734,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:736,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:741,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:742,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:746,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: 752
      start: 708
    functionDepth: 5
    functionLinenumber: 708
    functionLinenumberEnd: 752
    functionName: proxy_parse_rate_limit
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - strtoul
    - memprintf
    - strcmp
    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:772,1
    - Dst: strtol
      Src: /src/haproxy/src/proxy.c:776,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:778,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:783,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:784,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: 791
      start: 761
    functionDepth: 5
    functionLinenumber: 761
    functionLinenumberEnd: 791
    functionName: proxy_parse_max_ka_queue
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - memprintf
    - strtol
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:806,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:812,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:818,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:827,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:834,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:835,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:836,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:841,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:842,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:848,1
    - Dst: strtol
      Src: /src/haproxy/src/proxy.c:855,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:857,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:864,1
    - Dst: calloc
      Src: /src/haproxy/src/proxy.c:869,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:871,1
    - Dst: create_pool
      Src: /src/haproxy/src/proxy.c:877,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:879,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:884,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:892,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    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: 895
      start: 800
    functionDepth: 5
    functionLinenumber: 800
    functionLinenumberEnd: 895
    functionName: proxy_parse_declare
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - strcmp
    - create_pool
    - memprintf
    - calloc
    - strtol
    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:906,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:910,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:915,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:917,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:919,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:921,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:923,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:925,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:927,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:929,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:931,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:933,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:935,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:937,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:939,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:941,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:943,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:945,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:947,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:949,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:954,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:956,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:960,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: 968
      start: 898
    functionDepth: 5
    functionLinenumber: 898
    functionLinenumberEnd: 968
    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:977,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:981,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:987,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:989,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:991,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:994,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: 999
      start: 971
    functionDepth: 5
    functionLinenumber: 971
    functionLinenumberEnd: 999
    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:1014,1
    - Dst: strtol
      Src: /src/haproxy/src/proxy.c:1018,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1020,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1024,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1026,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1027,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1031,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1033,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1034,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1040,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: 1045
      start: 1003
    functionDepth: 5
    functionLinenumber: 1003
    functionLinenumberEnd: 1045
    functionName: proxy_parse_tcpka_cnt
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - memprintf
    - strtol
    - strcmp
    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:1061,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:1064,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1066,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1071,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1076,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1080,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1082,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1083,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1087,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1089,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1090,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1096,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: 1101
      start: 1050
    functionDepth: 5
    functionLinenumber: 1050
    functionLinenumberEnd: 1101
    functionName: proxy_parse_tcpka_idle
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - parse_time_err
    - memprintf
    - strcmp
    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:1117,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:1120,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1122,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1127,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1132,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1136,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1138,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1139,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:1143,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1145,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1146,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1152,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: 1157
      start: 1106
    functionDepth: 5
    functionLinenumber: 1106
    functionLinenumberEnd: 1157
    functionName: proxy_parse_tcpka_intvl
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_type_str
    - parse_time_err
    - memprintf
    - strcmp
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1168,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1173,1
    - Dst: guid_insert
      Src: /src/haproxy/src/proxy.c:1178,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1179,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1180,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: 1185
      start: 1160
    functionDepth: 9
    functionLinenumber: 1160
    functionLinenumberEnd: 1185
    functionName: proxy_parse_guid
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - guid_insert
    - ha_free
    - memprintf
    - ha_alert
    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:1195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1191
    functionDepth: 1
    functionLinenumber: 1191
    functionLinenumberEnd: 1196
    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:1206,1
    - Dst: ceb32_item_next_dup
      Src: /src/haproxy/src/proxy.c:1207,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 3
    argNames:
    - id
    - cap
    - table
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1217
    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:1230,1
    - Dst: atoi
      Src: /src/haproxy/src/proxy.c:1230,1
    - Dst: cebis_item_lookup
      Src: /src/haproxy/src/proxy.c:1238,1
    - Dst: cebis_item_next_dup
      Src: /src/haproxy/src/proxy.c:1239,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 16
    argCount: 3
    argNames:
    - name
    - cap
    - table
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1250
    functionName: proxy_find_by_name
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 7
    functionsReached:
    - cebis_item_lookup
    - proxy_find_by_id
    - atoi
    - 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:1304,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/proxy.c:1315,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/proxy.c:1362,1
    - Dst: proxy_find_by_id
      Src: /src/haproxy/src/proxy.c:1368,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 4
    argNames:
    - cap
    - name
    - id
    - diff
    argTypes:
    - int
    - char*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1290
    functionDepth: 3
    functionLinenumber: 1290
    functionLinenumberEnd: 1378
    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:1389,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1390,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1395,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1396,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1401,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1403,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1408,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1410,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:1415,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1386
    functionDepth: 9
    functionLinenumber: 1386
    functionLinenumberEnd: 1421
    functionName: proxy_cfg_ensure_no_http
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    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:1434,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - curproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1429
    functionDepth: 9
    functionLinenumber: 1429
    functionLinenumberEnd: 1439
    functionName: proxy_cfg_ensure_no_log
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - proxy_type_str
    - ha_warning
    linkageType: ''
    returnType: int
    signature: int proxy_cfg_ensure_no_log(struct proxy *curproxy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/haproxy/src/proxy.c:1447,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1449,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1450,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1451,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1452,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1453,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1454,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1455,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1456,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1457,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1458,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1459,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1460,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1461,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1462,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1463,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1464,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1466,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/proxy.c:1468,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1469,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1470,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1471,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1472,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1473,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1474,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1475,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/proxy.c:1476,1
    - Dst: MT_LIST_INIT
      Src: /src/haproxy/src/proxy.c:1478,1
    - Dst: proxy_reset_timeouts
      Src: /src/haproxy/src/proxy.c:1485,1
    - Dst: guid_init
      Src: /src/haproxy/src/proxy.c:1494,1
    - Dst: HA_RWLOCK_INIT
      Src: /src/haproxy/src/proxy.c:1499,1
    - Dst: proxy_preset_defaults
      Src: /src/haproxy/src/proxy.c:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1445
    functionDepth: 1
    functionLinenumber: 1445
    functionLinenumberEnd: 1503
    functionName: init_new_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - HA_RWLOCK_INIT
    - memset
    - proxy_preset_defaults
    - LIST_INIT
    - guid_init
    - MT_LIST_INIT
    - proxy_reset_timeouts
    linkageType: ''
    returnType: void
    signature: void init_new_proxy(struct proxy *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/proxy.c:1510,1
    - Dst: queue_init
      Src: /src/haproxy/src/proxy.c:1512,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1515
      start: 1506
    functionDepth: 1
    functionLinenumber: 1506
    functionLinenumberEnd: 1515
    functionName: proxy_init_per_thr
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - queue_init
    - calloc
    linkageType: ''
    returnType: int
    signature: int proxy_init_per_thr(struct proxy *px)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:1532,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:1533,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:1534,1
    - Dst: lf_expr_init
      Src: /src/haproxy/src/proxy.c:1535,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - defproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1518
    functionDepth: 2
    functionLinenumber: 1518
    functionLinenumberEnd: 1542
    functionName: proxy_preset_defaults
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - lf_expr_init
    linkageType: ''
    returnType: void
    signature: void proxy_preset_defaults(struct proxy *defproxy)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: proxy_free_common
      Src: /src/haproxy/src/proxy.c:1553,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1557,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1558,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:1559,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:1564,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:1565,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:1566,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:1573,1
    - Dst: pool_destroy
      Src: /src/haproxy/src/proxy.c:1574,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:1575,1
    - Dst: proxy_release_conf_errors
      Src: /src/haproxy/src/proxy.c:1579,1
    - Dst: deinit_proxy_tcpcheck
      Src: /src/haproxy/src/proxy.c:1580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - defproxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1549
    functionDepth: 8
    functionLinenumber: 1549
    functionLinenumberEnd: 1581
    functionName: proxy_free_defaults
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - proxy_release_conf_errors
    - ha_free
    - pool_destroy
    - srv_free
    - free
    - proxy_free_common
    - deinit_proxy_tcpcheck
    linkageType: ''
    returnType: void
    signature: void proxy_free_defaults(struct proxy *defproxy)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:1593,1
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/proxy.c:1594,1
    - Dst: proxy_free_defaults
      Src: /src/haproxy/src/proxy.c:1596,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:1597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1587
    functionDepth: 9
    functionLinenumber: 1587
    functionLinenumberEnd: 1598
    functionName: proxy_destroy_defaults
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - free
    - BUG_ON
    - proxy_free_defaults
    - cebis_item_delete
    linkageType: ''
    returnType: void
    signature: void proxy_destroy_defaults(struct proxy *px)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_first
      Src: /src/haproxy/src/proxy.c:1607,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:1608,1
    - Dst: cebis_item_next
      Src: /src/haproxy/src/proxy.c:1609,1
    - Dst: proxy_destroy_defaults
      Src: /src/haproxy/src/proxy.c:1611,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:1616,1
    - Dst: proxy_destroy_defaults
      Src: /src/haproxy/src/proxy.c:1619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1622
      start: 1603
    functionDepth: 10
    functionLinenumber: 1603
    functionLinenumberEnd: 1622
    functionName: proxy_destroy_all_unref_defaults
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - cebis_item_next
    - proxy_destroy_defaults
    - BUG_ON
    - cebis_item_first
    linkageType: ''
    returnType: void
    signature: void proxy_destroy_all_unref_defaults()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cebis_item_delete
      Src: /src/haproxy/src/proxy.c:1633,1
    - Dst: proxy_destroy_defaults
      Src: /src/haproxy/src/proxy.c:1639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1628
    functionDepth: 10
    functionLinenumber: 1628
    functionLinenumberEnd: 1640
    functionName: proxy_unref_or_destroy_defaults
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - proxy_destroy_defaults
    - cebis_item_delete
    linkageType: ''
    returnType: void
    signature: void proxy_unref_or_destroy_defaults(struct proxy *px)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:1651,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - px
    - defpx
    argTypes:
    - struct proxy*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1654
    functionName: proxy_ref_defaults
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - BUG_ON
    linkageType: ''
    returnType: void
    signature: void proxy_ref_defaults(struct proxy *px, struct proxy *defpx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: proxy_destroy_defaults
      Src: /src/haproxy/src/proxy.c:1666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1661
    functionDepth: 10
    functionLinenumber: 1661
    functionLinenumberEnd: 1668
    functionName: proxy_unref_defaults
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - proxy_destroy_defaults
    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:1680,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1683,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1685,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/proxy.c:1691,1
    - Dst: proxy_store_name
      Src: /src/haproxy/src/proxy.c:1694,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/proxy.c:1697,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1703,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:1705,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1706,1
    - Dst: counters_fe_shared_drop
      Src: /src/haproxy/src/proxy.c:1707,1
    - Dst: counters_be_shared_drop
      Src: /src/haproxy/src/proxy.c:1708,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 4
    argNames:
    - px
    - name
    - cap
    - errmsg
    argTypes:
    - struct proxy*
    - char*
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1678
    functionDepth: 5
    functionLinenumber: 1678
    functionLinenumberEnd: 1711
    functionName: setup_new_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - strdup
    - init_new_proxy
    - ha_free
    - proxy_store_name
    - counters_fe_shared_drop
    - LIST_APPEND
    - ns_to_sec
    - srv_free
    - counters_be_shared_drop
    - memprintf
    linkageType: ''
    returnType: int
    signature: int setup_new_proxy(struct proxy *px, const char *name, unsigned int
      cap, char **errmsg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/src/proxy.c:1720,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1721,1
    - Dst: setup_new_proxy
      Src: /src/haproxy/src/proxy.c:1725,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:1737,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:1738,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - name
    - cap
    - errmsg
    argTypes:
    - char*
    - unsigned int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1716
    functionDepth: 6
    functionLinenumber: 1716
    functionLinenumberEnd: 1740
    functionName: alloc_new_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 9
    functionsReached:
    - srv_free
    - free
    - memprintf
    - setup_new_proxy
    - calloc
    linkageType: ''
    returnType: struct proxy
    signature: struct proxy *alloc_new_proxy(const char *name, unsigned int cap, char
      **errmsg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: counters_fe_shared_prepare
      Src: /src/haproxy/src/proxy.c:1755,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1756,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1757,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1758,1
    - Dst: counters_be_shared_prepare
      Src: /src/haproxy/src/proxy.c:1768,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1769,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1770,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1771,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:1778,1
    - Dst: counters_fe_shared_prepare
      Src: /src/haproxy/src/proxy.c:1780,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1781,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:1782,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/proxy.c:1783,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:1784,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1793
      start: 1743
    functionDepth: 9
    functionLinenumber: 1743
    functionLinenumberEnd: 1793
    functionName: proxy_postcheck
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - proxy_type_str
    - counters_be_shared_prepare
    - ha_free
    - ha_alert
    - counters_fe_shared_prepare
    linkageType: ''
    returnType: int
    signature: int proxy_postcheck(struct proxy *px)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: srv_alloc
      Src: /src/haproxy/src/proxy.c:1814,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1816,1
    - Dst: srv_settings_init
      Src: /src/haproxy/src/proxy.c:1821,1
    - Dst: srv_settings_cpy
      Src: /src/haproxy/src/proxy.c:1823,1
    - Dst: http_ext_clean
      Src: /src/haproxy/src/proxy.c:1835,1
    - Dst: http_ext_dup
      Src: /src/haproxy/src/proxy.c:1836,1
    - Dst: isttest
      Src: /src/haproxy/src/proxy.c:1838,1
    - Dst: istdup
      Src: /src/haproxy/src/proxy.c:1839,1
    - Dst: proxy_dup_default_conf_errors
      Src: /src/haproxy/src/proxy.c:1842,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1843,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:1844,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/proxy.c:1871,1
    - Dst: dup_tcpcheck_vars
      Src: /src/haproxy/src/proxy.c:1872,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1874,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1882,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1886,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1888,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1897,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1901,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1904,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1911,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1926,1
    - Dst: isttest
      Src: /src/haproxy/src/proxy.c:1944,1
    - Dst: istdup
      Src: /src/haproxy/src/proxy.c:1945,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:1947,1
    - Dst: lf_expr_dup
      Src: /src/haproxy/src/proxy.c:1949,1
    - Dst: lf_expr_dup
      Src: /src/haproxy/src/proxy.c:1950,1
    - Dst: lf_expr_dup
      Src: /src/haproxy/src/proxy.c:1951,1
    - Dst: stats_uri_auth_drop
      Src: /src/haproxy/src/proxy.c:1970,1
    - Dst: stats_uri_auth_take
      Src: /src/haproxy/src/proxy.c:1971,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:1975,1
    - Dst: dup_logger
      Src: /src/haproxy/src/proxy.c:1976,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1979,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/proxy.c:1982,1
    - Dst: lf_expr_dup
      Src: /src/haproxy/src/proxy.c:1985,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/proxy.c:1987,1
    - Dst: isttest
      Src: /src/haproxy/src/proxy.c:1990,1
    - Dst: istdup
      Src: /src/haproxy/src/proxy.c:1991,1
    - Dst: isttest
      Src: /src/haproxy/src/proxy.c:1993,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:1994,1
    - Dst: calloc
      Src: /src/haproxy/src/proxy.c:2002,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2004,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:2017,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:2019,1
    - Dst: BUG_ON
      Src: /src/haproxy/src/proxy.c:2021,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:2023,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:2025,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:2027,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:2029,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 177
    argCount: 3
    argNames:
    - curproxy
    - defproxy
    - errmsg
    argTypes:
    - struct proxy*
    - struct proxy*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 1800
    functionDepth: 7
    functionLinenumber: 1800
    functionLinenumberEnd: 2037
    functionName: proxy_defproxy_cpy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - srv_settings_init
    - http_ext_clean
    - srv_settings_cpy
    - lf_expr_dup
    - http_ext_dup
    - LIST_ISEMPTY
    - calloc
    - srv_alloc
    - strdup
    - dup_tcpcheck_vars
    - stats_uri_auth_drop
    - stats_uri_auth_take
    - BUG_ON
    - LIST_APPEND
    - memprintf
    - istdup
    - list_for_each_entry
    - chunk_dup
    - free
    - isttest
    - dup_logger
    - proxy_dup_default_conf_errors
    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:2050,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2051,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2052,1
    - Dst: proxy_defproxy_cpy
      Src: /src/haproxy/src/proxy.c:2057,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2058,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:2059,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2061,1
    - Dst: copy_file_name
      Src: /src/haproxy/src/proxy.c:2066,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: 2070
      start: 2043
    functionDepth: 9
    functionLinenumber: 2043
    functionLinenumberEnd: 2070
    functionName: parse_new_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - ha_free
    - copy_file_name
    - free
    - proxy_defproxy_cpy
    - ha_alert
    - alloc_new_proxy
    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: 2080
      start: 2075
    functionDepth: 0
    functionLinenumber: 2075
    functionLinenumberEnd: 2080
    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: 2090
      start: 2085
    functionDepth: 0
    functionLinenumber: 2085
    functionLinenumberEnd: 2090
    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:2118,1
    - Dst: COUNTERS_SHARED_TOTAL
      Src: /src/haproxy/src/proxy.c:2120,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2124,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:2128,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/proxy.c:2132,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/proxy.c:2135,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 20
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2097
    functionDepth: 10
    functionLinenumber: 2097
    functionLinenumberEnd: 2136
    functionName: proxy_cond_disable
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - task_wakeup
    - ha_warning
    - COUNTERS_SHARED_TOTAL
    - send_log
    linkageType: ''
    returnType: void
    signature: void proxy_cond_disable(struct proxy *p)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/src/proxy.c:2161,1
    - Dst: stktable_trash_oldest
      Src: /src/haproxy/src/proxy.c:2181,1
    - Dst: pool_gc
      Src: /src/haproxy/src/proxy.c:2184,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/proxy.c:2191,1
    - Dst: tick_first
      Src: /src/haproxy/src/proxy.c:2200,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:2200,1
    - Dst: unlikely
      Src: /src/haproxy/src/proxy.c:2209,1
    - Dst: COUNTERS_SHARED_TOTAL_ARG2
      Src: /src/haproxy/src/proxy.c:2213,1
    - Dst: tick_first
      Src: /src/haproxy/src/proxy.c:2220,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:2220,1
    - Dst: dequeue_proxy_listeners
      Src: /src/haproxy/src/proxy.c:2225,1
    - Dst: task_queue
      Src: /src/haproxy/src/proxy.c:2228,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2144
    functionDepth: 5
    functionLinenumber: 2144
    functionLinenumberEnd: 2230
    functionName: manage_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - tick_add
    - unlikely
    - COUNTERS_SHARED_TOTAL_ARG2
    - dequeue_proxy_listeners
    - task_wakeup
    - task_queue
    - pool_gc
    - tick_first
    - stktable_trash_oldest
    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:2240,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:2243,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2245,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2250,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2255,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: 2259
      start: 2233
    functionDepth: 5
    functionLinenumber: 2233
    functionLinenumberEnd: 2259
    functionName: proxy_parse_grace
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    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:2268,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:2271,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2273,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2278,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2283,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: 2287
      start: 2261
    functionDepth: 5
    functionLinenumber: 2261
    functionLinenumberEnd: 2287
    functionName: proxy_parse_hard_stop_after
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    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:2296,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:2303,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/proxy.c:2309,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2311,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2316,1
    - Dst: memprintf
      Src: /src/haproxy/src/proxy.c:2321,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: 2327
      start: 2289
    functionDepth: 5
    functionLinenumber: 2289
    functionLinenumberEnd: 2327
    functionName: proxy_parse_close_spread_time
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - parse_time_err
    - memprintf
    - strcmp
    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:2336,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:2337,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/src/proxy.c:2340,1
    - Dst: wake_thread
      Src: /src/haproxy/src/proxy.c:2341,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2346,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:2347,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2351,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:2353,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/proxy.c:2359,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2362,1
    - Dst: stream_shutdown
      Src: /src/haproxy/src/proxy.c:2363,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:2367,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:2370,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/src/proxy.c:2370,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2329
    functionDepth: 10
    functionLinenumber: 2329
    functionLinenumberEnd: 2372
    functionName: hard_stop
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - tick_add
    - ha_warning
    - _HA_ATOMIC_LOAD
    - list_for_each_entry
    - thread_release
    - thread_isolate
    - stream_shutdown
    - send_log
    - MS_TO_TICKS
    - wake_thread
    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:2383,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:2384,1
    - Dst: tick_isset
      Src: /src/haproxy/src/proxy.c:2388,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/proxy.c:2389,1
    - Dst: task_schedule
      Src: /src/haproxy/src/proxy.c:2392,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:2392,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2395,1
    - Dst: thread_isolate
      Src: /src/haproxy/src/proxy.c:2400,1
    - Dst: protocol_stop_now
      Src: /src/haproxy/src/proxy.c:2403,1
    - Dst: thread_release
      Src: /src/haproxy/src/proxy.c:2405,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:2410,1
    - Dst: proxy_cond_disable
      Src: /src/haproxy/src/proxy.c:2411,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:2412,1
    - Dst: signal_handler
      Src: /src/haproxy/src/proxy.c:2417,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2375
    functionDepth: 11
    functionLinenumber: 2375
    functionLinenumberEnd: 2418
    functionName: do_soft_stop_now
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - tick_add
    - thread_release
    - thread_isolate
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - tick_isset
    - proxy_cond_disable
    - task_new_anywhere
    - ha_alert
    - protocol_stop_now
    - task_schedule
    - signal_handler
    linkageType: ''
    returnType: void
    signature: void do_soft_stop_now()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_notice
      Src: /src/haproxy/src/proxy.c:2423,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:2424,1
    - Dst: do_soft_stop_now
      Src: /src/haproxy/src/proxy.c:2425,1
    - Dst: task_destroy
      Src: /src/haproxy/src/proxy.c:2426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - t
    - context
    - state
    argTypes:
    - struct task*
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2428
      start: 2421
    functionDepth: 12
    functionLinenumber: 2421
    functionLinenumberEnd: 2428
    functionName: grace_expired
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - ha_notice
    - do_soft_stop_now
    - task_destroy
    - send_log
    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:2440,1
    - Dst: task_new_anywhere
      Src: /src/haproxy/src/proxy.c:2441,1
    - Dst: ha_notice
      Src: /src/haproxy/src/proxy.c:2443,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:2444,1
    - Dst: task_schedule
      Src: /src/haproxy/src/proxy.c:2446,1
    - Dst: tick_add
      Src: /src/haproxy/src/proxy.c:2446,1
    - Dst: ha_alert
      Src: /src/haproxy/src/proxy.c:2450,1
    - Dst: do_soft_stop_now
      Src: /src/haproxy/src/proxy.c:2455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2456
      start: 2434
    functionDepth: 12
    functionLinenumber: 2434
    functionLinenumberEnd: 2456
    functionName: soft_stop
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - tick_add
    - do_soft_stop_now
    - send_log
    - tick_isset
    - ha_notice
    - task_new_anywhere
    - ha_alert
    - task_schedule
    linkageType: ''
    returnType: void
    signature: void soft_stop(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:2469,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2474,1
    - Dst: suspend_listener
      Src: /src/haproxy/src/proxy.c:2475,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2478,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:2478,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:2479,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:2479,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:2480,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:2484,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2486
      start: 2465
    functionDepth: 10
    functionLinenumber: 2465
    functionLinenumberEnd: 2486
    functionName: pause_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - ha_warning
    - list_for_each_entry
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - send_log
    - proxy_cap_str
    - 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:2501,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2503,1
    - Dst: stop_listener
      Src: /src/haproxy/src/proxy.c:2504,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:2511,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2497
    functionDepth: 2
    functionLinenumber: 2497
    functionLinenumberEnd: 2512
    functionName: stop_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 5
    functionsReached:
    - stop_listener
    - HA_RWLOCK_WRUNLOCK
    - list_for_each_entry
    - 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:2526,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2532,1
    - Dst: resume_listener
      Src: /src/haproxy/src/proxy.c:2533,1
    - Dst: get_host_port
      Src: /src/haproxy/src/proxy.c:2536,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2538,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:2539,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:2540,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:2541,1
    - Dst: ha_warning
      Src: /src/haproxy/src/proxy.c:2544,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:2545,1
    - Dst: send_log
      Src: /src/haproxy/src/proxy.c:2546,1
    - Dst: proxy_cap_str
      Src: /src/haproxy/src/proxy.c:2547,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:2557,1
    - Dst: pause_proxy
      Src: /src/haproxy/src/proxy.c:2559,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:2563,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - p
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2565
      start: 2521
    functionDepth: 11
    functionLinenumber: 2521
    functionLinenumberEnd: 2565
    functionName: resume_proxy
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 1
    functionsReached:
    - ha_warning
    - pause_proxy
    - list_for_each_entry
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - send_log
    - proxy_cap_str
    - resume_listener
    - get_host_port
    linkageType: ''
    returnType: int
    signature: int resume_proxy(struct proxy *p)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: flt_set_stream_backend
      Src: /src/haproxy/src/proxy.c:2580,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/src/proxy.c:2585,1
    - Dst: HA_ATOMIC_ADD_FETCH
      Src: /src/haproxy/src/proxy.c:2586,1
    - Dst: proxy_inc_be_ctr
      Src: /src/haproxy/src/proxy.c:2587,1
    - Dst: strm_fe
      Src: /src/haproxy/src/proxy.c:2600,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/proxy.c:2606,1
    - Dst: strm_fe
      Src: /src/haproxy/src/proxy.c:2606,1
    - Dst: strm_li
      Src: /src/haproxy/src/proxy.c:2612,1
    - Dst: strm_li
      Src: /src/haproxy/src/proxy.c:2612,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/proxy.c:2614,1
    - Dst: stream_set_http_mode
      Src: /src/haproxy/src/proxy.c:2617,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/proxy.c:2620,1
    - Dst: unlikely
      Src: /src/haproxy/src/proxy.c:2632,1
    - Dst: http_create_txn
      Src: /src/haproxy/src/proxy.c:2632,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 38
    argCount: 2
    argNames:
    - s
    - be
    argTypes:
    - struct stream*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2643
      start: 2573
    functionDepth: 9
    functionLinenumber: 2573
    functionLinenumberEnd: 2643
    functionName: stream_set_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - IS_HTX_STRM
    - HA_ATOMIC_ADD_FETCH
    - unlikely
    - http_create_txn
    - proxy_inc_be_ctr
    - strm_fe
    - HA_ATOMIC_UPDATE_MAX
    - strm_li
    - stream_set_http_mode
    - flt_set_stream_backend
    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:2677,1
    - Dst: b_data
      Src: /src/haproxy/src/proxy.c:2679,1
    - Dst: malloc
      Src: /src/haproxy/src/proxy.c:2681,1
    - Dst: b_size
      Src: /src/haproxy/src/proxy.c:2688,1
    - Dst: b_peek_ofs
      Src: /src/haproxy/src/proxy.c:2688,1
    - Dst: memcpy
      Src: /src/haproxy/src/proxy.c:2693,1
    - Dst: b_peek
      Src: /src/haproxy/src/proxy.c:2693,1
    - Dst: memcpy
      Src: /src/haproxy/src/proxy.c:2696,1
    - Dst: b_orig
      Src: /src/haproxy/src/proxy.c:2696,1
    - Dst: objt_server
      Src: /src/haproxy/src/proxy.c:2701,1
    - Dst: objt_conn
      Src: /src/haproxy/src/proxy.c:2703,1
    - Dst: conn_get_src
      Src: /src/haproxy/src/proxy.c:2703,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/proxy.c:2703,1
    - Dst: __objt_conn
      Src: /src/haproxy/src/proxy.c:2704,1
    - Dst: memset
      Src: /src/haproxy/src/proxy.c:2706,1
    - Dst: b_wrap
      Src: /src/haproxy/src/proxy.c:2708,1
    - Dst: b_peek
      Src: /src/haproxy/src/proxy.c:2708,1
    - Dst: memset
      Src: /src/haproxy/src/proxy.c:2722,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:2728,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/proxy.c:2730,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/src/proxy.c:2732,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:2734,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:2735,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    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: 2736
      start: 2664
    functionDepth: 1
    functionLinenumber: 2664
    functionLinenumberEnd: 2736
    functionName: proxy_capture_error
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 2
    functionsReached:
    - b_peek_ofs
    - b_orig
    - __objt_conn
    - objt_conn
    - memset
    - HA_RWLOCK_WRLOCK
    - HA_ATOMIC_XCHG
    - b_data
    - HA_RWLOCK_WRUNLOCK
    - ha_free
    - objt_server
    - conn_get_src
    - malloc
    - HA_ATOMIC_FETCH_ADD
    - b_peek
    - b_wrap
    - b_size
    - memcpy
    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:2765,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:2775,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2810
      start: 2744
    functionDepth: 0
    functionLinenumber: 2744
    functionLinenumberEnd: 2810
    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:2826,1
    - Dst: srv_free
      Src: /src/haproxy/src/proxy.c:2827,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2831
      start: 2815
    functionDepth: 1
    functionLinenumber: 2815
    functionLinenumberEnd: 2831
    functionName: post_section_px_cleanup
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - srv_free
    - ha_free
    linkageType: ''
    returnType: int
    signature: int post_section_px_cleanup()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:2880,1
    - Dst: proxy_fe_by_name
      Src: /src/haproxy/src/proxy.c:2884,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:2886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - appctx
    - arg
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2875
    functionDepth: 1
    functionLinenumber: 2875
    functionLinenumberEnd: 2890
    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:2901,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/proxy.c:2905,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:2907,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - appctx
    - arg
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2896
    functionDepth: 1
    functionLinenumber: 2896
    functionLinenumberEnd: 2911
    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:2921,1
    - Dst: proxy_be_by_name
      Src: /src/haproxy/src/proxy.c:2929,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:2932,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: 2938
      start: 2919
    functionDepth: 1
    functionLinenumber: 2919
    functionLinenumberEnd: 2938
    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:2947,1
    - Dst: memcpy
      Src: /src/haproxy/src/proxy.c:2950,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - addr
    - addr_str
    argTypes:
    - struct sockaddr_storage*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2941
    functionDepth: 1
    functionLinenumber: 2941
    functionLinenumberEnd: 2953
    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:2981,1
    - Dst: dump_server_addr
      Src: /src/haproxy/src/proxy.c:2982,1
    - Dst: dump_server_addr
      Src: /src/haproxy/src/proxy.c:2983,1
    - Dst: ns_to_sec
      Src: /src/haproxy/src/proxy.c:2985,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:2995,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:3004,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:3005,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/proxy.c:3006,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:3012,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:3019,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:3021,1
    - Dst: HA_ANON_CLI
      Src: /src/haproxy/src/proxy.c:3021,1
    - Dst: hash_ipanon
      Src: /src/haproxy/src/proxy.c:3022,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3030,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3032,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:3035,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3040
      start: 2963
    functionDepth: 5
    functionLinenumber: 2963
    functionLinenumberEnd: 3040
    functionName: dump_servers_state
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - chunk_appendf
    - HA_ANON_CLI
    - ns_to_sec
    - hash_ipanon
    - applet_putchk
    - dump_server_addr
    linkageType: ''
    returnType: int
    signature: int dump_servers_state(struct appctx *appctx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:3053,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:3055,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:3059,1
    - Dst: dump_servers_state
      Src: /src/haproxy/src/proxy.c:3072,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3081
      start: 3046
    functionDepth: 6
    functionLinenumber: 3046
    functionLinenumberEnd: 3081
    functionName: cli_io_handler_servers_state
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - applet_putchk
    - dump_servers_state
    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:3090,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/proxy.c:3093,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:3094,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3107,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:3108,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3113
      start: 3086
    functionDepth: 1
    functionLinenumber: 3086
    functionLinenumberEnd: 3113
    functionName: cli_io_handler_show_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - chunk_printf
    - chunk_appendf
    - applet_putchk
    - 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:3124,1
    - Dst: cli_find_backend
      Src: /src/haproxy/src/proxy.c:3127,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3132,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:3137,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:3139,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/proxy.c:3142,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/proxy.c:3143,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/proxy.c:3144,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: 3148
      start: 3119
    functionDepth: 6
    functionLinenumber: 3119
    functionLinenumberEnd: 3148
    functionName: cli_parse_enable_dyncookie_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - cli_err
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - cli_find_backend
    - srv_set_dyncookie
    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:3159,1
    - Dst: cli_find_backend
      Src: /src/haproxy/src/proxy.c:3162,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3167,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:3172,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:3174,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/proxy.c:3177,1
    - Dst: ha_free
      Src: /src/haproxy/src/proxy.c:3179,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/proxy.c:3180,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: 3184
      start: 3154
    functionDepth: 2
    functionLinenumber: 3154
    functionLinenumberEnd: 3184
    functionName: cli_parse_disable_dyncookie_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - cli_has_level
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - ha_free
    - cli_err
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - cli_find_backend
    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:3196,1
    - Dst: cli_find_backend
      Src: /src/haproxy/src/proxy.c:3199,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3204,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3207,1
    - Dst: strdup
      Src: /src/haproxy/src/proxy.c:3209,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3211,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:3216,1
    - Dst: free
      Src: /src/haproxy/src/proxy.c:3217,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:3219,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/proxy.c:3222,1
    - Dst: srv_set_dyncookie
      Src: /src/haproxy/src/proxy.c:3223,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/proxy.c:3224,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: 3228
      start: 3190
    functionDepth: 6
    functionLinenumber: 3190
    functionLinenumberEnd: 3228
    functionName: cli_parse_set_dyncookie_key_backend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - strdup
    - cli_has_level
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - cli_err
    - free
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - cli_find_backend
    - srv_set_dyncookie
    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:3240,1
    - Dst: cli_find_frontend
      Src: /src/haproxy/src/proxy.c:3243,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3248,1
    - Dst: atoi
      Src: /src/haproxy/src/proxy.c:3250,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3252,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/proxy.c:3257,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/proxy.c:3260,1
    - Dst: relax_listener
      Src: /src/haproxy/src/proxy.c:3262,1
    - Dst: dequeue_proxy_listeners
      Src: /src/haproxy/src/proxy.c:3266,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/proxy.c:3268,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: 3271
      start: 3234
    functionDepth: 5
    functionLinenumber: 3234
    functionLinenumberEnd: 3271
    functionName: cli_parse_set_maxconn_frontend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - dequeue_proxy_listeners
    - cli_err
    - atoi
    - cli_find_frontend
    - relax_listener
    - cli_has_level
    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:3281,1
    - Dst: cli_find_frontend
      Src: /src/haproxy/src/proxy.c:3284,1
    - Dst: cli_msg
      Src: /src/haproxy/src/proxy.c:3289,1
    - Dst: stop_proxy
      Src: /src/haproxy/src/proxy.c:3291,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: 3293
      start: 3277
    functionDepth: 3
    functionLinenumber: 3277
    functionLinenumberEnd: 3293
    functionName: cli_parse_shutdown_frontend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - stop_proxy
    - cli_msg
    - cli_has_level
    - cli_find_frontend
    linkageType: ''
    returnType: int
    signature: int cli_parse_shutdown_frontend(char **args, char *payload, struct
      appctx *appctx, void *private)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:3304,1
    - Dst: cli_find_frontend
      Src: /src/haproxy/src/proxy.c:3307,1
    - Dst: cli_msg
      Src: /src/haproxy/src/proxy.c:3312,1
    - Dst: cli_msg
      Src: /src/haproxy/src/proxy.c:3315,1
    - Dst: pause_proxy
      Src: /src/haproxy/src/proxy.c:3318,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3321,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: 3324
      start: 3299
    functionDepth: 11
    functionLinenumber: 3299
    functionLinenumberEnd: 3324
    functionName: cli_parse_disable_frontend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - pause_proxy
    - cli_err
    - cli_find_frontend
    - cli_msg
    - cli_has_level
    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:3335,1
    - Dst: cli_find_frontend
      Src: /src/haproxy/src/proxy.c:3338,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3343,1
    - Dst: cli_msg
      Src: /src/haproxy/src/proxy.c:3346,1
    - Dst: resume_proxy
      Src: /src/haproxy/src/proxy.c:3349,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3352,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: 3354
      start: 3330
    functionDepth: 12
    functionLinenumber: 3330
    functionLinenumberEnd: 3354
    functionName: cli_parse_enable_frontend
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - cli_err
    - resume_proxy
    - cli_find_frontend
    - cli_msg
    - cli_has_level
    linkageType: ''
    returnType: int
    signature: int cli_parse_enable_frontend(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/proxy.c:3371,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/proxy.c:3373,1
    - Dst: proxy_find_by_name
      Src: /src/haproxy/src/proxy.c:3379,1
    - Dst: atoi
      Src: /src/haproxy/src/proxy.c:3383,1
    - Dst: cli_err
      Src: /src/haproxy/src/proxy.c:3386,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:3392,1
    - Dst: strcmp
      Src: /src/haproxy/src/proxy.c:3394,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: 3398
      start: 3369
    functionDepth: 3
    functionLinenumber: 3369
    functionLinenumberEnd: 3398
    functionName: cli_parse_show_errors
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - strcmp
    - cli_err
    - atoi
    - proxy_find_by_name
    - cli_has_level
    - applet_reserve_svcctx
    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:3409,1
    - Dst: get_localtime
      Src: /src/haproxy/src/proxy.c:3417,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3418,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:3423,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/proxy.c:3437,1
    - Dst: get_localtime
      Src: /src/haproxy/src/proxy.c:3465,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3466,1
    - Dst: addr_to_str
      Src: /src/haproxy/src/proxy.c:3470,1
    - Dst: get_host_port
      Src: /src/haproxy/src/proxy.c:3473,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3481,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3489,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3497,1
    - Dst: struct error_snapshot*::show
      Src: /src/haproxy/src/proxy.c:3509,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3511,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:3513,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/proxy.c:3522,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:3524,1
    - Dst: dump_text_line
      Src: /src/haproxy/src/proxy.c:3536,1
    - Dst: applet_fl_set
      Src: /src/haproxy/src/proxy.c:3538,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/proxy.c:3542,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/proxy.c:3549,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/proxy.c:3561,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 99
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3404
    functionDepth: 2
    functionLinenumber: 3404
    functionLinenumberEnd: 3564
    functionName: cli_io_handler_show_errors
    functionSourceFile: /src/haproxy/src/proxy.c
    functionUses: 0
    functionsReached:
    - get_host_port
    - addr_to_str
    - struct error_snapshot*::show
    - chunk_appendf
    - chunk_reset
    - dump_text_line
    - HA_RWLOCK_RDUNLOCK
    - applet_putchk
    - applet_fl_set
    - get_localtime
    - HA_RWLOCK_RDLOCK
    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: 204
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 204
    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:219,1
    - Dst: open
      Src: /src/haproxy/src/ssl_ckch.c:222,1
    - Dst: read
      Src: /src/haproxy/src/ssl_ckch.c:228,1
    - Dst: ssl_sock_parse_sctl
      Src: /src/haproxy/src/ssl_ckch.c:242,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:246,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ckch.c:247,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:248,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:253,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:254,1
    - Dst: close
      Src: /src/haproxy/src/ssl_ckch.c:260,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: 263
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 263
    functionName: ssl_sock_load_sctl_from_file
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - chunk_dup
    - open
    - read
    - chunk_initstr
    - ha_free
    - close
    - free
    - ssl_sock_parse_sctl
    - calloc
    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:292,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:294,1
    - Dst: open
      Src: /src/haproxy/src/ssl_ckch.c:300,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:302,1
    - Dst: read
      Src: /src/haproxy/src/ssl_ckch.c:308,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:313,1
    - Dst: close
      Src: /src/haproxy/src/ssl_ckch.c:321,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:326,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ckch.c:327,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:328,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:333,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:334,1
    - Dst: close
      Src: /src/haproxy/src/ssl_ckch.c:340,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: 343
      start: 272
    functionDepth: 5
    functionLinenumber: 272
    functionLinenumberEnd: 343
    functionName: ssl_sock_load_ocsp_response_from_file
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - chunk_dup
    - open
    - read
    - ha_free
    - close
    - free
    - memprintf
    - base64dec
    - calloc
    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:368,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:373,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:375,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:378,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:380,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:386,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:388,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ckch.c:392,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:392,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:393,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_ckch.c:404,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:406,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:408,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:419,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:424,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:424,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:425,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:431,1
    - Dst: ssl_sock_load_key_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:432,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:433,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:440,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:444,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:445,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:447,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:452,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:453,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:453,1
    - Dst: X509_check_private_key
      Src: /src/haproxy/src/ssl_ckch.c:457,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:458,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:468,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:468,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:469,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:475,1
    - Dst: ssl_sock_load_sctl_from_file
      Src: /src/haproxy/src/ssl_ckch.c:476,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:477,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:484,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:486,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:492,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:493,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:493,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:502,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:502,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:503,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:509,1
    - Dst: ssl_sock_load_ocsp_response_from_file
      Src: /src/haproxy/src/ssl_ckch.c:510,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:516,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:518,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:524,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:525,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:525,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:533,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:533,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:534,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:540,1
    - Dst: ssl_sock_load_issuer_file_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:541,1
    - Dst: X509_check_issued
      Src: /src/haproxy/src/ssl_ckch.c:546,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:547,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:554,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:556,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:562,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:563,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:563,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:573,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_ckch.c:577,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:579,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: 582
      start: 361
    functionDepth: 6
    functionLinenumber: 361
    functionLinenumberEnd: 582
    functionName: ssl_sock_load_files_into_ckch
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - b_sub
    - free_trash_chunk
    - ssl_sock_load_pem_into_ckch
    - alloc_trash_chunk
    - ssl_sock_load_issuer_file_into_ckch
    - strcmp
    - b_data
    - stat
    - strrchr
    - ssl_sock_free_cert_key_and_chain_contents
    - strlen
    - chunk_strcat
    - ssl_sock_load_sctl_from_file
    - X509_check_private_key
    - strdup
    - X509_check_issued
    - memprintf
    - ERR_clear_error
    - chunk_strcpy
    - ssl_sock_load_key_into_ckch
    - free
    - ssl_sock_load_ocsp_response_from_file
    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:599,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:601,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:607,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/ssl_ckch.c:607,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/ssl_ckch.c:611,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/haproxy/src/ssl_ckch.c:616,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:618,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:625,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:629,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:631,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_ckch.c:633,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: 636
      start: 591
    functionDepth: 5
    functionLinenumber: 591
    functionLinenumberEnd: 636
    functionName: ssl_sock_load_key_into_ckch
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - ERR_clear_error
    - SWAP
    - EVP_PKEY_free
    - BIO_new
    - BIO_free
    - memprintf
    - BIO_new_mem_buf
    - PEM_read_bio_PrivateKey
    - BIO_s_file
    - BIO_read_filename
    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:655,1
    - Dst: BIO_new_mem_buf
      Src: /src/haproxy/src/ssl_ckch.c:660,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:662,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:668,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/ssl_ckch.c:668,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:670,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/ssl_ckch.c:674,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:675,1
    - Dst: PEM_read_bio_PrivateKey
      Src: /src/haproxy/src/ssl_ckch.c:682,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:687,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:688,1
    - Dst: ssl_sock_get_dh_from_bio
      Src: /src/haproxy/src/ssl_ckch.c:693,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:694,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:699,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:700,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/haproxy/src/ssl_ckch.c:706,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:708,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:709,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_ckch.c:710,1
    - Dst: PEM_read_bio_X509
      Src: /src/haproxy/src/ssl_ckch.c:715,1
    - Dst: sk_X509_new_null
      Src: /src/haproxy/src/ssl_ckch.c:717,1
    - Dst: sk_X509_push
      Src: /src/haproxy/src/ssl_ckch.c:718,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:719,1
    - Dst: ssl_get0_issuer_chain
      Src: /src/haproxy/src/ssl_ckch.c:726,1
    - Dst: X509_chain_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:728,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:731,1
    - Dst: ERR_GET_LIB
      Src: /src/haproxy/src/ssl_ckch.c:732,1
    - Dst: ERR_GET_REASON
      Src: /src/haproxy/src/ssl_ckch.c:732,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:733,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_ckch.c:734,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:740,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:741,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:745,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:746,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:750,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:755,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:756,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:757,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:758,1
    - Dst: SWAP
      Src: /src/haproxy/src/ssl_ckch.c:759,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:765,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:767,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_ckch.c:769,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_ckch.c:771,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:773,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_ckch.c:775,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 93
    argCount: 4
    argNames:
    - path
    - buf
    - data
    - err
    argTypes:
    - char*
    - char*
    - struct ckch_data*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 647
    functionDepth: 5
    functionLinenumber: 647
    functionLinenumberEnd: 778
    functionName: ssl_sock_load_pem_into_ckch
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - HASSL_DH_free
    - EVP_PKEY_free
    - BIO_new
    - PEM_read_bio_PrivateKey
    - ssl_get0_issuer_chain
    - BIO_s_file
    - SWAP
    - X509_chain_up_ref
    - ha_free
    - BIO_free
    - sk_X509_pop_free
    - STACK_OF
    - ERR_GET_LIB
    - sk_X509_new_null
    - memprintf
    - ERR_GET_REASON
    - X509_free
    - BIO_read_filename
    - ERR_get_error
    - ERR_clear_error
    - sk_X509_push
    - ssl_sock_get_dh_from_bio
    - BIO_new_mem_buf
    - ERR_reason_error_string
    - PEM_read_bio_X509
    - BIO_reset
    - PEM_read_bio_X509_AUX
    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:789,1
    - Dst: EVP_PKEY_free
      Src: /src/haproxy/src/ssl_ckch.c:794,1
    - Dst: sk_X509_pop_free
      Src: /src/haproxy/src/ssl_ckch.c:799,1
    - Dst: HASSL_DH_free
      Src: /src/haproxy/src/ssl_ckch.c:803,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:807,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:808,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:812,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:813,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:817,1
    - Dst: ssl_ocsp_build_response_key
      Src: /src/haproxy/src/ssl_ckch.c:830,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/src/ssl_ckch.c:831,1
    - Dst: ebmb_lookup
      Src: /src/haproxy/src/ssl_ckch.c:832,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:833,1
    - Dst: ssl_sock_free_ocsp
      Src: /src/haproxy/src/ssl_ckch.c:834,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/ssl_ckch.c:837,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 1
    argNames:
    - data
    argTypes:
    - struct ckch_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 782
    functionDepth: 3
    functionLinenumber: 782
    functionLinenumberEnd: 841
    functionName: ssl_sock_free_cert_key_and_chain_contents
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 3
    functionsReached:
    - HASSL_DH_free
    - OCSP_CERTID_free
    - EVP_PKEY_free
    - ssl_sock_free_ocsp
    - ha_free
    - HA_SPIN_LOCK
    - ssl_ocsp_build_response_key
    - HA_SPIN_UNLOCK
    - X509_free
    - sk_X509_pop_free
    - ebmb_lookup
    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:860,1
    - Dst: EVP_PKEY_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:865,1
    - Dst: X509_chain_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:869,1
    - Dst: HASSL_DH_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:874,1
    - Dst: wolfSSL_DH_dup
      Src: /src/haproxy/src/ssl_ckch.c:877,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:886,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ckch.c:887,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:888,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:898,1
    - Dst: chunk_dup
      Src: /src/haproxy/src/ssl_ckch.c:899,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:900,1
    - Dst: X509_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:907,1
    - Dst: OCSP_CERTID_dup
      Src: /src/haproxy/src/ssl_ckch.c:910,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_ckch.c:917,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - struct ckch_data*
    - struct ckch_data*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 852
    functionDepth: 4
    functionLinenumber: 852
    functionLinenumberEnd: 920
    functionName: ssl_sock_copy_cert_key_and_chain
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - calloc
    - X509_up_ref
    - X509_chain_up_ref
    - chunk_dup
    - ha_free
    - ssl_sock_free_cert_key_and_chain_contents
    - HASSL_DH_up_ref
    - OCSP_CERTID_dup
    - EVP_PKEY_up_ref
    - wolfSSL_DH_dup
    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:933,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:935,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:941,1
    - Dst: BIO_s_file
      Src: /src/haproxy/src/ssl_ckch.c:941,1
    - Dst: BIO_read_filename
      Src: /src/haproxy/src/ssl_ckch.c:945,1
    - Dst: PEM_read_bio_X509_AUX
      Src: /src/haproxy/src/ssl_ckch.c:949,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:951,1
    - Dst: X509_free
      Src: /src/haproxy/src/ssl_ckch.c:957,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:963,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:965,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: 968
      start: 925
    functionDepth: 5
    functionLinenumber: 925
    functionLinenumberEnd: 968
    functionName: ssl_sock_load_issuer_file_into_ckch
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - ERR_clear_error
    - BIO_new
    - PEM_read_bio_X509_AUX
    - BIO_free
    - memprintf
    - BIO_new_mem_buf
    - X509_free
    - BIO_s_file
    - BIO_read_filename
    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:985,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_ckch.c:986,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:988,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_ckch.c:990,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:991,1
    - Dst: ckch_conf_clean
      Src: /src/haproxy/src/ssl_ckch.c:994,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:996,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - store
    argTypes:
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 978
    functionDepth: 4
    functionLinenumber: 978
    functionLinenumberEnd: 997
    functionName: ckch_store_free
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 6
    functionsReached:
    - list_for_each_entry_safe
    - ha_free
    - ckch_conf_clean
    - ssl_sock_free_cert_key_and_chain_contents
    - free
    - ckch_inst_free
    - 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:1011,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:1012,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_ckch.c:1016,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1018,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1019,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:1021,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:1027,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1006
    functionDepth: 5
    functionLinenumber: 1006
    functionLinenumberEnd: 1029
    functionName: ckch_store_new
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - ckch_store_free
    - strlen
    - LIST_INIT
    - calloc
    - memcpy
    linkageType: ''
    returnType: struct ckch_store
    signature: struct ckch_store *ckch_store_new(const char *filename)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ckch_store_new
      Src: /src/haproxy/src/ssl_ckch.c:1042,1
    - Dst: ssl_sock_copy_cert_key_and_chain
      Src: /src/haproxy/src/ssl_ckch.c:1046,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1058,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1060,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1062,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1064,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1066,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1068,1
    - Dst: realloc
      Src: /src/haproxy/src/ssl_ckch.c:1074,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:1078,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1094,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1096,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:1097,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct ckch_store*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1033
    functionDepth: 6
    functionLinenumber: 1033
    functionLinenumberEnd: 1100
    functionName: ckchs_dup
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - strdup
    - ckch_store_free
    - ssl_sock_copy_cert_key_and_chain
    - free
    - realloc
    - ckch_store_new
    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:1109,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:1113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1114
      start: 1105
    functionDepth: 2
    functionLinenumber: 1105
    functionLinenumberEnd: 1114
    functionName: ckchs_lookup
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 13
    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:1123,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1125,1
    - Dst: ssl_sock_load_files_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:1129,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_ckch.c:1135,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:1135,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:1136,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:1140,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - path
    - err
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1119
    functionDepth: 7
    functionLinenumber: 1119
    functionLinenumberEnd: 1143
    functionName: ckch_store_new_load_files_path
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 4
    functionsReached:
    - ebst_insert
    - ckch_store_free
    - strlen
    - ssl_sock_load_files_into_ckch
    - memprintf
    - ckch_store_new
    - memcpy
    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:1155,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1157,1
    - Dst: ssl_sock_load_files_into_ckch
      Src: /src/haproxy/src/ssl_ckch.c:1166,1
    - Dst: ckch_store_load_files
      Src: /src/haproxy/src/ssl_ckch.c:1174,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_ckch.c:1181,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:1181,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:1182,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:1186,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: 1189
      start: 1149
    functionDepth: 7
    functionLinenumber: 1149
    functionLinenumberEnd: 1189
    functionName: ckch_store_new_load_files_conf
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - ebst_insert
    - ckch_store_free
    - ssl_sock_load_files_into_ckch
    - strlen
    - memprintf
    - ckch_store_load_files
    - ckch_store_new
    - memcpy
    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:1203,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_ckch.c:1204,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1205,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:1206,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1207,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_ckch.c:1209,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1211,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1212,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:1215,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/src/ssl_ckch.c:1216,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1220,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:1221,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1223,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1224,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 1
    argNames:
    - inst
    argTypes:
    - struct ckch_inst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1195
    functionDepth: 3
    functionLinenumber: 1195
    functionLinenumberEnd: 1228
    functionName: ckch_inst_free
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 8
    functionsReached:
    - LIST_DELETE
    - SSL_CTX_free
    - list_for_each_entry_safe
    - ha_free
    - LIST_DEL_INIT
    - free
    - ebmb_delete
    - LIST_INLIST
    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:1235,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1239,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1240,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1241,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1231
    functionDepth: 1
    functionLinenumber: 1231
    functionLinenumberEnd: 1245
    functionName: ckch_inst_new
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - LIST_INIT
    - calloc
    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:1263,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:1265,1
    - Dst: ebmb_next_dup
      Src: /src/haproxy/src/ssl_ckch.c:1273,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - path
    - oldest_entry
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1258
    functionDepth: 2
    functionLinenumber: 1258
    functionLinenumberEnd: 1276
    functionName: ssl_store_get_cafile_entry
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - ebst_lookup
    - ebmb_next_dup
    - 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:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - entry
    argTypes:
    - struct cafile_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1278
    functionDepth: 2
    functionLinenumber: 1278
    functionLinenumberEnd: 1281
    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:1285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1283
    functionDepth: 3
    functionLinenumber: 1283
    functionLinenumberEnd: 1291
    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:1299,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:1301,1
    - Dst: memcpy
      Src: /src/haproxy/src/ssl_ckch.c:1303,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1306,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: 1309
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1309
    functionName: ssl_store_create_cafile_entry
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - strlen
    - LIST_INIT
    - calloc
    - memcpy
    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:1322,1
    - Dst: X509_STORE_new
      Src: /src/haproxy/src/ssl_ckch.c:1330,1
    - Dst: X509_STORE_get0_objects
      Src: /src/haproxy/src/ssl_ckch.c:1334,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:1335,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/haproxy/src/ssl_ckch.c:1339,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_ckch.c:1339,1
    - Dst: X509_STORE_add_cert
      Src: /src/haproxy/src/ssl_ckch.c:1341,1
    - Dst: ERR_GET_REASON
      Src: /src/haproxy/src/ssl_ckch.c:1343,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:1343,1
    - Dst: X509_OBJECT_get0_X509_CRL
      Src: /src/haproxy/src/ssl_ckch.c:1349,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_ckch.c:1349,1
    - Dst: X509_STORE_add_crl
      Src: /src/haproxy/src/ssl_ckch.c:1351,1
    - Dst: ERR_GET_REASON
      Src: /src/haproxy/src/ssl_ckch.c:1353,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:1353,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:1361,1
    - Dst: X509_STORE_free
      Src: /src/haproxy/src/ssl_ckch.c:1366,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:1367,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - src
    argTypes:
    - struct cafile_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1318
    functionDepth: 2
    functionLinenumber: 1318
    functionLinenumberEnd: 1370
    functionName: ssl_store_dup_cafile_entry
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_num
    - X509_STORE_add_crl
    - X509_OBJECT_get0_X509_CRL
    - X509_OBJECT_get0_X509
    - ssl_store_create_cafile_entry
    - X509_STORE_new
    - ha_free
    - X509_STORE_get0_objects
    - X509_STORE_add_cert
    - X509_STORE_free
    - ERR_GET_REASON
    - STACK_OF
    - sk_X509_OBJECT_value
    - ERR_get_error
    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:1380,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:1382,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:1385,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1387,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1388,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/src/ssl_ckch.c:1392,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1393,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ca_e
    argTypes:
    - struct cafile_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1374
    functionDepth: 3
    functionLinenumber: 1374
    functionLinenumberEnd: 1397
    functionName: ssl_store_delete_cafile_entry
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry_safe
    - free
    - LIST_DELETE
    - X509_STORE_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:1414,1
    - Dst: X509_STORE_free
      Src: /src/haproxy/src/ssl_ckch.c:1424,1
    - Dst: X509_STORE_new
      Src: /src/haproxy/src/ssl_ckch.c:1429,1
    - Dst: BIO_new_mem_buf
      Src: /src/haproxy/src/ssl_ckch.c:1434,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:1434,1
    - Dst: PEM_X509_INFO_read_bio
      Src: /src/haproxy/src/ssl_ckch.c:1438,1
    - Dst: sk_X509_INFO_num
      Src: /src/haproxy/src/ssl_ckch.c:1442,1
    - Dst: sk_X509_INFO_value
      Src: /src/haproxy/src/ssl_ckch.c:1443,1
    - Dst: X509_STORE_add_cert
      Src: /src/haproxy/src/ssl_ckch.c:1447,1
    - Dst: X509_STORE_add_crl
      Src: /src/haproxy/src/ssl_ckch.c:1449,1
    - Dst: sk_X509_INFO_num
      Src: /src/haproxy/src/ssl_ckch.c:1454,1
    - Dst: sk_X509_INFO_num
      Src: /src/haproxy/src/ssl_ckch.c:1454,1
    - Dst: sk_X509_INFO_pop_free
      Src: /src/haproxy/src/ssl_ckch.c:1458,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:1461,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: 1464
      start: 1411
    functionDepth: 0
    functionLinenumber: 1411
    functionLinenumberEnd: 1464
    functionName: ssl_store_load_ca_from_buf
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - sk_X509_INFO_num
    - X509_STORE_add_crl
    - sk_X509_INFO_pop_free
    - X509_STORE_new
    - strlen
    - sk_X509_INFO_value
    - X509_STORE_add_cert
    - BIO_new_mem_buf
    - X509_STORE_free
    - PEM_X509_INFO_read_bio
    - BIO_free
    - STACK_OF
    linkageType: ''
    returnType: int
    signature: int ssl_store_load_ca_from_buf(struct cafile_entry *ca_e, char *cert_buf,
      int append)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: ssl_store_get0_locations_file
      Src: /src/haproxy/src/ssl_ckch.c:1473,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:1479,1
    - Dst: X509_STORE_new
      Src: /src/haproxy/src/ssl_ckch.c:1487,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1490,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1494,1
    - Dst: X509_get_default_cert_dir
      Src: /src/haproxy/src/ssl_ckch.c:1495,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1498,1
    - Dst: stat
      Src: /src/haproxy/src/ssl_ckch.c:1504,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1506,1
    - Dst: strerror
      Src: /src/haproxy/src/ssl_ckch.c:1506,1
    - Dst: S_ISDIR
      Src: /src/haproxy/src/ssl_ckch.c:1510,1
    - Dst: X509_STORE_load_locations
      Src: /src/haproxy/src/ssl_ckch.c:1517,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:1518,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1520,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_ckch.c:1520,1
    - Dst: scandir
      Src: /src/haproxy/src/ssl_ckch.c:1527,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:1535,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_ckch.c:1544,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1546,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1547,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1548,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1549,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1550,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ckch.c:1554,1
    - Dst: X509_STORE_load_locations
      Src: /src/haproxy/src/ssl_ckch.c:1555,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1558,1
    - Dst: ERR_get_error
      Src: /src/haproxy/src/ssl_ckch.c:1562,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1563,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_ckch.c:1566,1
    - Dst: ERR_reason_error_string
      Src: /src/haproxy/src/ssl_ckch.c:1566,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1569,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1572,1
    - Dst: ssl_commit_crlfile_cb
      Src: /src/haproxy/src/ssl_ckch.c:1577,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1579,1
    - Dst: X509_STORE_get0_objects
      Src: /src/haproxy/src/ssl_ckch.c:1584,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:1585,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_ckch.c:1588,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:1590,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:1593,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:1596,1
    - Dst: X509_STORE_free
      Src: /src/haproxy/src/ssl_ckch.c:1601,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 99
    argCount: 4
    argNames:
    - path
    - create_if_none
    - type
    - shuterror
    argTypes:
    - char*
    - int
    - enum cafile_type
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1471
    functionDepth: 9
    functionLinenumber: 1471
    functionLinenumberEnd: 1605
    functionName: __ssl_store_load_locations_file
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - sk_X509_OBJECT_num
    - ssl_store_create_cafile_entry
    - X509_STORE_get0_objects
    - strerror
    - X509_STORE_load_locations
    - ebst_insert
    - ha_warning
    - strcmp
    - chunk_printf
    - stat
    - strrchr
    - X509_get_default_cert_dir
    - ssl_commit_crlfile_cb
    - STACK_OF
    - ssl_store_get0_locations_file
    - ha_alert
    - ERR_get_error
    - ERR_clear_error
    - X509_STORE_new
    - scandir
    - free
    - ERR_reason_error_string
    - X509_STORE_free
    - S_ISDIR
    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:1609,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: 1610
      start: 1607
    functionDepth: 10
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    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:1632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1633
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1633
    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:1643,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1656,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:1657,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:1669,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_ckch.c:1669,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/ssl_ckch.c:1671,1
    - Dst: HA_RWLOCK_RDLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1673,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:1682,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:1684,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:1690,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:1696,1
    - Dst: x509_get_notafter_time_t
      Src: /src/haproxy/src/ssl_ckch.c:1702,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1708,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1712,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:1717,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1719,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1724,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1738,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1741,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1742,1
    - Dst: x509_get_notafter
      Src: /src/haproxy/src/ssl_ckch.c:1742,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1743,1
    - Dst: x509_get_notbefore
      Src: /src/haproxy/src/ssl_ckch.c:1743,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:1745,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1746,1
    - Dst: HA_RWLOCK_RDUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1754,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1764,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1773,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 86
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1775
      start: 1640
    functionDepth: 4
    functionLinenumber: 1640
    functionLinenumberEnd: 1775
    functionName: cli_io_handler_show_sni
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - x509_get_notbefore
    - list_for_each_entry
    - list_for_each_entry_from
    - ebmb_first
    - free_trash_chunk
    - chunk_appendf
    - HA_RWLOCK_RDUNLOCK
    - x509_get_notafter
    - applet_putchk
    - typeof
    - ebmb_next
    - x509_get_notafter_time_t
    - ebmb_entry
    - alloc_trash_chunk
    - LIST_ELEM
    - HA_RWLOCK_RDLOCK
    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:1781,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1791,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1794,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1806,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1813,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1815,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1819,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:1822,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1828,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/ssl_ckch.c:1830,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:1833,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1833,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:1836,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1836,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:1839,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1839,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:1843,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:1843,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1850,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:1855,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:1856,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: 1859
      start: 1779
    functionDepth: 5
    functionLinenumber: 1779
    functionLinenumberEnd: 1859
    functionName: cli_parse_show_sni
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - parse_time_err
    - cli_dynerr
    - memprintf
    - applet_reserve_svcctx
    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:1864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1865
      start: 1862
    functionDepth: 1
    functionLinenumber: 1862
    functionLinenumberEnd: 1865
    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:1873,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1882,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1883,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:1884,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1890,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:1891,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:1896,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1897,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:1899,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:1900,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1905,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:1909,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1870
    functionDepth: 1
    functionLinenumber: 1870
    functionLinenumberEnd: 1912
    functionName: cli_io_handler_show_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ebmb_first
    - free_trash_chunk
    - chunk_appendf
    - applet_putchk
    - ebmb_next
    - ebmb_entry
    - alloc_trash_chunk
    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:1923,1
    - Dst: X509_get_ext_d2i
      Src: /src/haproxy/src/ssl_ckch.c:1925,1
    - Dst: sk_GENERAL_NAME_num
      Src: /src/haproxy/src/ssl_ckch.c:1927,1
    - Dst: sk_GENERAL_NAME_value
      Src: /src/haproxy/src/ssl_ckch.c:1928,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1930,1
    - Dst: ASN1_STRING_to_UTF8
      Src: /src/haproxy/src/ssl_ckch.c:1932,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:1933,1
    - Dst: OPENSSL_free
      Src: /src/haproxy/src/ssl_ckch.c:1934,1
    - Dst: sk_GENERAL_NAME_pop_free
      Src: /src/haproxy/src/ssl_ckch.c:1938,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - cert
    - out
    argTypes:
    - X509*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1919
    functionDepth: 1
    functionLinenumber: 1919
    functionLinenumberEnd: 1941
    functionName: ssl_sock_get_san_oneline
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ASN1_STRING_to_UTF8
    - OPENSSL_free
    - X509_get_ext_d2i
    - sk_GENERAL_NAME_value
    - chunk_appendf
    - sk_GENERAL_NAME_pop_free
    - sk_GENERAL_NAME_num
    - STACK_OF
    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:1952,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:1953,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_ckch.c:1954,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:1962,1
    - Dst: calloc
      Src: /src/haproxy/src/ssl_ckch.c:1964,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:1966,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1972,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/ssl_ckch.c:1973,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_ckch.c:1975,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_ckch.c:1976,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: 1980
      start: 1949
    functionDepth: 3
    functionLinenumber: 1949
    functionLinenumberEnd: 1980
    functionName: do_chain_inst_and_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - free
    - LIST_INIT
    - typeof
    - LIST_ISEMPTY
    - LIST_ELEM
    - calloc
    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:2029,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:2033,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:2042,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:2044,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:2046,1
    - Dst: do_chain_inst_and_cafile
      Src: /src/haproxy/src/ssl_ckch.c:2052,1
    - Dst: do_chain_inst_and_cafile
      Src: /src/haproxy/src/ssl_ckch.c:2059,1
    - Dst: do_chain_inst_and_cafile
      Src: /src/haproxy/src/ssl_ckch.c:2065,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: 2069
      start: 1991
    functionDepth: 4
    functionLinenumber: 1991
    functionLinenumberEnd: 2069
    functionName: ckch_inst_add_cafile_link
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 3
    functionsReached:
    - ssl_store_get_cafile_entry
    - do_chain_inst_and_cafile
    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:2202,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2204,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2206,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2208,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ckch_store
    - out
    argTypes:
    - struct ckch_store*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2195
    functionDepth: 1
    functionLinenumber: 2195
    functionLinenumberEnd: 2213
    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:2223,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2229,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2231,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2232,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2235,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2236,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2239,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2240,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2243,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2244,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2247,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2248,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2251,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2252,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2254,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2256,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2258,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2260,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2262,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2264,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:2265,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2266,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2268,1
    - Dst: show_cert_detail
      Src: /src/haproxy/src/ssl_ckch.c:2270,1
    - Dst: ckch_store_show_ocsp_certid
      Src: /src/haproxy/src/ssl_ckch.c:2276,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2279,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2283,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2286,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2219
    functionDepth: 2
    functionLinenumber: 2219
    functionLinenumberEnd: 2288
    functionName: cli_io_handler_show_cert_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - chunk_appendf
    - show_cert_detail
    - applet_putchk
    - alloc_trash_chunk
    - ckch_store_show_ocsp_certid
    - LIST_ISEMPTY
    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:2299,1
    - Dst: ssl_ocsp_response_print
      Src: /src/haproxy/src/ssl_ckch.c:2310,1
    - Dst: ssl_ocsp_build_response_key
      Src: /src/haproxy/src/ssl_ckch.c:2317,1
    - Dst: ssl_get_ocspresponse_detail
      Src: /src/haproxy/src/ssl_ckch.c:2320,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2324,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2328,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2331,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2334,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2294
    functionDepth: 3
    functionLinenumber: 2294
    functionLinenumberEnd: 2336
    functionName: cli_io_handler_show_cert_ocsp_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ssl_ocsp_response_print
    - free_trash_chunk
    - cli_err
    - applet_putchk
    - ssl_ocsp_build_response_key
    - ssl_get_ocspresponse_detail
    - alloc_trash_chunk
    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:2341,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:2344,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2345,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2349,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2350,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_ckch.c:2360,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:2361,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:2378,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:2387,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2405,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2406,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: 2407
      start: 2339
    functionDepth: 3
    functionLinenumber: 2339
    functionLinenumberEnd: 2407
    functionName: cli_parse_show_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - strrchr
    - cli_err
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - cli_has_level
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_show_cert(char **args, char *payload, struct appctx *appctx,
      void *private)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:2412,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:2415,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2416,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2420,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2421,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:2432,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:2436,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2448,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2449,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: 2450
      start: 2410
    functionDepth: 3
    functionLinenumber: 2410
    functionLinenumberEnd: 2450
    functionName: cli_parse_dump_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - ckchs_lookup
    - HA_SPIN_UNLOCK
    - cli_has_level
    - applet_reserve_svcctx
    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:2457,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2458,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:2462,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2462,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2466,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2467,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:2469,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2474,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2478,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2479,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - args
    - appctx
    - value
    argTypes:
    - char**
    - struct appctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2452
    functionDepth: 5
    functionLinenumber: 2452
    functionLinenumberEnd: 2480
    functionName: cli_set_ssl_jwt
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - cli_err
    - ckchs_lookup
    - cli_dynerr
    - memprintf
    - HA_SPIN_UNLOCK
    - cli_has_level
    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:2485,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: 2486
      start: 2483
    functionDepth: 6
    functionLinenumber: 2483
    functionLinenumberEnd: 2486
    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:2491,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: 2492
      start: 2489
    functionDepth: 6
    functionLinenumber: 2489
    functionLinenumberEnd: 2492
    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:2497,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:2499,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2500,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2504,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2505,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: 2508
      start: 2495
    functionDepth: 2
    functionLinenumber: 2495
    functionLinenumberEnd: 2508
    functionName: cli_parse_show_jwt
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - cli_has_level
    - applet_reserve_svcctx
    - cli_err
    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:2516,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2524,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:2525,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:2530,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:2532,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:2534,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2535,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2540,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2544,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2547
      start: 2513
    functionDepth: 1
    functionLinenumber: 2513
    functionLinenumberEnd: 2547
    functionName: cli_io_handler_show_jwt
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ebmb_first
    - free_trash_chunk
    - chunk_appendf
    - applet_putchk
    - ebmb_next
    - ebmb_entry
    - alloc_trash_chunk
    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:2552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2550
    functionDepth: 1
    functionLinenumber: 2550
    functionLinenumberEnd: 2553
    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:2568,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:2577,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_ckch.c:2577,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:2582,1
    - Dst: PEM_write_bio_PrivateKey
      Src: /src/haproxy/src/ssl_ckch.c:2585,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:2588,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2594,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:2603,1
    - Dst: PEM_write_bio_X509
      Src: /src/haproxy/src/ssl_ckch.c:2606,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:2609,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2615,1
    - Dst: sk_X509_num
      Src: /src/haproxy/src/ssl_ckch.c:2622,1
    - Dst: sk_X509_value
      Src: /src/haproxy/src/ssl_ckch.c:2623,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:2625,1
    - Dst: PEM_write_bio_X509
      Src: /src/haproxy/src/ssl_ckch.c:2628,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:2631,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2637,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2642,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:2643,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2647,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:2648,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:2653,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:2654,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 76
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2657
      start: 2564
    functionDepth: 1
    functionLinenumber: 2564
    functionLinenumberEnd: 2657
    functionName: cli_io_handler_dump_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - PEM_write_bio_X509
    - sk_X509_value
    - BIO_new
    - free_trash_chunk
    - BIO_read
    - PEM_write_bio_PrivateKey
    - applet_putchk
    - BIO_free
    - BIO_reset
    - alloc_trash_chunk
    - BIO_s_mem
    - sk_X509_num
    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:2663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2664
      start: 2661
    functionDepth: 1
    functionLinenumber: 2661
    functionLinenumberEnd: 2664
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2671,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:2674,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:2675,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2676
      start: 2667
    functionDepth: 5
    functionLinenumber: 2667
    functionLinenumberEnd: 2676
    functionName: cli_release_commit_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ha_free
    - ckch_store_free
    - HA_SPIN_UNLOCK
    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:2699,1
    - Dst: srv_is_quic
      Src: /src/haproxy/src/ssl_ckch.c:2699,1
    - Dst: ckch_inst_new_load_store
      Src: /src/haproxy/src/ssl_ckch.c:2702,1
    - Dst: ssl_sock_prep_srv_ctx_and_inst
      Src: /src/haproxy/src/ssl_ckch.c:2714,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:2724,1
    - Dst: ssl_sock_prep_ctx_and_inst
      Src: /src/haproxy/src/ssl_ckch.c:2726,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: 2733
      start: 2684
    functionDepth: 8
    functionLinenumber: 2684
    functionLinenumberEnd: 2733
    functionName: ckch_inst_rebuild
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - list_for_each_entry_safe
    - ckch_inst_new_load_store
    - ssl_sock_prep_srv_ctx_and_inst
    - srv_is_quic
    - ssl_sock_prep_ctx_and_inst
    - ckch_inst_new_load_srv_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:2745,1
    - Dst: SSL_CTX_free
      Src: /src/haproxy/src/ssl_ckch.c:2747,1
    - Dst: SSL_CTX_up_ref
      Src: /src/haproxy/src/ssl_ckch.c:2749,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:2755,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:2756,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2758,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2761,1
    - Dst: ssl_sock_load_cert_sni
      Src: /src/haproxy/src/ssl_ckch.c:2762,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2763,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ckchi
    argTypes:
    - struct ckch_inst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2739
    functionDepth: 2
    functionLinenumber: 2739
    functionLinenumberEnd: 2765
    functionName: __ssl_sock_load_new_ckch_instance
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - SSL_CTX_free
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    - SSL_CTX_up_ref
    - ha_free
    - ssl_sock_load_cert_sni
    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:2774,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2778,1
    - Dst: ckch_inst_free
      Src: /src/haproxy/src/ssl_ckch.c:2779,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2780,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ckchi
    argTypes:
    - struct ckch_inst*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2782
      start: 2770
    functionDepth: 4
    functionLinenumber: 2770
    functionLinenumberEnd: 2782
    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:2804,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:2805,1
    - Dst: ebpt_delete
      Src: /src/haproxy/src/ssl_ckch.c:2806,1
    - Dst: ebpt_insert
      Src: /src/haproxy/src/ssl_ckch.c:2809,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:2812,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/ssl_ckch.c:2814,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:2817,1
    - Dst: __ssl_sock_load_new_ckch_instance
      Src: /src/haproxy/src/ssl_ckch.c:2818,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/src/ssl_ckch.c:2821,1
    - Dst: __ckch_inst_free_locked
      Src: /src/haproxy/src/ssl_ckch.c:2822,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:2825,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:2826,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: 2827
      start: 2799
    functionDepth: 5
    functionLinenumber: 2799
    functionLinenumberEnd: 2827
    functionName: ckch_store_replace
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - LIST_SPLICE
    - ebst_insert
    - __ssl_sock_load_new_ckch_instance
    - list_for_each_entry
    - LIST_INSERT
    - list_for_each_entry_safe
    - ckch_store_free
    - ebpt_insert
    - __ckch_inst_free_locked
    - ebpt_delete
    linkageType: ''
    returnType: void
    signature: void ckch_store_replace(struct ckch_store *old_ckchs, struct ckch_store
      *new_ckchs)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/ssl_ckch.c:2842,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ckch.c:2847,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2848,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:2869,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_ckch.c:2869,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/ssl_ckch.c:2872,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/ssl_ckch.c:2880,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/ssl_ckch.c:2885,1
    - Dst: ckch_inst_rebuild
      Src: /src/haproxy/src/ssl_ckch.c:2889,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_ckch.c:2895,1
    - Dst: ckch_store_replace
      Src: /src/haproxy/src/ssl_ckch.c:2907,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ckch.c:2912,1
    - Dst: usermsgs_str
      Src: /src/haproxy/src/ssl_ckch.c:2912,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2913,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ckch.c:2926,1
    - Dst: usermsgs_str
      Src: /src/haproxy/src/ssl_ckch.c:2926,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:2927,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/ssl_ckch.c:2934,1
    - Dst: usermsgs_clr
      Src: /src/haproxy/src/ssl_ckch.c:2939,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 77
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2835
    functionDepth: 9
    functionLinenumber: 2835
    functionLinenumberEnd: 2941
    functionName: cli_io_handler_commit_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - usermsgs_clr
    - list_for_each_entry_from
    - ckch_inst_rebuild
    - chunk_printf
    - usermsgs_str
    - LIST_APPEND
    - applet_putstr
    - applet_putchk
    - typeof
    - ckch_store_replace
    - LIST_ELEM
    - applet_have_more_data
    linkageType: ''
    returnType: int
    signature: int cli_io_handler_commit_cert(struct appctx *appctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: applet_reserve_svcctx
      Src: /src/haproxy/src/ssl_ckch.c:2948,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:2951,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2955,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2959,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:2960,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2963,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:2967,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2968,1
    - Dst: X509_check_private_key
      Src: /src/haproxy/src/ssl_ckch.c:2973,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2974,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:2989,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:2990,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:2992,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2993
      start: 2946
    functionDepth: 5
    functionLinenumber: 2946
    functionLinenumberEnd: 2993
    functionName: cli_parse_commit_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - cli_dynerr
    - memprintf
    - HA_SPIN_UNLOCK
    - X509_check_private_key
    - cli_has_level
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int cli_parse_commit_cert(char **args, char *payload, struct appctx
      *appctx, void *private)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3014,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3018,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3022,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3023,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3025,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3026,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ckch.c:3031,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3032,1
    - Dst: strrchr
      Src: /src/haproxy/src/ssl_ckch.c:3039,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3040,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:3042,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3051,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:3056,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3057,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3062,1
    - Dst: b_orig
      Src: /src/haproxy/src/ssl_ckch.c:3064,1
    - Dst: b_data
      Src: /src/haproxy/src/ssl_ckch.c:3064,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:3064,1
    - Dst: b_sub
      Src: /src/haproxy/src/ssl_ckch.c:3065,1
    - Dst: strlen
      Src: /src/haproxy/src/ssl_ckch.c:3065,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3067,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3073,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:3084,1
    - Dst: chunk_strcat
      Src: /src/haproxy/src/ssl_ckch.c:3089,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3090,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:3094,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3100,1
    - Dst: ckchs_dup
      Src: /src/haproxy/src/ssl_ckch.c:3107,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3109,1
    - Dst: OCSP_CERTID_free
      Src: /src/haproxy/src/ssl_ckch.c:3119,1
    - Dst: struct cert_exts*::load
      Src: /src/haproxy/src/ssl_ckch.c:3126,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3127,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3138,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3140,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:3145,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3153,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:3156,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3157,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3158,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3158,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3160,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3161,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 111
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3164
      start: 3002
    functionDepth: 7
    functionLinenumber: 3002
    functionLinenumberEnd: 3164
    functionName: cli_parse_set_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - b_sub
    - free_trash_chunk
    - ckchs_lookup
    - alloc_trash_chunk
    - strcmp
    - b_data
    - strrchr
    - ckch_store_free
    - strlen
    - chunk_strcat
    - HA_SPIN_UNLOCK
    - cli_has_level
    - cli_err
    - memprintf
    - ckchs_dup
    - cli_dynmsg
    - b_orig
    - OCSP_CERTID_free
    - chunk_strcpy
    - struct cert_exts*::load
    - 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:3171,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3175,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3179,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3180,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3183,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3187,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3188,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:3193,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3198,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3200,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3201,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3204,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3206,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: 3207
      start: 3167
    functionDepth: 5
    functionLinenumber: 3167
    functionLinenumberEnd: 3207
    functionName: cli_parse_abort_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - ckch_store_free
    - cli_dynerr
    - memprintf
    - HA_SPIN_UNLOCK
    - cli_has_level
    - cli_dynmsg
    linkageType: ''
    returnType: int
    signature: int cli_parse_abort_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:3216,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3220,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3226,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3227,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:3229,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3231,1
    - Dst: ckch_store_new
      Src: /src/haproxy/src/ssl_ckch.c:3236,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3238,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:3243,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3244,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3246,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3247,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:3249,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3250,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3251,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 4
    argNames:
    - args
    - payload
    - appctx
    - private
    argTypes:
    - char**
    - char*
    - struct appctx*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3252
      start: 3210
    functionDepth: 6
    functionLinenumber: 3210
    functionLinenumberEnd: 3252
    functionName: cli_parse_new_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ebst_insert
    - cli_err
    - ckchs_lookup
    - cli_dynerr
    - free
    - memprintf
    - HA_SPIN_UNLOCK
    - ckch_store_new
    - cli_has_level
    - cli_dynmsg
    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:3261,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3265,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3267,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3268,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3272,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3273,1
    - Dst: ckchs_lookup
      Src: /src/haproxy/src/ssl_ckch.c:3277,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3279,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3284,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:3288,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3289,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:3293,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:3294,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3296,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3298,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3299,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3302,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3303,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3304,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: 3305
      start: 3255
    functionDepth: 5
    functionLinenumber: 3255
    functionLinenumberEnd: 3305
    functionName: cli_parse_del_cert
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - ckchs_lookup
    - ckch_store_free
    - cli_dynerr
    - memprintf
    - HA_SPIN_UNLOCK
    - ebmb_delete
    - LIST_ISEMPTY
    - cli_has_level
    - cli_dynmsg
    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:3316,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3320,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3326,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3327,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3329,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3331,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3335,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3337,1
    - Dst: ssl_store_add_uncommitted_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3344,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3347,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3349,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3350,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3352,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3353,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: 3354
      start: 3310
    functionDepth: 5
    functionLinenumber: 3310
    functionLinenumberEnd: 3354
    functionName: cli_parse_new_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ssl_store_create_cafile_entry
    - cli_err
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - ssl_store_add_uncommitted_cafile_entry
    - memprintf
    - HA_SPIN_UNLOCK
    - cli_has_level
    - cli_dynmsg
    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:3368,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3376,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3380,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3381,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3383,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3384,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ckch.c:3389,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3390,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3401,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3402,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3409,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3413,1
    - Dst: ssl_store_dup_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3421,1
    - Dst: ssl_store_dup_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3423,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3426,1
    - Dst: ssl_store_load_ca_from_buf
      Src: /src/haproxy/src/ssl_ckch.c:3433,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3434,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3445,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3447,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3451,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3458,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3461,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3462,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3463,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3463,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3466,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3467,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: 3469
      start: 3359
    functionDepth: 5
    functionLinenumber: 3359
    functionLinenumberEnd: 3469
    functionName: cli_parse_set_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ssl_store_load_ca_from_buf
    - chunk_strcpy
    - strcmp
    - free_trash_chunk
    - cli_err
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - memprintf
    - HA_SPIN_UNLOCK
    - alloc_trash_chunk
    - cli_has_level
    - ssl_store_dup_cafile_entry
    - ssl_store_delete_cafile_entry
    - cli_dynmsg
    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:3478,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3481,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3485,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3489,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3490,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3493,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3497,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3498,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3512,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3513,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3515,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: 3516
      start: 3476
    functionDepth: 5
    functionLinenumber: 3476
    functionLinenumberEnd: 3516
    functionName: cli_parse_commit_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - cli_dynerr
    - memprintf
    - HA_SPIN_UNLOCK
    - cli_has_level
    - applet_reserve_svcctx
    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:3552,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:3553,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:3572,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_ckch.c:3572,1
    - Dst: ssl_store_add_uncommitted_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3575,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/src/ssl_ckch.c:3581,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/src/ssl_ckch.c:3590,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/ssl_ckch.c:3595,1
    - Dst: ckch_inst_rebuild
      Src: /src/haproxy/src/ssl_ckch.c:3601,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/ssl_ckch.c:3607,1
    - Dst: ssl_commit_crlfile_cb
      Src: /src/haproxy/src/ssl_ckch.c:3616,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:3627,1
    - Dst: LIST_INSERT
      Src: /src/haproxy/src/ssl_ckch.c:3629,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:3634,1
    - Dst: __ssl_sock_load_new_ckch_instance
      Src: /src/haproxy/src/ssl_ckch.c:3635,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:3642,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/ssl_ckch.c:3643,1
    - Dst: typeof
      Src: /src/haproxy/src/ssl_ckch.c:3643,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/src/ssl_ckch.c:3645,1
    - Dst: __ckch_inst_free_locked
      Src: /src/haproxy/src/ssl_ckch.c:3646,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:3647,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:3651,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3652,1
    - Dst: applet_putstr
      Src: /src/haproxy/src/ssl_ckch.c:3658,1
    - Dst: chunk_printf
      Src: /src/haproxy/src/ssl_ckch.c:3680,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:3681,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 120
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3692
      start: 3523
    functionDepth: 9
    functionLinenumber: 3523
    functionLinenumberEnd: 3692
    functionName: cli_io_handler_commit_cafile_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ckch_inst_rebuild
    - applet_putstr
    - ebmb_delete
    - __ssl_sock_load_new_ckch_instance
    - chunk_printf
    - ssl_commit_crlfile_cb
    - LIST_ISEMPTY
    - ssl_store_delete_cafile_entry
    - LIST_INSERT
    - LIST_DEL_INIT
    - LIST_APPEND
    - typeof
    - LIST_ELEM
    - applet_have_more_data
    - list_for_each_entry
    - list_for_each_entry_from
    - free
    - applet_putchk
    - ssl_store_add_uncommitted_cafile_entry
    - __ckch_inst_free_locked
    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:3700,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3704,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3708,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3709,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3712,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3716,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3717,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3722,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3727,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3729,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:3730,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3733,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3735,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: 3736
      start: 3696
    functionDepth: 5
    functionLinenumber: 3696
    functionLinenumberEnd: 3736
    functionName: cli_parse_abort_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - cli_dynerr
    - memprintf
    - HA_SPIN_UNLOCK
    - cli_has_level
    - ssl_store_delete_cafile_entry
    - cli_dynmsg
    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:3748,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3749,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3751,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:3752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3753
      start: 3741
    functionDepth: 4
    functionLinenumber: 3741
    functionLinenumberEnd: 3753
    functionName: cli_release_commit_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ebmb_delete
    - ha_free
    - ssl_store_delete_cafile_entry
    - HA_SPIN_UNLOCK
    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:3764,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:3767,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3775,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3777,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3778,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3780,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3782,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3784,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:3785,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3786,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3788,1
    - Dst: X509_STORE_get0_objects
      Src: /src/haproxy/src/ssl_ckch.c:3793,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:3794,1
    - Dst: X509_OBJECT_get0_X509
      Src: /src/haproxy/src/ssl_ckch.c:3796,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_ckch.c:3796,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3801,1
    - Dst: show_cert_detail
      Src: /src/haproxy/src/ssl_ckch.c:3802,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:3808,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3816,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3820,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3825,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3827
      start: 3760
    functionDepth: 1
    functionLinenumber: 3760
    functionLinenumberEnd: 3827
    functionName: cli_io_handler_show_cafile_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_num
    - X509_OBJECT_get0_X509
    - free_trash_chunk
    - chunk_appendf
    - show_cert_detail
    - X509_STORE_get0_objects
    - applet_putchk
    - STACK_OF
    - alloc_trash_chunk
    - LIST_ISEMPTY
    - 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:3836,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:3842,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3843,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3847,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3848,1
    - Dst: strchr
      Src: /src/haproxy/src/ssl_ckch.c:3856,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_ckch.c:3860,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:3863,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:3882,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:3892,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:3904,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:3906,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3907,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: 3908
      start: 3834
    functionDepth: 5
    functionLinenumber: 3834
    functionLinenumberEnd: 3908
    functionName: cli_parse_show_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - memprintf
    - HA_SPIN_UNLOCK
    - strchr
    - cli_has_level
    - applet_reserve_svcctx
    - strtol
    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:3914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3915
      start: 3912
    functionDepth: 1
    functionLinenumber: 3912
    functionLinenumberEnd: 3915
    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:3922,1
    - Dst: X509_STORE_get0_objects
      Src: /src/haproxy/src/ssl_ckch.c:3925,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:3927,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cafile_entry
    argTypes:
    - struct cafile_entry*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3930
      start: 3919
    functionDepth: 1
    functionLinenumber: 3919
    functionLinenumberEnd: 3930
    functionName: get_certificate_count
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_num
    - X509_STORE_get0_objects
    - 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:3940,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3948,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3949,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3950,1
    - Dst: get_certificate_count
      Src: /src/haproxy/src/ssl_ckch.c:3950,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:3951,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3958,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:3959,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:3966,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3968,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:3970,1
    - Dst: get_certificate_count
      Src: /src/haproxy/src/ssl_ckch.c:3970,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:3973,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:3974,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3979,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:3983,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3986
      start: 3937
    functionDepth: 2
    functionLinenumber: 3937
    functionLinenumberEnd: 3986
    functionName: cli_io_handler_show_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ebmb_first
    - free_trash_chunk
    - chunk_appendf
    - get_certificate_count
    - applet_putchk
    - ebmb_next
    - ebmb_entry
    - alloc_trash_chunk
    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:3995,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:3999,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4001,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4002,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4006,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4007,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4011,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4013,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:4017,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4018,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:4023,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4024,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4026,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4028,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4029,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4032,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4033,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4034,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: 4035
      start: 3989
    functionDepth: 5
    functionLinenumber: 3989
    functionLinenumberEnd: 4035
    functionName: cli_parse_del_cafile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - memprintf
    - HA_SPIN_UNLOCK
    - ebmb_delete
    - LIST_ISEMPTY
    - cli_has_level
    - ssl_store_delete_cafile_entry
    - cli_dynmsg
    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:4044,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4048,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4054,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4055,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4057,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4059,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4063,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4065,1
    - Dst: ssl_store_add_uncommitted_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4071,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4074,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4076,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4077,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4079,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4080,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: 4081
      start: 4038
    functionDepth: 5
    functionLinenumber: 4038
    functionLinenumberEnd: 4081
    functionName: cli_parse_new_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ssl_store_create_cafile_entry
    - cli_err
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - ssl_store_add_uncommitted_cafile_entry
    - memprintf
    - HA_SPIN_UNLOCK
    - cli_has_level
    - cli_dynmsg
    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:4092,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4096,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4100,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4101,1
    - Dst: alloc_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4103,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4104,1
    - Dst: chunk_strcpy
      Src: /src/haproxy/src/ssl_ckch.c:4109,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4110,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4121,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4122,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4130,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4134,1
    - Dst: ssl_store_create_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4141,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4143,1
    - Dst: ssl_store_load_ca_from_buf
      Src: /src/haproxy/src/ssl_ckch.c:4149,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4150,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4161,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4163,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4167,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4174,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4177,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4178,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4179,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4179,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4182,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4183,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: 4185
      start: 4084
    functionDepth: 5
    functionLinenumber: 4084
    functionLinenumberEnd: 4185
    functionName: cli_parse_set_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - ssl_store_load_ca_from_buf
    - chunk_strcpy
    - strcmp
    - ssl_store_create_cafile_entry
    - free_trash_chunk
    - cli_err
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - memprintf
    - HA_SPIN_UNLOCK
    - alloc_trash_chunk
    - cli_has_level
    - ssl_store_delete_cafile_entry
    - cli_dynmsg
    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:4192,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4195,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4199,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4203,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4204,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4207,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4211,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4212,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4226,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4227,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4229,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: 4230
      start: 4190
    functionDepth: 5
    functionLinenumber: 4190
    functionLinenumberEnd: 4230
    functionName: cli_parse_commit_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - cli_dynerr
    - memprintf
    - HA_SPIN_UNLOCK
    - cli_has_level
    - applet_reserve_svcctx
    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:4243,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4244,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4246,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:4247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4248
      start: 4236
    functionDepth: 4
    functionLinenumber: 4236
    functionLinenumberEnd: 4248
    functionName: cli_release_commit_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ebmb_delete
    - ha_free
    - ssl_store_delete_cafile_entry
    - HA_SPIN_UNLOCK
    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:4257,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4261,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: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4268,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4269,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4273,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4275,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4279,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:4283,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4284,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:4289,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4290,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4292,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4294,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4295,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4298,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4299,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4300,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: 4301
      start: 4251
    functionDepth: 5
    functionLinenumber: 4251
    functionLinenumberEnd: 4301
    functionName: cli_parse_del_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - memprintf
    - HA_SPIN_UNLOCK
    - ebmb_delete
    - LIST_ISEMPTY
    - cli_has_level
    - ssl_store_delete_cafile_entry
    - cli_dynmsg
    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:4308,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4312,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4316,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4317,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4320,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4324,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4325,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4330,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4335,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4337,1
    - Dst: cli_dynmsg
      Src: /src/haproxy/src/ssl_ckch.c:4338,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4341,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4343,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: 4344
      start: 4304
    functionDepth: 5
    functionLinenumber: 4304
    functionLinenumberEnd: 4344
    functionName: cli_parse_abort_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - cli_dynerr
    - memprintf
    - HA_SPIN_UNLOCK
    - cli_has_level
    - ssl_store_delete_cafile_entry
    - cli_dynmsg
    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:4356,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:4361,1
    - Dst: BIO_new
      Src: /src/haproxy/src/ssl_ckch.c:4369,1
    - Dst: BIO_s_mem
      Src: /src/haproxy/src/ssl_ckch.c:4369,1
    - Dst: X509_CRL_get_version
      Src: /src/haproxy/src/ssl_ckch.c:4373,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4374,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4377,1
    - Dst: OBJ_nid2ln
      Src: /src/haproxy/src/ssl_ckch.c:4377,1
    - Dst: X509_CRL_get_signature_nid
      Src: /src/haproxy/src/ssl_ckch.c:4377,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4380,1
    - Dst: X509_CRL_get_issuer
      Src: /src/haproxy/src/ssl_ckch.c:4381,1
    - Dst: ssl_sock_get_dn_oneline
      Src: /src/haproxy/src/ssl_ckch.c:4383,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4386,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4389,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_ckch.c:4390,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:4391,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_ckch.c:4393,1
    - Dst: X509_CRL_get0_lastUpdate
      Src: /src/haproxy/src/ssl_ckch.c:4393,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:4395,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4397,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4401,1
    - Dst: chunk_reset
      Src: /src/haproxy/src/ssl_ckch.c:4402,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:4403,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_ckch.c:4405,1
    - Dst: X509_CRL_get0_nextUpdate
      Src: /src/haproxy/src/ssl_ckch.c:4405,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:4407,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4409,1
    - Dst: X509_CRL_get_REVOKED
      Src: /src/haproxy/src/ssl_ckch.c:4413,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/haproxy/src/ssl_ckch.c:4414,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4415,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4417,1
    - Dst: sk_X509_REVOKED_num
      Src: /src/haproxy/src/ssl_ckch.c:4419,1
    - Dst: sk_X509_REVOKED_value
      Src: /src/haproxy/src/ssl_ckch.c:4420,1
    - Dst: BIO_reset
      Src: /src/haproxy/src/ssl_ckch.c:4423,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ckch.c:4425,1
    - Dst: i2a_ASN1_INTEGER
      Src: /src/haproxy/src/ssl_ckch.c:4426,1
    - Dst: X509_REVOKED_get0_serialNumber
      Src: /src/haproxy/src/ssl_ckch.c:4426,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ckch.c:4427,1
    - Dst: ASN1_TIME_print
      Src: /src/haproxy/src/ssl_ckch.c:4428,1
    - Dst: X509_REVOKED_get0_revocationDate
      Src: /src/haproxy/src/ssl_ckch.c:4428,1
    - Dst: BIO_printf
      Src: /src/haproxy/src/ssl_ckch.c:4430,1
    - Dst: BIO_read
      Src: /src/haproxy/src/ssl_ckch.c:4432,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4434,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4439,1
    - Dst: BIO_free
      Src: /src/haproxy/src/ssl_ckch.c:4441,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 67
    argCount: 2
    argNames:
    - crl
    - out
    argTypes:
    - X509_CRL*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4444
      start: 4353
    functionDepth: 2
    functionLinenumber: 4353
    functionLinenumberEnd: 4444
    functionName: show_crl_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - free_trash_chunk
    - BIO_new
    - X509_CRL_get0_lastUpdate
    - X509_CRL_get0_nextUpdate
    - alloc_trash_chunk
    - BIO_s_mem
    - i2a_ASN1_INTEGER
    - ASN1_TIME_print
    - X509_REVOKED_get0_serialNumber
    - chunk_appendf
    - sk_X509_REVOKED_value
    - BIO_free
    - STACK_OF
    - X509_CRL_get_version
    - ssl_sock_get_dn_oneline
    - X509_CRL_get_signature_nid
    - X509_CRL_get_REVOKED
    - X509_REVOKED_get0_revocationDate
    - BIO_printf
    - sk_X509_REVOKED_num
    - X509_CRL_get_issuer
    - BIO_read
    - BIO_reset
    - OBJ_nid2ln
    - chunk_reset
    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:4454,1
    - Dst: STACK_OF
      Src: /src/haproxy/src/ssl_ckch.c:4457,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4464,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4466,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4467,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4469,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4471,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4473,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/src/ssl_ckch.c:4474,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4475,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4477,1
    - Dst: X509_STORE_get0_objects
      Src: /src/haproxy/src/ssl_ckch.c:4482,1
    - Dst: sk_X509_OBJECT_num
      Src: /src/haproxy/src/ssl_ckch.c:4483,1
    - Dst: X509_OBJECT_get0_X509_CRL
      Src: /src/haproxy/src/ssl_ckch.c:4484,1
    - Dst: sk_X509_OBJECT_value
      Src: /src/haproxy/src/ssl_ckch.c:4484,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4492,1
    - Dst: show_crl_detail
      Src: /src/haproxy/src/ssl_ckch.c:4493,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:4501,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4505,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4508,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 49
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4510
      start: 4450
    functionDepth: 3
    functionLinenumber: 4450
    functionLinenumberEnd: 4510
    functionName: cli_io_handler_show_crlfile_detail
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - sk_X509_OBJECT_num
    - show_crl_detail
    - X509_OBJECT_get0_X509_CRL
    - free_trash_chunk
    - chunk_appendf
    - X509_STORE_get0_objects
    - applet_putchk
    - STACK_OF
    - alloc_trash_chunk
    - LIST_ISEMPTY
    - 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:4518,1
    - Dst: cli_has_level
      Src: /src/haproxy/src/ssl_ckch.c:4524,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4525,1
    - Dst: HA_SPIN_TRYLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4529,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4530,1
    - Dst: strchr
      Src: /src/haproxy/src/ssl_ckch.c:4536,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_ckch.c:4540,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4543,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4559,1
    - Dst: ssl_store_get_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4569,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/src/ssl_ckch.c:4582,1
    - Dst: cli_dynerr
      Src: /src/haproxy/src/ssl_ckch.c:4584,1
    - Dst: cli_err
      Src: /src/haproxy/src/ssl_ckch.c:4585,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: 4586
      start: 4516
    functionDepth: 5
    functionLinenumber: 4516
    functionLinenumberEnd: 4586
    functionName: cli_parse_show_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - HA_SPIN_TRYLOCK
    - strcmp
    - cli_err
    - cli_dynerr
    - ssl_store_get_cafile_entry
    - memprintf
    - HA_SPIN_UNLOCK
    - strchr
    - cli_has_level
    - applet_reserve_svcctx
    - strtol
    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:4593,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4601,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4602,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:4603,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4610,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:4611,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:4618,1
    - Dst: chunk_appendf
      Src: /src/haproxy/src/ssl_ckch.c:4620,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:4623,1
    - Dst: applet_putchk
      Src: /src/haproxy/src/ssl_ckch.c:4624,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4629,1
    - Dst: free_trash_chunk
      Src: /src/haproxy/src/ssl_ckch.c:4633,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4636
      start: 4590
    functionDepth: 1
    functionLinenumber: 4590
    functionLinenumberEnd: 4636
    functionName: cli_io_handler_show_crlfile
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ebmb_first
    - free_trash_chunk
    - chunk_appendf
    - applet_putchk
    - ebmb_next
    - ebmb_entry
    - alloc_trash_chunk
    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:4642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4643
      start: 4640
    functionDepth: 1
    functionLinenumber: 4640
    functionLinenumberEnd: 4643
    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:4653,1
    - Dst: eb_next
      Src: /src/haproxy/src/ssl_ckch.c:4655,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:4656,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:4657,1
    - Dst: ebmb_first
      Src: /src/haproxy/src/ssl_ckch.c:4662,1
    - Dst: ebmb_entry
      Src: /src/haproxy/src/ssl_ckch.c:4666,1
    - Dst: ebmb_next
      Src: /src/haproxy/src/ssl_ckch.c:4667,1
    - Dst: ebmb_delete
      Src: /src/haproxy/src/ssl_ckch.c:4668,1
    - Dst: ssl_store_delete_cafile_entry
      Src: /src/haproxy/src/ssl_ckch.c:4669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4671
      start: 4646
    functionDepth: 5
    functionLinenumber: 4646
    functionLinenumberEnd: 4671
    functionName: ckch_deinit
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - eb_first
    - ebmb_first
    - eb_next
    - ckch_store_free
    - ebmb_next
    - ebmb_entry
    - ebmb_delete
    - ssl_store_delete_cafile_entry
    linkageType: ''
    returnType: void
    signature: void ckch_deinit()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/haproxy/src/ssl_ckch.c:4769,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4772,1
    - Dst: func
      Src: /src/haproxy/src/ssl_ckch.c:4782,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4785,1
    - Dst: ssl_sock_free_cert_key_and_chain_contents
      Src: /src/haproxy/src/ssl_ckch.c:4801,1
    - Dst: ERR_clear_error
      Src: /src/haproxy/src/ssl_ckch.c:4802,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: 4805
      start: 4742
    functionDepth: 5
    functionLinenumber: 4742
    functionLinenumberEnd: 4805
    functionName: ckch_store_load_files
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 3
    functionsReached:
    - ERR_clear_error
    - ssl_sock_free_cert_key_and_chain_contents
    - memprintf
    - func
    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:4814,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4821,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:4829,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:4830,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:4833,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:4834,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: 4838
      start: 4808
    functionDepth: 5
    functionLinenumber: 4808
    functionLinenumberEnd: 4838
    functionName: crtstore_parse_path_base
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - strdup
    - free
    - memprintf
    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:4865,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4866,1
    - Dst: used::used
      Src: /src/haproxy/src/ssl_ckch.c:4869,1
    - Dst: used::used
      Src: /src/haproxy/src/ssl_ckch.c:4873,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4874,1
    - Dst: used::used
      Src: /src/haproxy/src/ssl_ckch.c:4878,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4885,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4895,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4896,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:4907,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4922,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4927,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4930,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4933,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4939,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4941,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: 4950
      start: 4854
    functionDepth: 5
    functionLinenumber: 4854
    functionLinenumberEnd: 4950
    functionName: ckch_conf_cmp
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - memprintf
    - used::used
    - strcmp
    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:4959,1
    - Dst: err::err
      Src: /src/haproxy/src/ssl_ckch.c:4959,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - prev
    - err
    argTypes:
    - struct ckch_conf*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4960
      start: 4955
    functionDepth: 6
    functionLinenumber: 4955
    functionLinenumberEnd: 4960
    functionName: ckch_conf_cmp_empty
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 1
    functionsReached:
    - ckch_conf_cmp
    - err::err
    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:4969,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:4978,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4979,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:4983,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:4985,1
    - Dst: ha_freearray
      Src: /src/haproxy/src/ssl_ckch.c:4997,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:4998,1
    - Dst: realloc
      Src: /src/haproxy/src/ssl_ckch.c:5005,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5007,1
    - Dst: my_strndup
      Src: /src/haproxy/src/ssl_ckch.c:5011,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5013,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5044,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5046,1
    - Dst: strtol
      Src: /src/haproxy/src/ssl_ckch.c:5053,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5055,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5063,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5065,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5068,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: 5079
      start: 4963
    functionDepth: 9
    functionLinenumber: 4963
    functionLinenumberEnd: 5079
    functionName: ckch_conf_parse
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 2
    functionsReached:
    - my_strndup
    - strdup
    - ha_freearray
    - strcmp
    - ha_free
    - realloc
    - free
    - memprintf
    - ha_alert
    - strtol
    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:5089,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5090,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5091,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5092,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5093,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5095,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5101,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - conf
    argTypes:
    - struct ckch_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5105
      start: 5082
    functionDepth: 3
    functionLinenumber: 5082
    functionLinenumberEnd: 5105
    functionName: ckch_conf_clean
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 4
    functionsReached:
    - free
    - ha_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:5125,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5129,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_ckch.c:5135,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5137,1
    - Dst: ckch_conf_parse
      Src: /src/haproxy/src/ssl_ckch.c:5145,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5151,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5160,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_ckch.c:5180,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5182,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_ckch.c:5192,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5194,1
    - Dst: ckch_store_new
      Src: /src/haproxy/src/ssl_ckch.c:5202,1
    - Dst: ckch_store_load_files
      Src: /src/haproxy/src/ssl_ckch.c:5206,1
    - Dst: ebst_insert
      Src: /src/haproxy/src/ssl_ckch.c:5213,1
    - Dst: memprintf
      Src: /src/haproxy/src/ssl_ckch.c:5214,1
    - Dst: ckch_store_free
      Src: /src/haproxy/src/ssl_ckch.c:5223,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5227,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: 5230
      start: 5109
    functionDepth: 10
    functionLinenumber: 5109
    functionLinenumberEnd: 5230
    functionName: crtstore_parse_load
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - ebst_insert
    - strcmp
    - snprintf
    - ckch_store_free
    - memprintf
    - ha_alert
    - ckch_store_load_files
    - ckch_store_new
    - ckch_conf_parse
    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:5247,1
    - Dst: snprintf
      Src: /src/haproxy/src/ssl_ckch.c:5251,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5253,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5261,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5266,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:5268,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5269,1
    - Dst: strdup
      Src: /src/haproxy/src/ssl_ckch.c:5271,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/ssl_ckch.c:5277,1
    - Dst: strcmp
      Src: /src/haproxy/src/ssl_ckch.c:5281,1
    - Dst: check_kw_experimental
      Src: /src/haproxy/src/ssl_ckch.c:5282,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5283,1
    - Dst: parse
      Src: /src/haproxy/src/ssl_ckch.c:5289,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5291,1
    - Dst: ha_warning
      Src: /src/haproxy/src/ssl_ckch.c:5296,1
    - Dst: cfg_find_best_match
      Src: /src/haproxy/src/ssl_ckch.c:5305,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5307,1
    - Dst: ha_alert
      Src: /src/haproxy/src/ssl_ckch.c:5309,1
    - Dst: free
      Src: /src/haproxy/src/ssl_ckch.c:5316,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 72
    argCount: 4
    argNames:
    - file
    - linenum
    - args
    - kwm
    argTypes:
    - char*
    - int
    - char**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5318
      start: 5238
    functionDepth: 9
    functionLinenumber: 5238
    functionLinenumberEnd: 5318
    functionName: cfg_parse_crtstore
    functionSourceFile: /src/haproxy/src/ssl_ckch.c
    functionUses: 0
    functionsReached:
    - strdup
    - cfg_find_best_match
    - ha_warning
    - list_for_each_entry
    - check_kw_experimental
    - strcmp
    - snprintf
    - ha_free
    - free
    - ha_alert
    - parse
    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:5323,1
    - Dst: ha_free
      Src: /src/haproxy/src/ssl_ckch.c:5324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5327
      start: 5320
    functionDepth: 1
    functionLinenumber: 5320
    functionLinenumberEnd: 5327
    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: LIST_APPEND
      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: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: tcp_req_conn_keywords_register
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void tcp_req_conn_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      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: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: tcp_req_sess_keywords_register
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void tcp_req_sess_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      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: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: tcp_req_cont_keywords_register
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    linkageType: ''
    returnType: void
    signature: void tcp_req_cont_keywords_register(struct action_kw_list *kw_list)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LIST_APPEND
      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: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: tcp_res_cont_keywords_register
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - LIST_APPEND
    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:164,1
    - Dst: acl_exec_cond
      Src: /src/haproxy/src/tcp_rules.c:171,1
    - Dst: acl_pass
      Src: /src/haproxy/src/tcp_rules.c:175,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcp_rules.c:187,1
    - Dst: send_log
      Src: /src/haproxy/src/tcp_rules.c:198,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:213,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/tcp_rules.c:254,1
    - Dst: channel_dont_connect
      Src: /src/haproxy/src/tcp_rules.c:258,1
    - Dst: tick_isset
      Src: /src/haproxy/src/tcp_rules.c:260,1
    - Dst: tick_add
      Src: /src/haproxy/src/tcp_rules.c:261,1
    - Dst: tick_first
      Src: /src/haproxy/src/tcp_rules.c:262,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:262,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/tcp_rules.c:263,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:268,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:270,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:271,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:276,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:278,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:281,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:286,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:288,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:289,1
    - Dst: sc_must_kill_conn
      Src: /src/haproxy/src/tcp_rules.c:292,1
    - Dst: stream_abort
      Src: /src/haproxy/src/tcp_rules.c:293,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/tcp_rules.c:305,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 175
    argCount: 3
    argNames:
    - s
    - req
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 96
    functionDepth: 10
    functionLinenumber: 96
    functionLinenumberEnd: 307
    functionName: tcp_inspect_request
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - channel_dont_connect
    - acl_exec_cond
    - _HA_ATOMIC_INC
    - tick_is_expired
    - tick_isset
    - sc_waiting_room
    - stream_abort
    - sc_must_kill_conn
    - DBG_TRACE_ENTER
    - acl_pass
    - channel_full
    - tick_add
    - list_for_each_entry
    - DBG_TRACE_LEAVE
    - send_log
    - struct act_rule*::action_ptr
    - stream_report_term_evt
    - tick_first
    - DBG_TRACE_DEVEL
    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:323,1
    - Dst: channel_full
      Src: /src/haproxy/src/tcp_rules.c:337,1
    - Dst: sc_waiting_room
      Src: /src/haproxy/src/tcp_rules.c:338,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:339,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:342,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcp_rules.c:372,1
    - Dst: task_wakeup
      Src: /src/haproxy/src/tcp_rules.c:380,1
    - Dst: acl_exec_cond
      Src: /src/haproxy/src/tcp_rules.c:387,1
    - Dst: acl_pass
      Src: /src/haproxy/src/tcp_rules.c:391,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcp_rules.c:403,1
    - Dst: send_log
      Src: /src/haproxy/src/tcp_rules.c:414,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:429,1
    - Dst: sc_must_kill_conn
      Src: /src/haproxy/src/tcp_rules.c:458,1
    - Dst: sc_abort
      Src: /src/haproxy/src/tcp_rules.c:459,1
    - Dst: sc_shutdown
      Src: /src/haproxy/src/tcp_rules.c:460,1
    - Dst: DBG_TRACE_LEAVE
      Src: /src/haproxy/src/tcp_rules.c:479,1
    - Dst: channel_dont_close
      Src: /src/haproxy/src/tcp_rules.c:484,1
    - Dst: tick_isset
      Src: /src/haproxy/src/tcp_rules.c:485,1
    - Dst: tick_add
      Src: /src/haproxy/src/tcp_rules.c:486,1
    - Dst: tick_first
      Src: /src/haproxy/src/tcp_rules.c:487,1
    - Dst: tick_is_expired
      Src: /src/haproxy/src/tcp_rules.c:487,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/tcp_rules.c:488,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:493,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:495,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:497,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:499,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:500,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:505,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:507,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:509,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:511,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:514,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:519,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:521,1
    - Dst: stream_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:522,1
    - Dst: sc_must_kill_conn
      Src: /src/haproxy/src/tcp_rules.c:525,1
    - Dst: stream_abort
      Src: /src/haproxy/src/tcp_rules.c:526,1
    - Dst: DBG_TRACE_DEVEL
      Src: /src/haproxy/src/tcp_rules.c:537,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 193
    argCount: 3
    argNames:
    - s
    - rep
    - an_bit
    argTypes:
    - struct stream*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 315
    functionDepth: 10
    functionLinenumber: 315
    functionLinenumberEnd: 539
    functionName: tcp_inspect_response
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - task_wakeup
    - acl_exec_cond
    - _HA_ATOMIC_INC
    - tick_is_expired
    - tick_isset
    - sc_waiting_room
    - stream_abort
    - sc_must_kill_conn
    - DBG_TRACE_ENTER
    - acl_pass
    - DBG_TRACE_DEVEL
    - channel_full
    - channel_dont_close
    - tick_add
    - list_for_each_entry
    - sc_abort
    - DBG_TRACE_LEAVE
    - send_log
    - stream_report_term_evt
    - sc_shutdown
    - tick_first
    - struct act_rule*::action_ptr
    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:551,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/src/tcp_rules.c:561,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/tcp_rules.c:563,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcp_rules.c:568,1
    - Dst: send_log
      Src: /src/haproxy/src/tcp_rules.c:573,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:597,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:599,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/tcp_rules.c:606,1
    - Dst: xprt_add_hs
      Src: /src/haproxy/src/tcp_rules.c:615,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/src/tcp_rules.c:630,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 74
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 547
    functionDepth: 10
    functionLinenumber: 547
    functionLinenumberEnd: 632
    functionName: tcp_exec_l4_rules
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - acl_match_cond
    - list_for_each_entry
    - objt_conn
    - xprt_add_hs
    - send_log
    - _HA_ATOMIC_INC
    - conn_report_term_evt
    - struct act_rule*::action_ptr
    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:651,1
    - Dst: acl_match_cond
      Src: /src/haproxy/src/tcp_rules.c:652,1
    - Dst: struct act_rule*::action_ptr
      Src: /src/haproxy/src/tcp_rules.c:657,1
    - Dst: send_log
      Src: /src/haproxy/src/tcp_rules.c:662,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:686,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/src/tcp_rules.c:688,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 641
    functionDepth: 10
    functionLinenumber: 641
    functionLinenumberEnd: 701
    functionName: tcp_exec_l5_rules
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 1
    functionsReached:
    - acl_match_cond
    - list_for_each_entry
    - send_log
    - _HA_ATOMIC_INC
    - struct act_rule*::action_ptr
    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:710,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:711,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:716,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:721,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:726,1
    - Dst: tcp_res_cont_action
      Src: /src/haproxy/src/tcp_rules.c:733,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/tcp_rules.c:737,1
    - Dst: action_suggest
      Src: /src/haproxy/src/tcp_rules.c:741,1
    - Dst: action_build_list
      Src: /src/haproxy/src/tcp_rules.c:743,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:744,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:747,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:755,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:755,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/tcp_rules.c:756,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:757,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:759,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:764,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:766,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: 770
      start: 704
    functionDepth: 6
    functionLinenumber: 704
    functionLinenumberEnd: 770
    functionName: tcp_parse_response_rule
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - tcp_res_cont_action
    - action_suggest
    - strcmp
    - struct action_kw*::parse
    - strlen
    - build_acl_cond
    - memprintf
    - proxy_type_str
    - action_build_list
    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:792,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/tcp_rules.c:795,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/tcp_rules.c:800,1
    - Dst: stream_track_stkctr
      Src: /src/haproxy/src/tcp_rules.c:801,1
    - Dst: stkctr_set_flags
      Src: /src/haproxy/src/tcp_rules.c:802,1
    - Dst: stkctr_set_flags
      Src: /src/haproxy/src/tcp_rules.c:804,1
    - Dst: stkctr_entry
      Src: /src/haproxy/src/tcp_rules.c:808,1
    - Dst: stktable_fetch_key
      Src: /src/haproxy/src/tcp_rules.c:811,1
    - Dst: stktable_get_entry
      Src: /src/haproxy/src/tcp_rules.c:812,1
    - Dst: stream_track_stkctr
      Src: /src/haproxy/src/tcp_rules.c:813,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: 818
      start: 777
    functionDepth: 5
    functionLinenumber: 777
    functionLinenumberEnd: 818
    functionName: tcp_action_track_sc
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - stkctr_entry
    - stktable_fetch_key
    - stktable_get_entry
    - stkctr_set_flags
    - stream_track_stkctr
    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:837,1
    - Dst: pool_alloc
      Src: /src/haproxy/src/tcp_rules.c:845,1
    - Dst: memcpy
      Src: /src/haproxy/src/tcp_rules.c:854,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: 859
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 859
    functionName: tcp_action_capture
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - sample_fetch_as_type
    - memcpy
    - pool_alloc
    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:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 861
    functionDepth: 5
    functionLinenumber: 861
    functionLinenumberEnd: 864
    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:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 867
    functionDepth: 5
    functionLinenumber: 867
    functionLinenumberEnd: 870
    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: 35
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/haproxy/src/tcp_rules.c:878,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:879,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:884,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:889,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:894,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:901,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:908,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:910,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcp_rules.c:917,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:919,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:926,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcp_rules.c:928,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:929,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:933,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:936,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:939,1
    - Dst: atoi
      Src: /src/haproxy/src/tcp_rules.c:943,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:945,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:948,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:955,1
    - Dst: free
      Src: /src/haproxy/src/tcp_rules.c:958,1
    - Dst: calloc
      Src: /src/haproxy/src/tcp_rules.c:962,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:964,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:965,1
    - Dst: create_pool
      Src: /src/haproxy/src/tcp_rules.c:972,1
    - Dst: strncmp
      Src: /src/haproxy/src/tcp_rules.c:988,1
    - Dst: cfg_parse_track_sc_num
      Src: /src/haproxy/src/tcp_rules.c:997,1
    - Dst: strlen
      Src: /src/haproxy/src/tcp_rules.c:997,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:998,1
    - Dst: sample_parse_expr
      Src: /src/haproxy/src/tcp_rules.c:1003,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1005,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1012,1
    - Dst: sample_src_names
      Src: /src/haproxy/src/tcp_rules.c:1014,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:1015,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1022,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1025,1
    - Dst: release_sample_expr
      Src: /src/haproxy/src/tcp_rules.c:1028,1
    - Dst: strdup
      Src: /src/haproxy/src/tcp_rules.c:1032,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1041,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1042,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1043,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1045,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1050,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1052,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1059,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1060,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1061,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1063,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1068,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1070,1
    - Dst: tcp_req_conn_action
      Src: /src/haproxy/src/tcp_rules.c:1081,1
    - Dst: tcp_req_sess_action
      Src: /src/haproxy/src/tcp_rules.c:1085,1
    - Dst: tcp_req_cont_action
      Src: /src/haproxy/src/tcp_rules.c:1089,1
    - Dst: struct action_kw*::parse
      Src: /src/haproxy/src/tcp_rules.c:1094,1
    - Dst: action_build_list
      Src: /src/haproxy/src/tcp_rules.c:1102,1
    - Dst: action_suggest
      Src: /src/haproxy/src/tcp_rules.c:1103,1
    - Dst: action_build_list
      Src: /src/haproxy/src/tcp_rules.c:1106,1
    - Dst: action_suggest
      Src: /src/haproxy/src/tcp_rules.c:1107,1
    - Dst: action_build_list
      Src: /src/haproxy/src/tcp_rules.c:1110,1
    - Dst: action_suggest
      Src: /src/haproxy/src/tcp_rules.c:1111,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1114,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1118,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1127,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1127,1
    - Dst: build_acl_cond
      Src: /src/haproxy/src/tcp_rules.c:1128,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1129,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1131,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1136,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1138,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 179
    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: 1142
      start: 873
    functionDepth: 7
    functionLinenumber: 873
    functionLinenumberEnd: 1142
    functionName: tcp_parse_request_rule
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - action_suggest
    - tcp_req_conn_action
    - sample_parse_expr
    - atoi
    - sample_src_names
    - proxy_type_str
    - action_build_list
    - strcmp
    - struct action_kw*::parse
    - strlen
    - cfg_parse_track_sc_num
    - calloc
    - strdup
    - tcp_req_cont_action
    - strncmp
    - tcp_req_sess_action
    - create_pool
    - memprintf
    - release_sample_expr
    - build_acl_cond
    - free
    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: 18
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1161,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1162,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1166,1
    - Dst: strlen
      Src: /src/haproxy/src/tcp_rules.c:1167,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1168,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/tcp_rules.c:1173,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1174,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1176,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1179,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1181,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1183,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1188,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1189,1
    - Dst: new_act_rule
      Src: /src/haproxy/src/tcp_rules.c:1196,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1198,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcp_rules.c:1201,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1205,1
    - Dst: tcp_parse_response_rule
      Src: /src/haproxy/src/tcp_rules.c:1212,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1215,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1218,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1220,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1222,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/tcp_rules.c:1225,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1226,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1230,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1232,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1234,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1236,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1238,1
    - Dst: warnif_misplaced_tcp_res_cont
      Src: /src/haproxy/src/tcp_rules.c:1243,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcp_rules.c:1244,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1247,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1249,1
    - Dst: free_act_rule
      Src: /src/haproxy/src/tcp_rules.c:1255,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 69
    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: 1147
    functionDepth: 7
    functionLinenumber: 1147
    functionLinenumberEnd: 1257
    functionName: tcp_parse_tcp_rep
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - sample_ckp_names
    - strcmp
    - acl_cond_conflicts
    - acl_cond_kw_conflicts
    - parse_time_err
    - LIST_APPEND
    - strlen
    - tcp_parse_response_rule
    - LIST_INIT
    - memprintf
    - warnif_misplaced_tcp_res_cont
    - free_act_rule
    - proxy_type_str
    - new_act_rule
    - LIST_ELEM
    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: 34
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1278,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1280,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1281,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1285,1
    - Dst: strlen
      Src: /src/haproxy/src/tcp_rules.c:1286,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1287,1
    - Dst: parse_time_err
      Src: /src/haproxy/src/tcp_rules.c:1292,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1293,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1295,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1298,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1300,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1302,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1307,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1308,1
    - Dst: new_act_rule
      Src: /src/haproxy/src/tcp_rules.c:1315,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1317,1
    - Dst: LIST_INIT
      Src: /src/haproxy/src/tcp_rules.c:1320,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1324,1
    - Dst: tcp_parse_request_rule
      Src: /src/haproxy/src/tcp_rules.c:1332,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1335,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1338,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1340,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1342,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/tcp_rules.c:1345,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1346,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1350,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1352,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1354,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: warnif_misplaced_tcp_req_cont
      Src: /src/haproxy/src/tcp_rules.c:1363,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcp_rules.c:1364,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1366,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1370,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1371,1
    - Dst: tcp_parse_request_rule
      Src: /src/haproxy/src/tcp_rules.c:1377,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1380,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1383,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1385,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1387,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/tcp_rules.c:1390,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1391,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1395,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1397,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1399,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1401,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1403,1
    - Dst: warnif_misplaced_tcp_req_conn
      Src: /src/haproxy/src/tcp_rules.c:1408,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcp_rules.c:1409,1
    - Dst: strcmp
      Src: /src/haproxy/src/tcp_rules.c:1411,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1415,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1416,1
    - Dst: tcp_parse_request_rule
      Src: /src/haproxy/src/tcp_rules.c:1422,1
    - Dst: acl_cond_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1425,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1428,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1430,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1432,1
    - Dst: LIST_ELEM
      Src: /src/haproxy/src/tcp_rules.c:1435,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1436,1
    - Dst: acl_cond_kw_conflicts
      Src: /src/haproxy/src/tcp_rules.c:1439,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1441,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1443,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1445,1
    - Dst: sample_ckp_names
      Src: /src/haproxy/src/tcp_rules.c:1447,1
    - Dst: warnif_misplaced_tcp_req_sess
      Src: /src/haproxy/src/tcp_rules.c:1452,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/src/tcp_rules.c:1453,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1457,1
    - Dst: memprintf
      Src: /src/haproxy/src/tcp_rules.c:1461,1
    - Dst: proxy_type_str
      Src: /src/haproxy/src/tcp_rules.c:1463,1
    - Dst: free_act_rule
      Src: /src/haproxy/src/tcp_rules.c:1469,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 130
    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: 1471
      start: 1263
    functionDepth: 8
    functionLinenumber: 1263
    functionLinenumberEnd: 1471
    functionName: tcp_parse_tcp_req
    functionSourceFile: /src/haproxy/src/tcp_rules.c
    functionUses: 0
    functionsReached:
    - warnif_misplaced_tcp_req_cont
    - sample_ckp_names
    - warnif_misplaced_tcp_req_sess
    - strcmp
    - tcp_parse_request_rule
    - acl_cond_conflicts
    - acl_cond_kw_conflicts
    - parse_time_err
    - LIST_APPEND
    - strlen
    - LIST_INIT
    - memprintf
    - free_act_rule
    - proxy_type_str
    - new_act_rule
    - LIST_ELEM
    - warnif_misplaced_tcp_req_conn
    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: 20
    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: 46
    EdgeCount: 46
    ICount: 93
    argCount: 4
    argNames:
    - smp
    - type
    - ch_data
    - len
    argTypes:
    - struct sample*
    - enum client_hello_type
    - unsigned char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 193
    functionName: smp_client_hello_parse
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_data
    - IS_HTX_STRM
    - ci_head
    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: 208
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 208
    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:218,1
    - Dst: htxbuf
      Src: /src/haproxy/src/payload.c:219,1
    - Dst: co_data
      Src: /src/haproxy/src/payload.c:220,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:223,1
    - Dst: obj_type
      Src: /src/haproxy/src/payload.c:225,1
    - Dst: __objt_check
      Src: /src/haproxy/src/payload.c:226,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/payload.c:229,1
    - Dst: htxbuf
      Src: /src/haproxy/src/payload.c:229,1
    - Dst: b_data
      Src: /src/haproxy/src/payload.c:229,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: 237
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 237
    functionName: smp_fetch_len
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - htxbuf
    - IS_HTX_STRM
    - co_data
    - obj_type
    - IS_HTX_SC
    - __objt_check
    - b_data
    - ci_data
    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:251,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: 294
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 294
    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:306,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: 341
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 341
    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:355,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:359,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:360,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: 404
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 404
    functionName: smp_fetch_ssl_hello_type
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_data
    - IS_HTX_STRM
    - ci_head
    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:425,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:430,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:434,1
    - Dst: msg_len < 6 || msg_len >
      Src: /src/haproxy/src/payload.c:448,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:505,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:505,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:505,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:506,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:506,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:506,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: 523
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 523
    functionName: smp_fetch_req_ssl_ver
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - b_orig
    - IS_HTX_STRM
    - ci_data
    - msg_len < 6 || msg_len >
    - channel_recv_limit
    - ci_head
    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:535,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: 554
      start: 528
    functionDepth: 2
    functionLinenumber: 528
    functionLinenumberEnd: 554
    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:566,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: 609
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 609
    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:621,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: 664
      start: 614
    functionDepth: 2
    functionLinenumber: 614
    functionLinenumberEnd: 664
    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:680,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/src/payload.c:705,1
    - Dst: memmove
      Src: /src/haproxy/src/payload.c:708,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:708,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: 729
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 729
    functionName: smp_fetch_ssl_keyshare_groups
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - b_orig
    - memmove
    - smp_client_hello_parse
    - get_trash_chunk
    linkageType: ''
    returnType: int
    signature: int smp_fetch_ssl_keyshare_groups(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:775,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:779,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:780,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 107
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 898
    functionName: smp_fetch_ssl_hello_sni
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_data
    - IS_HTX_STRM
    - ci_head
    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:945,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:949,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:950,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: 1073
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 1073
    functionName: smp_fetch_ssl_hello_alpn
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - ci_data
    - IS_HTX_STRM
    - ci_head
    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:1088,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1092,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/payload.c:1098,1
    - Dst: strncasecmp
      Src: /src/haproxy/src/payload.c:1114,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: 1160
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1160
    functionName: fetch_rdp_cookie_name
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 2
    functionsReached:
    - ci_data
    - ci_head
    - strncasecmp
    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:1175,1
    - Dst: fetch_rdp_cookie_name
      Src: /src/haproxy/src/payload.c:1178,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: 1181
      start: 1168
    functionDepth: 2
    functionLinenumber: 1168
    functionLinenumberEnd: 1181
    functionName: smp_fetch_rdp_cookie
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - fetch_rdp_cookie_name
    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:1189,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: 1198
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1198
    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:1219,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1222,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1223,1
    - Dst: obj_type
      Src: /src/haproxy/src/payload.c:1225,1
    - Dst: __objt_check
      Src: /src/haproxy/src/payload.c:1226,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/payload.c:1229,1
    - Dst: b_head
      Src: /src/haproxy/src/payload.c:1231,1
    - Dst: b_data
      Src: /src/haproxy/src/payload.c:1232,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/payload.c:1268,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1274
      start: 1201
    functionDepth: 1
    functionLinenumber: 1201
    functionLinenumberEnd: 1274
    functionName: smp_fetch_payload_lv
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - obj_type
    - IS_HTX_SC
    - __objt_check
    - b_data
    - ci_data
    - chunk_initlen
    - b_head
    - ci_head
    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:1288,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1291,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1292,1
    - Dst: obj_type
      Src: /src/haproxy/src/payload.c:1294,1
    - Dst: __objt_check
      Src: /src/haproxy/src/payload.c:1295,1
    - Dst: IS_HTX_SC
      Src: /src/haproxy/src/payload.c:1298,1
    - Dst: b_head
      Src: /src/haproxy/src/payload.c:1300,1
    - Dst: b_data
      Src: /src/haproxy/src/payload.c:1301,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/payload.c:1318,1
    - Dst: channel_may_recv
      Src: /src/haproxy/src/payload.c:1320,1
    - Dst: channel_input_closed
      Src: /src/haproxy/src/payload.c:1320,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1328
      start: 1277
    functionDepth: 1
    functionLinenumber: 1277
    functionLinenumberEnd: 1328
    functionName: smp_fetch_payload
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - IS_HTX_STRM
    - obj_type
    - IS_HTX_SC
    - __objt_check
    - b_data
    - channel_may_recv
    - ci_data
    - chunk_initlen
    - b_head
    - channel_input_closed
    - ci_head
    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:1349,1
    - Dst: memprintf
      Src: /src/haproxy/src/payload.c:1354,1
    - Dst: read_int64
      Src: /src/haproxy/src/payload.c:1364,1
    - Dst: memprintf
      Src: /src/haproxy/src/payload.c:1366,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/payload.c:1369,1
    - Dst: memprintf
      Src: /src/haproxy/src/payload.c:1374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1343
    functionDepth: 5
    functionLinenumber: 1343
    functionLinenumberEnd: 1381
    functionName: val_payload_lv
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - read_int64
    - memprintf
    linkageType: ''
    returnType: int
    signature: int val_payload_lv(struct arg *arg, char **err_msg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:1403,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1410,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:1415,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1415,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1415,1
    - Dst: read_n32
      Src: /src/haproxy/src/payload.c:1421,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1421,1
    - Dst: hex2i
      Src: /src/haproxy/src/payload.c:1425,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1425,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1384
    functionDepth: 1
    functionLinenumber: 1384
    functionLinenumberEnd: 1462
    functionName: smp_fetch_distcc_param
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - b_orig
    - IS_HTX_STRM
    - read_n32
    - ci_data
    - channel_recv_limit
    - hex2i
    - ci_head
    linkageType: ''
    returnType: int
    signature: int smp_fetch_distcc_param(const struct arg *arg_p, struct sample *smp,
      const char *kw, void *private)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/src/payload.c:1484,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1491,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:1495,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1495,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1495,1
    - Dst: read_n32
      Src: /src/haproxy/src/payload.c:1501,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1501,1
    - Dst: hex2i
      Src: /src/haproxy/src/payload.c:1505,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1505,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1529,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1529,1
    - Dst: ci_data
      Src: /src/haproxy/src/payload.c:1529,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:1532,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1532,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1532,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/src/payload.c:1535,1
    - Dst: b_orig
      Src: /src/haproxy/src/payload.c:1535,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1535,1
    - Dst: chunk_initlen
      Src: /src/haproxy/src/payload.c:1539,1
    - Dst: ci_head
      Src: /src/haproxy/src/payload.c:1539,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 56
    argCount: 4
    argNames:
    - arg_p
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1465
    functionDepth: 1
    functionLinenumber: 1465
    functionLinenumberEnd: 1554
    functionName: smp_fetch_distcc_body
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - b_orig
    - IS_HTX_STRM
    - read_n32
    - ci_data
    - chunk_initlen
    - channel_recv_limit
    - hex2i
    - ci_head
    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:1569,1
    - Dst: chunk_destroy
      Src: /src/haproxy/src/payload.c:1579,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - arg
    - err_msg
    argTypes:
    - struct arg*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1564
    functionDepth: 5
    functionLinenumber: 1564
    functionLinenumberEnd: 1588
    functionName: val_distcc
    functionSourceFile: /src/haproxy/src/payload.c
    functionUses: 0
    functionsReached:
    - chunk_destroy
    - memprintf
    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: 148
    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: 30
    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: 258
    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: 131
    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: 131
    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: 95
    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: 52
    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: 145
    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: 56
    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: 33
    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: 271
    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: 111
    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: 2
    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: 1
    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: 4
    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: 2
    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: 5
    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: 3
    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:153,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:156,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:156,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:156,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:160,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:160,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:162,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: 165
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 165
    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: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    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:192,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:194,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:194,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:195,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:195,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/htx-t.h:197,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: 200
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 200
    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: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    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: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: obj_type
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 59
    functionsReached: []
    linkageType: ''
    returnType: enum obj_type
    signature: enum obj_type obj_type(const enum obj_type *t)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/obj_type.h:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 63
    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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: __objt_listener
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 18
    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:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    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:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: objt_proxy
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 16
    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:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: __objt_server
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 50
    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:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 106
    functionName: objt_server
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 94
    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:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    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:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 118
    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:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    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:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 130
    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: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    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:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    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:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 147
    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:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: objt_conn
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 94
    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:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 159
    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:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    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:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    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:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 178
    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:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: __objt_check
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 35
    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:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: objt_check
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 55
    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:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    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:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/obj_type.h:208,1
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/obj_type.h:210,1
    - Dst: __objt_proxy
      Src: /src/haproxy/include/haproxy/obj_type.h:211,1
    - Dst: __objt_server
      Src: /src/haproxy/include/haproxy/obj_type.h:212,1
    - Dst: __objt_applet
      Src: /src/haproxy/include/haproxy/obj_type.h:213,1
    - Dst: __objt_appctx
      Src: /src/haproxy/include/haproxy/obj_type.h:214,1
    - Dst: __objt_conn
      Src: /src/haproxy/include/haproxy/obj_type.h:215,1
    - Dst: __objt_resolv_srvrq
      Src: /src/haproxy/include/haproxy/obj_type.h:216,1
    - Dst: __objt_sc
      Src: /src/haproxy/include/haproxy/obj_type.h:217,1
    - Dst: __objt_stream
      Src: /src/haproxy/include/haproxy/obj_type.h:218,1
    - Dst: __objt_check
      Src: /src/haproxy/include/haproxy/obj_type.h:219,1
    - Dst: __objt_dgram
      Src: /src/haproxy/include/haproxy/obj_type.h:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - t
    argTypes:
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: obj_base_ptr
    functionSourceFile: /src/haproxy/include/haproxy/obj_type.h
    functionUses: 1
    functionsReached:
    - obj_type
    - __objt_appctx
    - __objt_conn
    - __objt_resolv_srvrq
    - __objt_check
    - __objt_listener
    - __objt_server
    - __objt_proxy
    - __objt_dgram
    - __objt_stream
    - __objt_sc
    - __objt_applet
    linkageType: ''
    returnType: void
    signature: void *obj_base_ptr(enum obj_type *t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - test
    argTypes:
    - struct appctx*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - applet
    - sedesc
    argTypes:
    - struct applet*
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 74
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - applet
    - sedesc
    argTypes:
    - struct applet*
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 79
    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:89,1
    - Dst: offer_buffers
      Src: /src/haproxy/include/haproxy/applet.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - appctx
    - bptr
    argTypes:
    - struct appctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    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:105,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/include/haproxy/applet.h:105,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/applet.h:106,1
    - Dst: b_alloc
      Src: /src/haproxy/include/haproxy/applet.h:106,1
    - Dst: b_queue
      Src: /src/haproxy/include/haproxy/applet.h:107,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:108,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/include/haproxy/applet.h:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - appctx
    - bptr
    argTypes:
    - struct appctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: appctx_get_buf
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 6
    functionsReached:
    - applet_fl_clr
    - LIST_INLIST
    - unlikely
    - likely
    - applet_fl_set
    - b_alloc
    - b_queue
    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:125,1
    - Dst: task_set_thread
      Src: /src/haproxy/include/haproxy/applet.h:126,1
    - Dst: struct appctx*::applet::init
      Src: /src/haproxy/include/haproxy/applet.h:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: appctx_init
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 7
    functionsReached:
    - task_set_thread
    - BUG_ON
    - struct appctx*::applet::init
    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:136,1
    - Dst: appctx_release_buf
      Src: /src/haproxy/include/haproxy/applet.h:137,1
    - Dst: task_destroy
      Src: /src/haproxy/include/haproxy/applet.h:139,1
    - Dst: b_dequeue
      Src: /src/haproxy/include/haproxy/applet.h:140,1
    - Dst: session_free
      Src: /src/haproxy/include/haproxy/applet.h:142,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/applet.h:143,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:143,1
    - Dst: sedesc_free
      Src: /src/haproxy/include/haproxy/applet.h:144,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/applet.h:145,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/include/haproxy/applet.h:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 134
    functionDepth: 7
    functionLinenumber: 134
    functionLinenumberEnd: 147
    functionName: __appctx_free
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 4
    functionsReached:
    - sedesc_free
    - _HA_ATOMIC_DEC
    - pool_free
    - se_fl_test
    - BUG_ON
    - appctx_release_buf
    - task_destroy
    - session_free
    - b_dequeue
    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: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    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: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    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: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: appctx_sc
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 25
    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:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 170
    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:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: appctx_is_back
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 2
    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: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    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: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    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: 198
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 198
    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: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    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: 208
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 208
    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: 213
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 213
    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:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 218
    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:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    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:227,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:228,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 231
    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:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 239
    functionName: applet_have_more_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 23
    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:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: applet_have_no_more_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 7
    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:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: applet_will_consume
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 9
    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:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: applet_wont_consume
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 6
    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:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 272
    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:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 281
    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:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 289
    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:297,1
    - Dst: applet_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:298,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/include/haproxy/applet.h:298,1
    - Dst: sc_ob
      Src: /src/haproxy/include/haproxy/applet.h:303,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 304
    functionName: applet_get_inbuf
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 9
    functionsReached:
    - applet_fl_test
    - appctx_get_buf
    - appctx_sc
    - sc_ob
    - appctx_app_test
    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:312,1
    - Dst: applet_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:313,1
    - Dst: appctx_get_buf
      Src: /src/haproxy/include/haproxy/applet.h:314,1
    - Dst: sc_ib
      Src: /src/haproxy/include/haproxy/applet.h:319,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: applet_get_outbuf
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 11
    functionsReached:
    - applet_fl_test
    - appctx_get_buf
    - sc_ib
    - appctx_sc
    - appctx_app_test
    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:325,1
    - Dst: htx_used_space
      Src: /src/haproxy/include/haproxy/applet.h:326,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/applet.h:326,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:328,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:328,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: applet_htx_input_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - htxbuf
    - co_data
    - sc_oc
    - appctx_sc
    - htx_used_space
    - appctx_app_test
    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:334,1
    - Dst: applet_htx_input_data
      Src: /src/haproxy/include/haproxy/applet.h:335,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:337,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:338,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:340,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:340,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 332
    functionDepth: 2
    functionLinenumber: 332
    functionLinenumberEnd: 341
    functionName: applet_input_data
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 6
    functionsReached:
    - co_data
    - applet_htx_input_data
    - b_data
    - sc_oc
    - appctx_sc
    - appctx_app_test
    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:354,1
    - Dst: b_del
      Src: /src/haproxy/include/haproxy/applet.h:355,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/include/haproxy/applet.h:356,1
    - Dst: co_skip
      Src: /src/haproxy/include/haproxy/applet.h:359,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:359,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - appctx
    - len
    argTypes:
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: applet_skip_input
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 7
    functionsReached:
    - applet_fl_clr
    - appctx_app_test
    - sc_oc
    - appctx_sc
    - b_del
    - co_skip
    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:366,1
    - Dst: b_reset
      Src: /src/haproxy/include/haproxy/applet.h:367,1
    - Dst: applet_fl_clr
      Src: /src/haproxy/include/haproxy/applet.h:368,1
    - Dst: co_skip
      Src: /src/haproxy/include/haproxy/applet.h:371,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:371,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:371,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:371,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:371,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: applet_reset_input
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 8
    functionsReached:
    - applet_fl_clr
    - co_data
    - appctx_app_test
    - sc_oc
    - appctx_sc
    - b_reset
    - co_skip
    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:378,1
    - Dst: htx_free_data_space
      Src: /src/haproxy/include/haproxy/applet.h:379,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/applet.h:379,1
    - Dst: channel_recv_max
      Src: /src/haproxy/include/haproxy/applet.h:381,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:381,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:381,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 382
    functionName: applet_htx_output_room
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 1
    functionsReached:
    - htxbuf
    - htx_free_data_space
    - channel_recv_max
    - sc_ic
    - appctx_sc
    - appctx_app_test
    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:388,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/include/haproxy/applet.h:389,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:391,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:392,1
    - Dst: channel_recv_max
      Src: /src/haproxy/include/haproxy/applet.h:394,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:394,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 395
    functionName: applet_output_room
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 4
    functionsReached:
    - channel_recv_max
    - sc_ic
    - b_room
    - appctx_sc
    - applet_htx_output_room
    - appctx_app_test
    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:407,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/include/haproxy/applet.h:408,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:410,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - room_needed
    argTypes:
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 405
    functionDepth: 2
    functionLinenumber: 405
    functionLinenumberEnd: 411
    functionName: applet_need_room
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - appctx_sc
    - sc_need_room
    - applet_have_more_data
    - appctx_app_test
    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:419,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/applet.h:420,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:421,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:422,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:422,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:423,1
    - Dst: b_putblk
      Src: /src/haproxy/include/haproxy/applet.h:427,1
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/applet.h:427,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:427,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/applet.h:434,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/applet.h:434,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:434,1
    - Dst: ci_putchk
      Src: /src/haproxy/include/haproxy/applet.h:435,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:435,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:441,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - appctx
    - chunk
    - stress
    argTypes:
    - struct appctx*
    - struct buffer*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 447
    functionName: _applet_putchk
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - b_putblk
    - unlikely
    - b_data
    - sc_ic
    - sc_need_room
    - b_room
    - ci_data
    - b_head
    - applet_fl_set
    - ci_putchk
    - appctx_app_test
    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:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - chunk
    argTypes:
    - struct appctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: applet_putchk
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 60
    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:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - appctx
    - chunk
    argTypes:
    - struct appctx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 463
    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:474,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:475,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:476,1
    - Dst: b_putblk
      Src: /src/haproxy/include/haproxy/applet.h:480,1
    - Dst: ci_putblk
      Src: /src/haproxy/include/haproxy/applet.h:485,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:485,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:492,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 3
    argNames:
    - appctx
    - blk
    - len
    argTypes:
    - struct appctx*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 498
    functionName: applet_putblk
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 4
    functionsReached:
    - b_putblk
    - sc_ic
    - ci_putblk
    - sc_need_room
    - b_room
    - applet_fl_set
    - appctx_app_test
    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:510,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/applet.h:511,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:513,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:514,1
    - Dst: b_putblk
      Src: /src/haproxy/include/haproxy/applet.h:518,1
    - Dst: ci_putstr
      Src: /src/haproxy/include/haproxy/applet.h:523,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:523,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:530,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/applet.h:530,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - appctx
    - str
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 535
    functionName: applet_putstr
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 8
    functionsReached:
    - b_putblk
    - sc_ic
    - sc_need_room
    - strlen
    - b_room
    - ci_putstr
    - applet_fl_set
    - appctx_app_test
    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:546,1
    - Dst: b_full
      Src: /src/haproxy/include/haproxy/applet.h:547,1
    - Dst: applet_fl_set
      Src: /src/haproxy/include/haproxy/applet.h:548,1
    - Dst: b_putchr
      Src: /src/haproxy/include/haproxy/applet.h:552,1
    - Dst: ci_putchr
      Src: /src/haproxy/include/haproxy/applet.h:559,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/applet.h:559,1
    - Dst: sc_need_room
      Src: /src/haproxy/include/haproxy/applet.h:566,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - appctx
    - chr
    argTypes:
    - struct appctx*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 571
    functionName: applet_putchr
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - ci_putchr
    - sc_ic
    - sc_need_room
    - b_putchr
    - applet_fl_set
    - b_full
    - appctx_app_test
    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:575,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:576,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:577,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:583,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:585,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:585,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - appctx
    - len
    argTypes:
    - struct appctx*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 592
    functionName: applet_may_get
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - co_data
    - b_data
    - se_fl_test
    - sc_oc
    - appctx_sc
    - appctx_app_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:607,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:610,1
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/applet.h:611,1
    - Dst: co_head
      Src: /src/haproxy/include/haproxy/applet.h:612,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:612,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - appctx
    - c
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 615
    functionName: applet_getchar
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 1
    functionsReached:
    - co_head
    - sc_oc
    - appctx_sc
    - b_head
    - applet_may_get
    - appctx_app_test
    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:635,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:639,1
    - Dst: sc_ob
      Src: /src/haproxy/include/haproxy/applet.h:641,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:641,1
    - Dst: b_getblk
      Src: /src/haproxy/include/haproxy/applet.h:642,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: 643
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 643
    functionName: applet_getblk
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 3
    functionsReached:
    - appctx_sc
    - b_getblk
    - sc_ob
    - applet_may_get
    - appctx_app_test
    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:667,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:671,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:673,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:676,1
    - Dst: sc_ob
      Src: /src/haproxy/include/haproxy/applet.h:678,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:679,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:679,1
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/applet.h:687,1
    - Dst: b_next
      Src: /src/haproxy/include/haproxy/applet.h:695,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:698,1
    - Dst: b_room
      Src: /src/haproxy/include/haproxy/applet.h:699,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:700,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:704,1
    - Dst: channel_may_recv
      Src: /src/haproxy/include/haproxy/applet.h:706,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:706,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: 714
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 714
    functionName: applet_getword
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 1
    functionsReached:
    - co_data
    - b_data
    - se_fl_test
    - sc_oc
    - channel_may_recv
    - b_next
    - b_room
    - appctx_sc
    - b_head
    - sc_ob
    - applet_may_get
    - appctx_app_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:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - appctx
    - str
    - len
    argTypes:
    - struct appctx*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 734
    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:754,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:758,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/applet.h:760,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:763,1
    - Dst: sc_ob
      Src: /src/haproxy/include/haproxy/applet.h:765,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/applet.h:766,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:766,1
    - Dst: b_getblk_nc
      Src: /src/haproxy/include/haproxy/applet.h:769,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: 770
      start: 748
    functionDepth: 2
    functionLinenumber: 748
    functionLinenumberEnd: 770
    functionName: applet_getblk_nc
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 2
    functionsReached:
    - co_data
    - b_data
    - sc_oc
    - b_getblk_nc
    - appctx_sc
    - sc_ob
    - applet_may_get
    - appctx_app_test
    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:792,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/applet.h:793,1
    - Dst: appctx_app_test
      Src: /src/haproxy/include/haproxy/applet.h:814,1
    - Dst: b_full
      Src: /src/haproxy/include/haproxy/applet.h:815,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/applet.h:815,1
    - Dst: appctx_sc
      Src: /src/haproxy/include/haproxy/applet.h:819,1
    - Dst: channel_may_recv
      Src: /src/haproxy/include/haproxy/applet.h:821,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/applet.h:821,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: 827
      start: 787
    functionDepth: 3
    functionLinenumber: 787
    functionLinenumberEnd: 827
    functionName: applet_getword_nc
    functionSourceFile: /src/haproxy/include/haproxy/applet.h
    functionUses: 0
    functionsReached:
    - unlikely
    - se_fl_test
    - sc_oc
    - channel_may_recv
    - appctx_sc
    - b_full
    - applet_getblk_nc
    - appctx_app_test
    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:847,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: 848
      start: 845
    functionDepth: 4
    functionLinenumber: 845
    functionLinenumberEnd: 848
    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: 0
    EdgeCount: 0
    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
    - hpack_get_name
    - ist
    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:
    - hpack_dht_init
    - hpack_alloc
    - unlikely
    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:
    - stkctr_entry
    - stktable_touch_local
    - unlikely
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stkctr_set_entry
    - stktable_data_ptr
    - stktable_data_cast
    - stksess_kill_if_expired
    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:
    - stkctr_inc_http_err_ctr
    - unlikely
    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:
    - stkctr_inc_http_fail_ctr
    - unlikely
    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: 5
    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:
    - conn_get_src
    - objt_conn
    - 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:
    - conn_get_dst
    - conn_dst
    - objt_conn
    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:
    - conn_get_src
    - sockaddr_alloc
    - objt_conn
    - 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:
    - conn_get_dst
    - conn_dst
    - sockaddr_alloc
    - objt_conn
    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: 132
    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: 60
    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: 62
    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: 57
    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: 45
    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: 8
    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: 204
    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: 70
    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: 10
    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: 54
    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: 3
    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: 5
    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: 16
    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: 1
    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: 31
    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: 60
    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: 132
    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: 62
    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: 57
    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: 45
    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: 8
    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: 204
    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: 70
    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: 10
    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: 54
    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: 3
    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: 5
    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: 15
    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: 19
    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: 22
    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: 7
    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: 116
    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: 3
    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: 1
    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: 16
    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: 31
    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: 1
    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: 16
    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: 31
    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: 1
    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: 16
    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: 31
    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: 16
    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: 1
    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: 31
    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: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: qc_test_fd
    functionSourceFile: /src/haproxy/include/haproxy/quic_sock.h
    functionUses: 15
    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:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 84
    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:92,1
    - Dst: _HA_ATOMIC_CAS
      Src: /src/haproxy/include/haproxy/quic_sock.h:104,1
    - Dst: __ha_cpu_relax
      Src: /src/haproxy/include/haproxy/quic_sock.h:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - l
    argTypes:
    - struct listener*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 108
    functionName: quic_increment_curr_handshake
    functionSourceFile: /src/haproxy/include/haproxy/quic_sock.h
    functionUses: 1
    functionsReached:
    - _HA_ATOMIC_CAS
    - quic_listener_max_handshake
    - __ha_cpu_relax
    linkageType: ''
    returnType: int
    signature: int quic_increment_curr_handshake(struct listener *l)
  - 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:
    - pool_free
    - quic_tx_packet_dgram_detach
    - LIST_ISEMPTY
    - 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:
    - SSL_CIPHER_get_id
    - EVP_aes_128_gcm
    - EVP_aead_aes_256_gcm
    - EVP_aead_aes_128_gcm
    - EVP_aes_128_ccm
    - EVP_aead_chacha20_poly1305
    - EVP_aes_256_gcm
    - EVP_chacha20_poly1305
    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:
    - EVP_sha384
    - EVP_sha256
    - SSL_CIPHER_get_id
    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_256_ctr
    - EVP_aes_128_ctr
    - SSL_CIPHER_get_id
    - EVP_chacha20
    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_APPEND
    - pool_alloc
    - LIST_INIT
    - LIST_INSERT
    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:
    - TRACE_DEVEL
    - eb64_next
    - list_for_each_entry_safe
    - eb64_delete
    - eb64_first
    - eb64_entry
    - TRACE_ENTER
    - LIST_DEL_INIT
    - quic_tx_packet_refdec
    - qc_frm_free
    - qc_frm_unref
    - LIST_APPEND
    - TRACE_LEAVE
    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_LEAVE
    - TRACE_ENTER
    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:
    - TRACE_LEAVE
    - list_for_each_entry_safe
    - qc_frm_free
    - TRACE_ENTER
    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: 2
    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
    - pool_free
    - quic_tls_ctx_reset
    - QUIC_AEAD_CTX_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:
    - pool_free
    - EVP_CIPHER_CTX_free
    - QUIC_AEAD_CTX_free
    - memset
    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:
    - pool_alloc
    - quic_tls_secrets_keys_free
    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_ctr
    - EVP_aes_128_gcm
    - EVP_aead_aes_128_gcm
    - quic_tls_ctx_keys_alloc
    - 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:
    - TRACE_DEVEL
    - quic_tls_derive_keys
    - quic_derive_initial_secret
    - quic_tls_derive_initial_secrets
    - quic_tls_enc_hp_ctx_init
    - TRACE_ENTER
    - quic_tls_tx_ctx_init
    - quic_initial_tls_ctx_init
    - quic_tls_rx_ctx_init
    - TRACE_LEAVE
    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:
    - pool_free
    - QUIC_AEAD_CTX_free
    - quic_tls_ku_reset
    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
    - quic_rx_packet_refdec
    - eb64_delete
    - eb64_first
    - eb64_entry
    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:
    - eb64_next
    - eb64_first
    - eb64_entry
    - fprintf
    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_may_send_bytes
    - quic_peer_validated_addr
    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: 1
    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
    - http_parse_path
    - http_uri_parser_init
    - htx_sl_req_uri
    - ist
    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: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    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: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: strm_fe
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 26
    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: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: strm_li
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 13
    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: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    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:119,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:123,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:127,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:130,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stream.h:132,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:134,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:135,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stream.h:137,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stream.h:140,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/include/haproxy/stream.h:142,1
    - Dst: stksess_kill_if_expired
      Src: /src/haproxy/include/haproxy/stream.h:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 145
    functionName: stream_store_counters
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - unlikely
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stkctr_set_entry
    - stktable_data_ptr
    - stktable_data_cast
    - stksess_kill_if_expired
    linkageType: ''
    returnType: void
    signature: void stream_store_counters(struct stream *s)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/stream.h:158,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:162,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:166,1
    - Dst: stkctr_flags
      Src: /src/haproxy/include/haproxy/stream.h:169,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:172,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/stream.h:174,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:176,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:177,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stream.h:179,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stream.h:182,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/include/haproxy/stream.h:184,1
    - Dst: stksess_kill_if_expired
      Src: /src/haproxy/include/haproxy/stream.h:185,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 187
    functionName: stream_stop_content_counters
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached:
    - stkctr_entry
    - stktable_touch_local
    - unlikely
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stkctr_set_entry
    - stktable_data_ptr
    - stktable_data_cast
    - stksess_kill_if_expired
    - stkctr_flags
    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:197,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:199,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:201,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:203,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:205,1
    - Dst: stktable_data_ptr
      Src: /src/haproxy/include/haproxy/stream.h:207,1
    - Dst: update_freq_ctr_period
      Src: /src/haproxy/include/haproxy/stream.h:209,1
    - Dst: stktable_data_cast
      Src: /src/haproxy/include/haproxy/stream.h:209,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/stream.h:211,1
    - Dst: tick_add
      Src: /src/haproxy/include/haproxy/stream.h:212,1
    - Dst: MS_TO_TICKS
      Src: /src/haproxy/include/haproxy/stream.h:212,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/stream.h:214,1
    - Dst: stktable_touch_local
      Src: /src/haproxy/include/haproxy/stream.h:217,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - t
    - ts
    argTypes:
    - struct stktable*
    - struct stksess*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 218
    functionName: stream_start_counters
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 0
    functionsReached:
    - tick_add
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - MS_TO_TICKS
    - tick_isset
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    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:227,1
    - Dst: stkctr_set_entry
      Src: /src/haproxy/include/haproxy/stream.h:231,1
    - Dst: stream_start_counters
      Src: /src/haproxy/include/haproxy/stream.h:232,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: 233
      start: 224
    functionDepth: 4
    functionLinenumber: 224
    functionLinenumberEnd: 233
    functionName: stream_track_stkctr
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 2
    functionsReached:
    - stkctr_entry
    - stream_start_counters
    - stkctr_set_entry
    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:240,1
    - Dst: stkctr_inc_http_req_ctr
      Src: /src/haproxy/include/haproxy/stream.h:244,1
    - Dst: stkctr_inc_http_req_ctr
      Src: /src/haproxy/include/haproxy/stream.h:245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 247
    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:256,1
    - Dst: stkctr_entry
      Src: /src/haproxy/include/haproxy/stream.h:260,1
    - Dst: stkctr_flags
      Src: /src/haproxy/include/haproxy/stream.h:260,1
    - Dst: stkctr_inc_http_req_ctr
      Src: /src/haproxy/include/haproxy/stream.h:263,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 265
    functionName: stream_inc_be_http_req_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 1
    functionsReached:
    - stkctr_flags
    - stkctr_entry
    - unlikely
    - 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:277,1
    - Dst: stkctr_inc_http_err_ctr
      Src: /src/haproxy/include/haproxy/stream.h:281,1
    - Dst: stkctr_inc_http_err_ctr
      Src: /src/haproxy/include/haproxy/stream.h:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 284
    functionName: stream_inc_http_err_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 4
    functionsReached:
    - stkctr_inc_http_err_ctr
    - unlikely
    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:295,1
    - Dst: stkctr_inc_http_fail_ctr
      Src: /src/haproxy/include/haproxy/stream.h:299,1
    - Dst: stkctr_inc_http_fail_ctr
      Src: /src/haproxy/include/haproxy/stream.h:300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 302
    functionName: stream_inc_http_fail_ctr
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 4
    functionsReached:
    - stkctr_inc_http_fail_ctr
    - unlikely
    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:312,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/stream.h:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - strm
    - srv
    argTypes:
    - struct stream*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 314
    functionName: stream_add_srv_conn
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_STORE
    - MT_LIST_INSERT
    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:323,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/stream.h:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 325
    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:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - strm
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 331
    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:347,1
    - Dst: __objt_server
      Src: /src/haproxy/include/haproxy/stream.h:349,1
    - Dst: sess_change_server
      Src: /src/haproxy/include/haproxy/stream.h:356,1
    - Dst: may_dequeue_tasks
      Src: /src/haproxy/include/haproxy/stream.h:357,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/stream.h:357,1
    - Dst: process_srv_queue
      Src: /src/haproxy/include/haproxy/stream.h:358,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/stream.h:358,1
    - Dst: sockaddr_free
      Src: /src/haproxy/include/haproxy/stream.h:360,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/stream.h:365,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/stream.h:367,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 333
    functionDepth: 4
    functionLinenumber: 333
    functionLinenumberEnd: 371
    functionName: stream_choose_redispatch
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 2
    functionsReached:
    - process_srv_queue
    - sockaddr_free
    - __objt_server
    - objt_server
    - may_dequeue_tasks
    - _HA_ATOMIC_INC
    - 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:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct stream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 387
    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:401,1
    - Dst: task_wakeup
      Src: /src/haproxy/include/haproxy/stream.h:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - why
    argTypes:
    - struct stream*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 406
    functionName: stream_shutdown
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_OR
    - task_wakeup
    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: 420
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 420
    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:424,1
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/stream.h:432,1
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/stream.h:433,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: 434
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 434
    functionName: stream_report_term_evt
    functionSourceFile: /src/haproxy/include/haproxy/stream.h
    functionUses: 12
    functionsReached:
    - tevt_report_event
    - sc_strm
    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: 440
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 440
    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:104,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:106,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:106,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:106,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:107,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:107,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:107,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:107,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:108,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:110,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:110,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:111,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:111,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:112,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:112,1
    - Dst: _e
      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:118,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:119,1
    - Dst: _e
      Src: /src/haproxy/include/haproxy/stream-t.h:119,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: _
      Src: /src/haproxy/include/haproxy/stream-t.h:122,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:122,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:122,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:122,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:122,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:123,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:123,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:123,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:123,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:124,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:124,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:124,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:127,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: 131
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 131
    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: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    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: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    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:193,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:195,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:195,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:195,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:196,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:196,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:196,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:197,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:197,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:197,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:198,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:198,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stream-t.h:200,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: 203
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 203
    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: 192
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 192
    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:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - expr
    argTypes:
    - struct lf_expr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 79
    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: 95
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 95
    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:105,1
    - Dst: log_orig
      Src: /src/haproxy/include/haproxy/log.h:106,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: 107
      start: 102
    functionDepth: 9
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: sess_build_logline
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 8
    functionsReached:
    - sess_build_logline_orig
    - log_orig
    linkageType: ''
    returnType: int
    signature: "int sess_build_logline(struct session *sess, struct stream *s, char
      *dst, size_t maxsize,\n                                     struct lf_expr *lf_expr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _sess_log
      Src: /src/haproxy/include/haproxy/log.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 10
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: sess_log
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 11
    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:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sess
    argTypes:
    - struct session*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 10
    functionLinenumber: 134
    functionLinenumberEnd: 137
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: sess_build_logline_orig
      Src: /src/haproxy/include/haproxy/log.h:203,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/log.h:203,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: 204
      start: 200
    functionDepth: 9
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: build_logline_orig
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 6
    functionsReached:
    - sess_build_logline_orig
    - strm_sess
    linkageType: ''
    returnType: int
    signature: "int build_logline_orig(struct stream *s, char *dst, size_t maxsize,\n
      \                                    struct lf_expr *lf_expr, struct log_orig
      orig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: build_logline_orig
      Src: /src/haproxy/include/haproxy/log.h:211,1
    - Dst: log_orig
      Src: /src/haproxy/include/haproxy/log.h:212,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: 213
      start: 209
    functionDepth: 10
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: build_logline
    functionSourceFile: /src/haproxy/include/haproxy/log.h
    functionUses: 20
    functionsReached:
    - build_logline_orig
    - log_orig
    linkageType: ''
    returnType: int
    signature: int build_logline(struct stream *s, char *dst, size_t maxsize, struct
      lf_expr *lf_expr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/log.h:226,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 231
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: qpack_get_dte
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:101,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:103,1
    - Dst: qpack_get_name
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct qpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: qpack_idx_to_name
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 1
    functionsReached:
    - qpack_get_name
    - qpack_get_dte
    - ist
    linkageType: ''
    returnType: struct ist
    signature: struct ist qpack_idx_to_name(const struct qpack_dht *dht, uint32_t
      idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: qpack_get_dte
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:113,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:115,1
    - Dst: qpack_get_value
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dht
    - idx
    argTypes:
    - struct qpack_dht*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: qpack_idx_to_value
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 1
    functionsReached:
    - qpack_get_value
    - qpack_get_dte
    - ist
    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: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    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:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - dht
    - needed
    argTypes:
    - struct qpack_dht*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 140
    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: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    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:155,1
    - Dst: qpack_alloc
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:158,1
    - Dst: qpack_dht_init
      Src: /src/haproxy/include/haproxy/qpack-tbl.h:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 162
    functionName: qpack_dht_alloc
    functionSourceFile: /src/haproxy/include/haproxy/qpack-tbl.h
    functionUses: 1
    functionsReached:
    - qpack_dht_init
    - unlikely
    - qpack_alloc
    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:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dht
    argTypes:
    - struct qpack_dht*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    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: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    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: 91
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: smp_set_owner
    functionSourceFile: /src/haproxy/include/haproxy/sample.h
    functionUses: 36
    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: 20
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 128
    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:137,1
    - Dst: smp_dup
      Src: /src/haproxy/include/haproxy/sample.h:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: smp_make_safe
    functionSourceFile: /src/haproxy/include/haproxy/sample.h
    functionUses: 6
    functionsReached:
    - smp_dup
    - smp_is_safe
    linkageType: ''
    returnType: int
    signature: int smp_make_safe(struct sample *smp)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 175
    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:184,1
    - Dst: smp_dup
      Src: /src/haproxy/include/haproxy/sample.h:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 3
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: smp_make_rw
    functionSourceFile: /src/haproxy/include/haproxy/sample.h
    functionUses: 4
    functionsReached:
    - smp_dup
    - smp_is_rw
    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:
    - istnmatch
    - ist
    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: 23
    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:
    - istend
    - HTTP_IS_TOKEN
    - 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:244,1
    - Dst: istptr
      Src: /src/haproxy/include/haproxy/http.h:245,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/http.h:259,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 12
    argCount: 1
    argNames:
    - ist
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 279
    functionName: http_authority_has_forbidden_char
    functionSourceFile: /src/haproxy/include/haproxy/http.h
    functionUses: 4
    functionsReached:
    - istlen
    - istptr
    - unlikely
    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:290,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - array
    - status
    argTypes:
    - long*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 291
    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: 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: 84
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 84
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/backend.h:90,1
    - Dst: ns_to_sec
      Src: /src/haproxy/include/haproxy/backend.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: be_set_sess_last
    functionSourceFile: /src/haproxy/include/haproxy/backend.h
    functionUses: 2
    functionsReached:
    - HA_ATOMIC_STORE
    - ns_to_sec
    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: 116
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 116
    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: 140
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 140
    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: 151
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 151
    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: 161
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 161
    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: 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: 49
    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: 24
    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: 70
    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: 84
    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: 20
    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: 58
    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: 25
    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: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: OpenSSL_version
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 4
    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: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    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: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    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:210,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: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    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: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: X509_STORE_get0_objects
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 7
    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: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    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: 257
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 257
    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: 265
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 265
    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:270,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: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    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: 277
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 277
    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: 283
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 283
    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: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    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: 299
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 299
    functionName: ASN1_STRING_get0_data
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 4
    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:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - X509*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: X509_up_ref
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 4
    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:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkey
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: EVP_PKEY_up_ref
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 3
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SSL_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 314
    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:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 319
    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:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 324
    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:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crl
    argTypes:
    - X509_CRL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    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: 334
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 334
    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: 339
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 339
    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: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    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:350,1
    - Dst: BN_clear_free
      Src: /src/haproxy/include/haproxy/openssl-compat.h:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - sig
    - r
    - s
    argTypes:
    - ECDSA_SIG*
    - BIGNUM*
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 356
    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:370,1
    - Dst: ERR_func_error_string
      Src: /src/haproxy/include/haproxy/openssl-compat.h:375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - func
    argTypes:
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 378
    functionName: ERR_peek_error_func
    functionSourceFile: /src/haproxy/include/haproxy/openssl-compat.h
    functionUses: 2
    functionsReached:
    - ERR_peek_error
    - ERR_func_error_string
    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: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    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: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    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: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    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: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    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: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    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: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    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: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    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: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    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: 517
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 517
    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: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    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: 519
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 519
    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: 520
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 520
    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: 521
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 521
    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: 522
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 522
    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: 523
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 523
    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: 527
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 527
    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: 554
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 554
    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: 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: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    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: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    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:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - s
    - status
    argTypes:
    - struct server*
    - short
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 12
    functionLinenumber: 111
    functionLinenumberEnd: 118
    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:
    - HA_ATOMIC_ADD
    - unlikely
    - __sink_write
    - HA_ATOMIC_LOAD
    - sink_announce_dropped
    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: 13
    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: 83
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 83
    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: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    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: 11
    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: 3
    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_size
    - b_data
    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: 60
    functionsReached:
    - CHECK_IF_HOT
    - c_data
    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: 33
    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:
    - co_data
    - b_peek
    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:
    - BUG_ON_HOT
    - c_data
    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:
    - BUG_ON_HOT
    - c_data
    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:
    - 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: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:
    - 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: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:
    - c_data
    - b_peek
    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:
    - b_contig_data
    - co_data
    linkageType: ''
    returnType: size_t
    signature: size_t ci_contig_data(const struct channel *c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 330
    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:349,1
    - Dst: c_adv
      Src: /src/haproxy/include/haproxy/channel.h:351,1
    - Dst: __channel_forward
      Src: /src/haproxy/include/haproxy/channel.h:355,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - chn
    - bytes
    argTypes:
    - struct channel*
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 356
    functionName: channel_forward
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - c_adv
    - ci_data
    - __channel_forward
    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:361,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/channel.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 4
    functionLinenumber: 359
    functionLinenumberEnd: 363
    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:377,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - chn
    - len
    argTypes:
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 368
    functionDepth: 3
    functionLinenumber: 368
    functionLinenumberEnd: 382
    functionName: channel_add_input
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - c_adv
    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:389,1
    - Dst: channel_forward
      Src: /src/haproxy/include/haproxy/channel.h:390,1
    - Dst: b_set_data
      Src: /src/haproxy/include/haproxy/channel.h:391,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/channel.h:391,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: 394
      start: 384
    functionDepth: 5
    functionLinenumber: 384
    functionLinenumberEnd: 394
    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:399,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 401
    functionName: channel_htx_forward_forever
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - c_adv
    - co_data
    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:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 418
    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:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 427
    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:438,1
    - Dst: channel_may_send
      Src: /src/haproxy/include/haproxy/channel.h:445,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:455,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 460
    functionName: channel_htx_may_recv
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - channel_may_send
    - htx_free_data_space
    - co_data
    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:477,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:477,1
    - Dst: channel_htx_may_recv
      Src: /src/haproxy/include/haproxy/channel.h:478,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/channel.h:478,1
    - Dst: b_is_null
      Src: /src/haproxy/include/haproxy/channel.h:480,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/channel.h:483,1
    - Dst: channel_may_send
      Src: /src/haproxy/include/haproxy/channel.h:490,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/channel.h:500,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 502
    functionName: channel_may_recv
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 12
    functionsReached:
    - htxbuf
    - IS_HTX_STRM
    - b_data
    - b_is_null
    - channel_htx_may_recv
    - ci_data
    - channel_may_send
    - chn_strm
    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:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 505
    functionDepth: 2
    functionLinenumber: 505
    functionLinenumberEnd: 508
    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:513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 511
    functionDepth: 2
    functionLinenumber: 511
    functionLinenumberEnd: 514
    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:519,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/channel.h:519,1
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/channel.h:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: channel_check_timeout
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - unlikely
    - likely
    - tick_is_expired
    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:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 533
    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:537,1
    - Dst: channel_erase
      Src: /src/haproxy/include/haproxy/channel.h:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 2
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: channel_htx_erase
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 5
    functionsReached:
    - channel_erase
    - htx_reset
    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:545,1
    - Dst: chn_cons
      Src: /src/haproxy/include/haproxy/channel.h:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 549
    functionName: channel_abort
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 7
    functionsReached:
    - chn_cons
    - chn_prod
    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: 555
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 555
    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: 563
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 563
    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: 569
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 569
    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: 575
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 575
    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: 581
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 581
    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: 587
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 587
    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:662,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/channel.h:667,1
    - Dst: channel_may_send
      Src: /src/haproxy/include/haproxy/channel.h:667,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 655
    functionDepth: 3
    functionLinenumber: 655
    functionLinenumberEnd: 686
    functionName: channel_recv_limit
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 4
    functionsReached:
    - channel_may_send
    - b_is_null
    - co_data
    - unlikely
    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:703,1
    - Dst: channel_may_send
      Src: /src/haproxy/include/haproxy/channel.h:703,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:715,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 722
    functionName: channel_htx_recv_limit
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - channel_may_send
    - co_data
    - unlikely
    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:734,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:734,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: 735
      start: 729
    functionDepth: 3
    functionLinenumber: 729
    functionLinenumberEnd: 735
    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:748,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/channel.h:751,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:751,1
    - Dst: channel_htx_full
      Src: /src/haproxy/include/haproxy/channel.h:752,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/channel.h:752,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/channel.h:754,1
    - Dst: c_size
      Src: /src/haproxy/include/haproxy/channel.h:754,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - c
    - reserve
    argTypes:
    - struct channel*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 746
    functionDepth: 4
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: channel_full
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 8
    functionsReached:
    - htxbuf
    - IS_HTX_STRM
    - b_is_null
    - channel_htx_full
    - c_size
    - ci_data
    - chn_strm
    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:762,1
    - Dst: htx_used_space
      Src: /src/haproxy/include/haproxy/channel.h:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 758
    functionDepth: 4
    functionLinenumber: 758
    functionLinenumberEnd: 766
    functionName: channel_htx_recv_max
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - channel_htx_recv_limit
    - htx_used_space
    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:777,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:777,1
    - Dst: channel_htx_recv_max
      Src: /src/haproxy/include/haproxy/channel.h:778,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/channel.h:778,1
    - Dst: channel_recv_limit
      Src: /src/haproxy/include/haproxy/channel.h:780,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/channel.h:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 773
    functionDepth: 5
    functionLinenumber: 773
    functionLinenumberEnd: 784
    functionName: channel_recv_max
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 9
    functionsReached:
    - htxbuf
    - IS_HTX_STRM
    - b_data
    - channel_recv_limit
    - chn_strm
    - channel_htx_recv_max
    linkageType: ''
    returnType: int
    signature: int channel_recv_max(const struct channel *chn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/channel.h:794,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 797
    functionName: channel_data_limit
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - 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:805,1
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/channel.h:805,1
    - Dst: htx_used_space
      Src: /src/haproxy/include/haproxy/channel.h:805,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/channel.h:805,1
    - Dst: c_data
      Src: /src/haproxy/include/haproxy/channel.h:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 806
    functionName: channel_data
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 2
    functionsReached:
    - htxbuf
    - IS_HTX_STRM
    - c_data
    - chn_strm
    - htx_used_space
    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:813,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 814
      start: 811
    functionDepth: 3
    functionLinenumber: 811
    functionLinenumberEnd: 814
    functionName: channel_input_data
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - co_data
    - channel_data
    linkageType: ''
    returnType: size_t
    signature: size_t channel_input_data(const struct channel *chn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/channel.h:819,1
    - Dst: htx_is_empty
      Src: /src/haproxy/include/haproxy/channel.h:819,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/channel.h:819,1
    - Dst: c_empty
      Src: /src/haproxy/include/haproxy/channel.h:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 817
    functionDepth: 3
    functionLinenumber: 817
    functionLinenumberEnd: 820
    functionName: channel_empty
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - htxbuf
    - IS_HTX_STRM
    - c_empty
    - htx_is_empty
    linkageType: ''
    returnType: size_t
    signature: size_t channel_empty(const struct channel *chn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:827,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 825
    functionDepth: 3
    functionLinenumber: 825
    functionLinenumberEnd: 838
    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:850,1
    - Dst: channel_data_limit
      Src: /src/haproxy/include/haproxy/channel.h:868,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - chn
    - xferred
    argTypes:
    - struct channel*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 844
    functionDepth: 3
    functionLinenumber: 844
    functionLinenumberEnd: 884
    functionName: channel_check_xfer
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 3
    functionsReached:
    - channel_data_limit
    - c_size
    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:897,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/channel.h:897,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/channel.h:897,1
    - Dst: b_head
      Src: /src/haproxy/include/haproxy/channel.h:903,1
    - Dst: ci_head
      Src: /src/haproxy/include/haproxy/channel.h:904,1
    - Dst: b_wrap
      Src: /src/haproxy/include/haproxy/channel.h:905,1
    - Dst: ci_tail
      Src: /src/haproxy/include/haproxy/channel.h:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 891
    functionDepth: 4
    functionLinenumber: 891
    functionLinenumberEnd: 909
    functionName: ci_space_for_replace
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - ci_head
    - b_data
    - b_wrap
    - b_head
    - ci_tail
    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:924,1
    - Dst: b_alloc
      Src: /src/haproxy/include/haproxy/channel.h:926,1
    - Dst: b_requeue
      Src: /src/haproxy/include/haproxy/channel.h:929,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - chn
    - wait
    argTypes:
    - struct channel*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 917
    functionDepth: 2
    functionLinenumber: 917
    functionLinenumberEnd: 931
    functionName: channel_alloc_buffer
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - b_alloc
    - b_requeue
    - 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:938,1
    - Dst: c_empty
      Src: /src/haproxy/include/haproxy/channel.h:938,1
    - Dst: b_free
      Src: /src/haproxy/include/haproxy/channel.h:939,1
    - Dst: offer_buffers
      Src: /src/haproxy/include/haproxy/channel.h:940,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - chn
    - wait
    argTypes:
    - struct channel*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 936
    functionDepth: 3
    functionLinenumber: 936
    functionLinenumberEnd: 942
    functionName: channel_release_buffer
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - b_free
    - c_size
    - c_empty
    - offer_buffers
    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:950,1
    - Dst: channel_erase
      Src: /src/haproxy/include/haproxy/channel.h:951,1
    - Dst: ci_data
      Src: /src/haproxy/include/haproxy/channel.h:954,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:957,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 948
    functionDepth: 4
    functionLinenumber: 948
    functionLinenumberEnd: 958
    functionName: channel_truncate
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - ci_data
    - co_data
    - channel_erase
    linkageType: ''
    returnType: void
    signature: void channel_truncate(struct channel *chn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:962,1
    - Dst: channel_htx_erase
      Src: /src/haproxy/include/haproxy/channel.h:963,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:966,1
    - Dst: htx_truncate
      Src: /src/haproxy/include/haproxy/channel.h:968,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 960
    functionDepth: 3
    functionLinenumber: 960
    functionLinenumberEnd: 969
    functionName: channel_htx_truncate
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 9
    functionsReached:
    - co_data
    - channel_htx_erase
    - 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:979,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chn
    - swap
    argTypes:
    - struct channel*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 977
    functionDepth: 3
    functionLinenumber: 977
    functionLinenumberEnd: 980
    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:992,1
    - Dst: htx_get_next
      Src: /src/haproxy/include/haproxy/channel.h:992,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/channel.h:993,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/include/haproxy/channel.h:994,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/channel.h:995,1
    - Dst: htx_get_next
      Src: /src/haproxy/include/haproxy/channel.h:996,1
    - Dst: c_adv
      Src: /src/haproxy/include/haproxy/channel.h:1000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - chn
    - htx
    argTypes:
    - struct channel*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 987
    functionDepth: 3
    functionLinenumber: 987
    functionLinenumberEnd: 1002
    functionName: channel_htx_fwd_headers
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - htx_get_blksz
    - htx_get_first
    - htx_get_blk_type
    - c_adv
    - htx_get_next
    - htx_get_blk
    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:1013,1
    - Dst: b_del
      Src: /src/haproxy/include/haproxy/channel.h:1014,1
    - Dst: c_realign_if_empty
      Src: /src/haproxy/include/haproxy/channel.h:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - chn
    - len
    argTypes:
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1011
    functionDepth: 2
    functionLinenumber: 1011
    functionLinenumberEnd: 1017
    functionName: co_skip
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 2
    functionsReached:
    - BUG_ON_HOT
    - b_del
    - c_realign_if_empty
    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:1027,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/channel.h:1029,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - chn
    - htx
    - len
    argTypes:
    - struct channel*
    - struct htx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1023
    functionDepth: 3
    functionLinenumber: 1023
    functionLinenumberEnd: 1032
    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:1046,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - chn
    - chunk
    argTypes:
    - struct channel*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1050
    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:1062,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/channel.h:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chn
    - str
    argTypes:
    - struct channel*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1063
    functionName: ci_putstr
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 1
    functionsReached:
    - strlen
    - ci_putblk
    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:1075,1
    - Dst: chn_cons
      Src: /src/haproxy/include/haproxy/channel.h:1075,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/channel.h:1075,1
    - Dst: chn_cons
      Src: /src/haproxy/include/haproxy/channel.h:1076,1
    - Dst: co_head
      Src: /src/haproxy/include/haproxy/channel.h:1080,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - chn
    argTypes:
    - struct channel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1072
    functionDepth: 3
    functionLinenumber: 1072
    functionLinenumberEnd: 1081
    functionName: co_getchr
    functionSourceFile: /src/haproxy/include/haproxy/channel.h
    functionUses: 0
    functionsReached:
    - chn_cons
    - co_data
    - co_head
    - unlikely
    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:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - srv_ptr
    argTypes:
    - struct server**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: srv_free
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 8
    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:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - px
    - srv
    argTypes:
    - struct proxy*
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 205
    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:211,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/server.h:212,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/server.h:214,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/server.h:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 216
    functionName: srv_inc_sess_ctr
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_UPDATE_MAX
    - update_freq_ctr
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void srv_inc_sess_ctr(struct server *s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/server.h:222,1
    - Dst: ns_to_sec
      Src: /src/haproxy/include/haproxy/server.h:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: srv_set_sess_last
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_STORE
    - ns_to_sec
    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: 237
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 237
    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: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    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:253,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/include/haproxy/server.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: srv_adm_set_maint
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 6
    functionsReached:
    - srv_set_admin_flag
    - srv_clr_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:262,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/include/haproxy/server.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 264
    functionName: srv_adm_set_drain
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 5
    functionsReached:
    - srv_set_admin_flag
    - srv_clr_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:271,1
    - Dst: srv_clr_admin_flag
      Src: /src/haproxy/include/haproxy/server.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 273
    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: 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: 288
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 288
    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: 301
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 301
    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:307,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/server.h:313,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/server.h:315,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/server.h:317,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/server.h:319,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - srv
    - conn
    argTypes:
    - struct server*
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 320
    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: 340
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 340
    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:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 350
    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:369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 373
    functionName: srv_detach
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 5
    functionsReached:
    - 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:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bk
    - id
    argTypes:
    - struct proxy*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 381
    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: 3
    argCount: 1
    argNames:
    - srv
    argTypes:
    - struct server*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 392
    functionName: srv_is_quic
    functionSourceFile: /src/haproxy/include/haproxy/server.h
    functionUses: 10
    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:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - appctx
    - severity
    - msg
    argTypes:
    - struct appctx*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: cli_msg
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 24
    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:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - err
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: cli_err
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 110
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - appctx
    - severity
    - msg
    argTypes:
    - struct appctx*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: cli_dynmsg
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 24
    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:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - err
    argTypes:
    - struct appctx*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: cli_dynerr
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 33
    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:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - appctx
    - severity
    argTypes:
    - struct appctx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 124
    functionName: cli_umsg
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 1
    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: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: cli_umsgerr
    functionSourceFile: /src/haproxy/include/haproxy/cli.h
    functionUses: 1
    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: 742
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 742
    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: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    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: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    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: 163
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 163
    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: 180
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 180
    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: 188
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 188
    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:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bitfield
    argTypes:
    - unsigned long long*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    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:200,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/include/haproxy/ssl_sock.h:202,1
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/ssl_sock.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - SSL*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 212
    functionName: ssl_sock_get_listener
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 1
    functionsReached:
    - SSL_get_ex_data
    - __objt_listener
    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:223,1
    - Dst: SSL_get_ex_data
      Src: /src/haproxy/include/haproxy/ssl_sock.h:225,1
    - Dst: conn_get_ssl_sock_ctx
      Src: /src/haproxy/include/haproxy/ssl_sock.h:231,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - s
    - ctx
    argTypes:
    - SSL*
    - struct ssl_sock_ctx**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 241
    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: 238
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: if
    functionSourceFile: /src/haproxy/include/haproxy/ssl_sock.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: else
    signature: else if (qc)
  - 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:530,1
    - Dst: csv_enc_append
      Src: /src/haproxy/include/haproxy/tools.h:531,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: 532
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 532
    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: 567
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 567
    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: 576
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 576
    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:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 589
    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:593,1
    - Dst: ltrim
      Src: /src/haproxy/include/haproxy/tools.h:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - s
    - c
    argTypes:
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 596
    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:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - now
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 603
    functionDepth: 0
    functionLinenumber: 603
    functionLinenumberEnd: 606
    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:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - now
    - tm
    argTypes:
    - time_t
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 616
    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: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    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: 667
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 667
    functionName: parse_size_err
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 12
    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: 740
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 740
    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: 758
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 758
    functionName: is_inet_addr
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 9
    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:772,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 773
    functionName: is_addr
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 10
    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: 785
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 785
    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:792,1
    - Dst: ntohs
      Src: /src/haproxy/include/haproxy/tools.h:794,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 797
    functionName: get_host_port
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 31
    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:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - addr
    argTypes:
    - struct sockaddr_storage*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 820
    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: 834
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 834
    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:841,1
    - Dst: htons
      Src: /src/haproxy/include/haproxy/tools.h:844,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - addr
    - port
    argTypes:
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 848
    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:854,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/tools.h:856,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/tools.h:859,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - addr
    - proto
    argTypes:
    - struct sockaddr_storage*
    - enum ha_proto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 851
    functionDepth: 1
    functionLinenumber: 851
    functionLinenumberEnd: 863
    functionName: port_is_restricted
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached:
    - BUG_ON_HOT
    - unlikely
    - 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: 1045
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1045
    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: 1046
      start: 1045
    functionDepth: 0
    functionLinenumber: 1045
    functionLinenumberEnd: 1046
    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: 1057
      start: 1046
    functionDepth: 0
    functionLinenumber: 1046
    functionLinenumberEnd: 1057
    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: 1090
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1090
    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: 1097
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1097
    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: 1102
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1102
    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: 1113
      start: 1108
    functionDepth: 0
    functionLinenumber: 1108
    functionLinenumberEnd: 1113
    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:1118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1115
    functionDepth: 1
    functionLinenumber: 1115
    functionLinenumberEnd: 1120
    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:1153,1
    - Dst: __builtin_frame_address
      Src: /src/haproxy/include/haproxy/tools.h:1161,1
    - Dst: may_access
      Src: /src/haproxy/include/haproxy/tools.h:1162,1
    - Dst: may_access
      Src: /src/haproxy/include/haproxy/tools.h:1162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - buffer
    - max
    argTypes:
    - void**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1168
    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:1175,1
    - Dst: free
      Src: /src/haproxy/include/haproxy/tools.h:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1171
    functionDepth: 3
    functionLinenumber: 1171
    functionLinenumberEnd: 1179
    functionName: my_realloc2
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 9
    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:1200,1
    - Dst: memalign
      Src: /src/haproxy/include/haproxy/tools.h:1203,1
    - Dst: posix_memalign
      Src: /src/haproxy/include/haproxy/tools.h:1208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1189
    functionDepth: 3
    functionLinenumber: 1189
    functionLinenumberEnd: 1213
    functionName: _ha_aligned_alloc
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - posix_memalign
    - _aligned_malloc
    - memalign
    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:1218,1
    - Dst: memset
      Src: /src/haproxy/include/haproxy/tools.h:1221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1216
    functionDepth: 4
    functionLinenumber: 1216
    functionLinenumberEnd: 1223
    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:1236,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/tools.h:1238,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/tools.h:1246,1
    - Dst: _ha_aligned_alloc
      Src: /src/haproxy/include/haproxy/tools.h:1249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1234
    functionDepth: 4
    functionLinenumber: 1234
    functionLinenumberEnd: 1250
    functionName: _ha_aligned_alloc_safe
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - _ha_aligned_alloc
    - unlikely
    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:1255,1
    - Dst: memset
      Src: /src/haproxy/include/haproxy/tools.h:1258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - alignment
    - size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1253
    functionDepth: 5
    functionLinenumber: 1253
    functionLinenumberEnd: 1260
    functionName: _ha_aligned_zalloc_safe
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - _ha_aligned_alloc_safe
    - memset
    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:1269,1
    - Dst: free
      Src: /src/haproxy/include/haproxy/tools.h:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1266
    functionDepth: 3
    functionLinenumber: 1266
    functionLinenumberEnd: 1273
    functionName: _ha_aligned_free
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 0
    functionsReached:
    - free
    - _aligned_free
    linkageType: ''
    returnType: void
    signature: void _ha_aligned_free(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ha_random64
      Src: /src/haproxy/include/haproxy/tools.h:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1287
    functionName: ha_random32
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 4
    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:1291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1289
    functionDepth: 3
    functionLinenumber: 1289
    functionLinenumberEnd: 1292
    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: 1307
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1307
    functionName: statistical_prng
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: unsigned int
    signature: unsigned int statistical_prng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul32hi
      Src: /src/haproxy/include/haproxy/tools.h:1314,1
    - Dst: statistical_prng
      Src: /src/haproxy/include/haproxy/tools.h:1314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - range
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1315
    functionName: statistical_prng_range
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 20
    functionsReached:
    - mul32hi
    - statistical_prng
    linkageType: ''
    returnType: uint
    signature: uint statistical_prng_range(uint range)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - p
    - bits
    argTypes:
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1328
    functionDepth: 0
    functionLinenumber: 1328
    functionLinenumberEnd: 1341
    functionName: ptr_hash
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline ptr_hash(const void *p, const int bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - p1
    - p2
    - bits
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1362
    functionName: ptr2_hash
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: forceinline
    signature: forceinline ptr2_hash(const void *p1, const void *p2, const int bits)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/haproxy/include/haproxy/tools.h:1379,1
    - Dst: tolower
      Src: /src/haproxy/include/haproxy/tools.h:1387,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - fp
    - prev
    - curr
    argTypes:
    - uint8_t*
    - char
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1372
    functionDepth: 0
    functionLinenumber: 1372
    functionLinenumberEnd: 1394
    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:1406,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/tools.h:1407,1
    - Dst: atol
      Src: /src/haproxy/include/haproxy/tools.h:1410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - text
    - min
    argTypes:
    - char*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1412
      start: 1401
    functionDepth: 0
    functionLinenumber: 1401
    functionLinenumberEnd: 1412
    functionName: warn_if_lower
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 6
    functionsReached:
    - strlen
    - strspn
    - atol
    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: 1436
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1436
    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:1444,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1445,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1446,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1447,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1448,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1449,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1450,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1451,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1452,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1453,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1454,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1455,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1456,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1457,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1458,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1459,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1460,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1461,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1462,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1463,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1464,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1465,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1466,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1467,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1468,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1469,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1470,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1471,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1472,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1473,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1474,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1475,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1476,1
    - Dst: CASE_ERR
      Src: /src/haproxy/include/haproxy/tools.h:1477,1
    - Dst: memprintf
      Src: /src/haproxy/include/haproxy/tools.h:1480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 2
    argNames:
    - err_num
    - out
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1437
    functionDepth: 5
    functionLinenumber: 1437
    functionLinenumberEnd: 1483
    functionName: errname
    functionSourceFile: /src/haproxy/include/haproxy/tools.h
    functionUses: 1
    functionsReached:
    - CASE_ERR
    - memprintf
    linkageType: ''
    returnType: char
    signature: char *errname(int err_num, char **out)
  - 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:
    - b_orig
    - unlikely
    - b_wrap
    - b_peek
    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:
    - b_orig
    - unlikely
    - b_wrap
    - b_peek
    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_isteq
    - b_del
    - b_data
    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:
    - b_orig
    - unlikely
    - 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: 3
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 601
    functionName: EXTRA_COUNTERS
    functionSourceFile: /src/haproxy/include/haproxy/stats-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS(name)
  - 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: 606
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 606
    functionName: EXTRA_COUNTERS_GET
    functionSourceFile: /src/haproxy/include/haproxy/stats-t.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_GET(counters, mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - counters
    - ','
    - ctype
    - ','
    - alloc_failed_label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 616
    functionName: EXTRA_COUNTERS_REGISTER
    functionSourceFile: /src/haproxy/include/haproxy/stats-t.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_REGISTER(counters, ctype, alloc_failed_label)
  - 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: 623
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: EXTRA_COUNTERS_ADD
    functionSourceFile: /src/haproxy/include/haproxy/stats-t.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: 5
    argNames:
    - (
    - counters
    - ','
    - alloc_failed_label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: EXTRA_COUNTERS_ALLOC
    functionSourceFile: /src/haproxy/include/haproxy/stats-t.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_ALLOC(counters, alloc_failed_label)
  - 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: 638
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 638
    functionName: EXTRA_COUNTERS_INIT
    functionSourceFile: /src/haproxy/include/haproxy/stats-t.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: 646
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 646
    functionName: EXTRA_COUNTERS_FREE
    functionSourceFile: /src/haproxy/include/haproxy/stats-t.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXTRA_COUNTERS_FREE(counters)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ft
    argTypes:
    - enum h2_ft
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    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: 241
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 241
    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: 263
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 263
    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: 298
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 298
    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:306,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:306,1
    - 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
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - str
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 319
    functionName: h2_str_to_phdr
    functionSourceFile: /src/haproxy/include/haproxy/h2.h
    functionUses: 2
    functionsReached:
    - isteq
    - ist
    linkageType: ''
    returnType: int
    signature: int h2_str_to_phdr(const struct ist str)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ist
      Src: /src/haproxy/include/haproxy/h2.h:327,1
    - 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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - phdr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 336
    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:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - phdr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 342
    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:
    - ring_area
    - ring_tail
    - ring_size
    - BUG_ON
    - vp_peek_ofs
    - vp_ring_to_data
    - ring_data
    - ring_head
    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_addr
    - vp_ofs
    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:
    - BUG_ON_HOT
    - vp_skip
    - 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:
    - BUG_ON_HOT
    - vp_skip
    - 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:
    - BUG_ON_HOT
    - vp_skip
    - 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:
    - BUG_ON_HOT
    - vp_skip
    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_barrier_atomic_store
    - _HA_ATOMIC_XCHG
    - __ha_barrier_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:61,1
    - Dst: IN6_IS_ADDR_V4MAPPED
      Src: /src/haproxy/include/haproxy/sock.h:65,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:67,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - fd
    - addr
    - tos
    argTypes:
    - int
    - struct sockaddr_storage*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 72
    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:79,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:82,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/sock.h:85,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: 88
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 88
    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: 57
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 57
    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: 65
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 65
    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: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    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: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    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: 101
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 101
    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: 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:
    - _HA_ATOMIC_AND_FETCH
    - fd_rm_from_fd_list
    - _HA_ATOMIC_LOAD
    - fd_add_to_fd_list
    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: 13
    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: 4
    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: 9
    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: 15
    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: 5
    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:
    - _HA_ATOMIC_CAS
    - old::old
    - unlikely
    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: 13
    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_ATOMIC_CAS
    - __ha_cpu_relax
    - 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_FETCH_ADD
    - _HA_ATOMIC_LOAD
    - __ha_cpu_relax
    - HA_ATOMIC_SUB
    - likely
    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_FETCH_ADD
    - _HA_ATOMIC_LOAD
    - __ha_cpu_relax
    - HA_ATOMIC_SUB
    - likely
    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_ATOMIC_CAS
    - __ha_cpu_relax
    - 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_ATOMIC_CAS
    - __ha_cpu_relax
    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_ADD_FETCH
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_SUB
    - 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:
    - fd_claim_tgid
    - unlikely
    - fd_drop_tgid
    - fd_may_both
    - BUG_ON
    - _HA_ATOMIC_INC
    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: 160
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 160
    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: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    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: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    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:211,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:213,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:213,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:213,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:214,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:214,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:214,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:214,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:215,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:215,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:215,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:215,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: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: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:220,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/connection-t.h:223,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: 226
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 226
    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: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    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: 574
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 574
    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: 83
    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: 69
    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
    - tick_remain
    - TICKS_TO_MS
    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:
    - quic_cc_init
    - QUIC_MAX
    - quic_loss_init
    - cshared_add
    - QUIC_MIN
    linkageType: ''
    returnType: void
    signature: "void quic_cc_path_init(struct quic_cc_path *path, int ipv4, unsigned
      long max_cwnd,\n                                     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: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: HA_SPIN_TRYLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 38
    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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    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: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    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: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    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: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    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: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    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: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: ha_sigmask
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 9
    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: 110
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 110
    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: 115
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 115
    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: 120
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 120
    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: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    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: 130
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 130
    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: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    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: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    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: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: thread_isolate
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 20
    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: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: thread_isolate_full
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    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: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: thread_release
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 22
    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: 157
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 157
    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: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    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: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    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: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    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: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    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: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    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: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    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: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    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: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: ha_sigmask
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ha_sigmask(how, set, oldset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/thread.h:226,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/thread.h:227,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/thread.h:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - thr
    argTypes:
    - struct thread_info*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 244
    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:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 256
    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: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: 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:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 285
    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:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 291
    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:301,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/thread.h:302,1
    - Dst: _HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/thread.h:302,1
    - Dst: thread_harmless_till_end
      Src: /src/haproxy/include/haproxy/thread.h:304,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 306
    functionName: thread_harmless_end
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 2
    functionsReached:
    - _HA_ATOMIC_LOAD
    - HA_ATOMIC_AND
    - likely
    - thread_harmless_till_end
    linkageType: ''
    returnType: void
    signature: void thread_harmless_end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/include/haproxy/thread.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 318
    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:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 324
    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: 335
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 335
    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: 336
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 336
    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: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    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: 385
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 385
    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: 400
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 400
    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: 412
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 412
    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:419,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ctr
    - diff
    argTypes:
    - struct cshared*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 422
    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:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctr
    argTypes:
    - struct cshared*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 428
    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: 435
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 435
    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: 436
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 436
    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: 437
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 437
    functionName: HA_SPIN_LOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 145
    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: 438
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 438
    functionName: HA_SPIN_TRYLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 38
    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: 439
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 439
    functionName: HA_SPIN_UNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 187
    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: 441
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 441
    functionName: HA_RWLOCK_INIT
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 20
    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: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    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: 443
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 443
    functionName: HA_RWLOCK_WRLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 120
    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: 444
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 444
    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: 445
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 445
    functionName: HA_RWLOCK_WRUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 120
    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: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: HA_RWLOCK_RDLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 70
    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: 447
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 447
    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: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: HA_RWLOCK_RDUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 71
    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: 451
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 451
    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: 452
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 452
    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: 453
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 453
    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: 454
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 454
    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: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: HA_RWLOCK_WRTORD
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 3
    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: 456
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 456
    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: 457
      start: 456
    functionDepth: 0
    functionLinenumber: 456
    functionLinenumberEnd: 457
    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: 458
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 458
    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: 459
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 459
    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: 465
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 465
    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: 466
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 466
    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: 467
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 467
    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: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    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: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    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: 471
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 471
    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: 472
      start: 471
    functionDepth: 0
    functionLinenumber: 471
    functionLinenumberEnd: 472
    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: 473
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 473
    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: 474
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 474
    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: 475
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 475
    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: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    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: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    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: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    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: 481
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 481
    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: 482
      start: 481
    functionDepth: 0
    functionLinenumber: 481
    functionLinenumberEnd: 482
    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: 483
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 483
    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: 484
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 484
    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: 485
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 485
    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: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    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: 487
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 487
    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: 488
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 488
    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: 489
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 489
    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: 491
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 491
    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: 492
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 492
    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: 494
      start: 493
    functionDepth: 0
    functionLinenumber: 493
    functionLinenumberEnd: 494
    functionName: HA_SPIN_LOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 145
    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: 495
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 495
    functionName: HA_SPIN_TRYLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 38
    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: 496
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 496
    functionName: HA_SPIN_UNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 187
    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: 498
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 498
    functionName: HA_RWLOCK_INIT
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 20
    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: 499
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 499
    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: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: HA_RWLOCK_WRLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 120
    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: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    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: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: HA_RWLOCK_WRUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 120
    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: 503
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 503
    functionName: HA_RWLOCK_RDLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 70
    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: 504
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 504
    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: 505
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 505
    functionName: HA_RWLOCK_RDUNLOCK
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 71
    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: 507
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 507
    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: 508
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 508
    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: 509
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 509
    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: 510
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 510
    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: 511
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 511
    functionName: HA_RWLOCK_WRTORD
    functionSourceFile: /src/haproxy/include/haproxy/thread.h
    functionUses: 3
    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: 512
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 512
    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: 513
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 513
    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: 514
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 514
    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: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    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: 5
    argNames:
    - (
    - _def
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: DEFVAL
    functionSourceFile: /src/haproxy/include/haproxy/tools-t.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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: DEFNULL
    functionSourceFile: /src/haproxy/include/haproxy/tools-t.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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: DEFZERO
    functionSourceFile: /src/haproxy/include/haproxy/tools-t.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: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: _FIRST_ARG
    functionSourceFile: /src/haproxy/include/haproxy/tools-t.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _FIRST_ARG(a, b, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 131
    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: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    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: 13
    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: 7
    argNames:
    - (
    - x
    - ','
    - y
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    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: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    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: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    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: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    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: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    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: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    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: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    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: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    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: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    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: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    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: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    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: 93
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 93
    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: 117
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 117
    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: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    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: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    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: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    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: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    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: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    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: 174
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 174
    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: 176
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 176
    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: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    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: 200
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 200
    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: 202
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 202
    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: 205
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 205
    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: 206
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 206
    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: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    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: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    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: 230
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 230
    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: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    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: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    functionName: ASSUME_NONNULL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 16
    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: 250
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 250
    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: 251
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 251
    functionName: ASSUME_NONNULL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 16
    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: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    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: 254
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 254
    functionName: ASSUME_NONNULL
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 16
    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: 269
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 269
    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: 283
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 283
    functionName: ALREADY_CHECKED
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 5
    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: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: DISGUISE
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 21
    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: 296
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 296
    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: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    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: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    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: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    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: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    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: 318
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 318
    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: 319
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: likely
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 361
    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: 320
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 320
    functionName: unlikely
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 323
    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: 322
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 322
    functionName: likely
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 361
    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: 323
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 323
    functionName: unlikely
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 323
    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: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    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: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    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: 337
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 337
    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: 343
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 343
    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: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    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: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: container_of
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 119
    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: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    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: 370
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 370
    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: 421
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 421
    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: 427
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 427
    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: 436
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 436
    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:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 447
    functionName: THREAD_ALIGNED
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_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: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    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: 463
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 463
    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: 474
      start: 473
    functionDepth: 0
    functionLinenumber: 473
    functionLinenumberEnd: 474
    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:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 486
    functionName: THREAD_ALIGN
    functionSourceFile: /src/haproxy/include/haproxy/compiler.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: THREAD_ALIGN(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: 493
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 493
    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: 501
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 501
    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: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    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: 515
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 515
    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: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    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: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    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: 546
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 546
    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: 548
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 548
    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: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    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:
    - pool_free
    - SSL_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: 0
    functionsReached:
    - SSL_get_early_data_status
    - SSL_early_data_accepted
    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_get_early_data_status
    - SSL_early_data_accepted
    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: 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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    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:73,1
    - Dst: __GNUC_PREREQ__
      Src: /src/haproxy/include/haproxy/bug.h:76,1
    - Dst: __GNUC_PREREQ__
      Src: /src/haproxy/include/haproxy/bug.h:81,1
    - Dst: DO_NOT_FOLD
      Src: /src/haproxy/include/haproxy/bug.h:84,1
    - Dst: my_unreachable
      Src: /src/haproxy/include/haproxy/bug.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 86
    functionName: ha_crash_now
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 0
    functionsReached:
    - __GNUC_PREREQ__
    - my_unreachable
    - DO_NOT_FOLD
    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: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: ABORT_NOW
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 28
    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: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    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:122,1
    - Dst: abort
      Src: /src/haproxy/include/haproxy/bug.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - line
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 124
    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: 140
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 140
    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: 158
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 158
    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: 226
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 226
    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: 248
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 248
    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: 256
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 256
    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: 260
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 260
    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: 264
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 264
    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: 266
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 266
    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: 270
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 270
    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: 300
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 300
    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: 326
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 326
    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: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 437
    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: 345
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 345
    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: 346
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 346
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    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: 347
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 347
    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: 350
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 350
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 437
    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: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    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: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    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: 353
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 353
    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: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 437
    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: 357
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 357
    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: 358
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 358
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    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: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    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: 362
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 362
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 437
    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: 363
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 363
    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: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    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: 365
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 365
    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: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: BUG_ON
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 437
    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: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    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: 376
      start: 375
    functionDepth: 0
    functionLinenumber: 375
    functionLinenumberEnd: 376
    functionName: CHECK_IF
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 2
    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: 377
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 377
    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: 387
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 387
    functionName: BUG_ON_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 68
    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: 388
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 388
    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: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    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: 392
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 392
    functionName: BUG_ON_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 68
    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: 393
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 393
    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: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    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: 397
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 397
    functionName: BUG_ON_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 68
    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: 398
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 398
    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: 399
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 399
    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: 406
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 406
    functionName: BUG_ON_HOT
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 68
    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: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    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: 408
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 408
    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: 3
    argNames:
    - (
    - what
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 415
    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: 423
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 423
    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: 434
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: ha_free
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 240
    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: 452
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 452
    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:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flag
    argTypes:
    - enum tainted_flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 479
    functionName: mark_tainted
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 22
    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:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 484
    functionName: get_tainted
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 5
    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: 527
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 527
    functionName: calloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 232
    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: 551
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 551
    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: 572
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 572
    functionName: ha_free
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 240
    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: 589
      start: 574
    functionDepth: 0
    functionLinenumber: 574
    functionLinenumberEnd: 589
    functionName: malloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 99
    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: 606
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 606
    functionName: realloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 21
    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: 623
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 623
    functionName: strdup
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 243
    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: 641
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 641
    functionName: ha_aligned_alloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 4
    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: 659
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 659
    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: 677
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 677
    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: 695
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 695
    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: 715
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 715
    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: 735
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 735
    functionName: ha_aligned_zalloc_typed
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    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: 755
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 755
    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: 777
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 777
    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: 781
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 781
    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: 782
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 782
    functionName: ha_aligned_alloc
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 4
    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: 783
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 783
    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: 784
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 784
    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: 785
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 785
    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: 786
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 786
    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: 787
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 787
    functionName: ha_aligned_zalloc_typed
    functionSourceFile: /src/haproxy/include/haproxy/bug.h
    functionUses: 1
    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: 788
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 788
    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: 789
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 789
    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:
    - wf_reset
    - unlikely
    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:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct quic_cid*
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    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:58,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cid.h:60,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cid.h:62,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_cid.h:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - buf
    - cid
    argTypes:
    - struct buffer*
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    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: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cid
    argTypes:
    - struct quic_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: quic_cid_tree_idx
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 5
    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:84,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/quic_cid.h:87,1
    - Dst: ebmb_insert
      Src: /src/haproxy/include/haproxy/quic_cid.h:88,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/quic_cid.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - conn_id
    argTypes:
    - struct quic_connection_id*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: _quic_cid_insert
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 3
    functionsReached:
    - quic_cid_tree_idx
    - ebmb_insert
    - HA_RWLOCK_WRUNLOCK
    - HA_RWLOCK_WRLOCK
    linkageType: ''
    returnType: void
    signature: void _quic_cid_insert(struct quic_connection_id *conn_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: quic_cid_tree_idx
      Src: /src/haproxy/include/haproxy/quic_cid.h:95,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: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 101
    functionName: quic_cid_delete
    functionSourceFile: /src/haproxy/include/haproxy/quic_cid.h
    functionUses: 2
    functionsReached:
    - ebmb_delete
    - quic_cid_tree_idx
    - HA_RWLOCK_WRUNLOCK
    - 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: 2
    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:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - struct pat_ref*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 218
    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:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ref
    - gen
    argTypes:
    - struct pat_ref*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 233
    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:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ref
    - gen
    argTypes:
    - struct pat_ref*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 254
    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:266,1
    - Dst: event_hdl_publish
      Src: /src/haproxy/include/haproxy/pattern.h:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ref
    - gen
    argTypes:
    - struct pat_ref*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 5
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: pat_ref_commit
    functionSourceFile: /src/haproxy/include/haproxy/pattern.h
    functionUses: 2
    functionsReached:
    - event_hdl_publish
    - pat_ref_may_commit
    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:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ref
    - oldest
    - budget
    argTypes:
    - struct pat_ref*
    - uint
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 284
    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:254,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:256,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:257,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:258,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:259,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:260,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:262,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: 265
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 265
    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: 253
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 253
    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:290,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:294,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:295,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:296,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:297,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:298,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:299,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:300,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:301,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:302,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:303,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_quic-t.h:305,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: 308
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 308
    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: 289
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 289
    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:46,1
    - Dst: strlen
      Src: /src/haproxy/include/haproxy/action.h:52,1
    - Dst: strncmp
      Src: /src/haproxy/include/haproxy/action.h:53,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/action.h:59,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 2
    argNames:
    - keywords
    - kw
    argTypes:
    - struct list*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 64
    functionName: action_lookup
    functionSourceFile: /src/haproxy/include/haproxy/action.h
    functionUses: 10
    functionsReached:
    - strlen
    - strncmp
    - LIST_ISEMPTY
    - strcmp
    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:52,1
    - Dst: strncmp
      Src: /src/haproxy/include/haproxy/action.h:53,1
    - Dst: strcmp
      Src: /src/haproxy/include/haproxy/action.h:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 62
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/include/haproxy/action.h
    functionUses: 271
    functionsReached:
    - strlen
    - strncmp
    - strcmp
    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:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - keywords
    - chk
    argTypes:
    - struct list*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 89
    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:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: list_for_each_entry
    functionSourceFile: /src/haproxy/include/haproxy/action.h
    functionUses: 271
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 5
    functionLinenumber: 115
    functionLinenumberEnd: 118
    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:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rule
    argTypes:
    - struct act_rule*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 5
    functionLinenumber: 123
    functionLinenumberEnd: 126
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - kw
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 115
    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:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 120
    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: 134
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: tcpchk_rules_type_to_proto_mode
    functionSourceFile: /src/haproxy/include/haproxy/tcpcheck.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int tcpchk_rules_type_to_proto_mode(int tcpchk_rules_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qc
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: qc_is_back
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qc_is_back(const struct quic_conn *qc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: eb64_first
      Src: /src/haproxy/include/haproxy/quic_conn.h:100,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_conn.h:104,1
    - Dst: quic_cid_delete
      Src: /src/haproxy/include/haproxy/quic_conn.h:107,1
    - Dst: eb64_next
      Src: /src/haproxy/include/haproxy/quic_conn.h:110,1
    - Dst: eb64_delete
      Src: /src/haproxy/include/haproxy/quic_conn.h:111,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/quic_conn.h:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct quic_conn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 114
    functionName: free_quic_conn_cids
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 2
    functionsReached:
    - eb64_next
    - pool_free
    - eb64_delete
    - eb64_first
    - eb64_entry
    - quic_cid_delete
    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:122,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_conn.h:126,1
    - Dst: eb64_next
      Src: /src/haproxy/include/haproxy/quic_conn.h:128,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: 131
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: quic_conn_mv_cids_to_cc_conn
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 1
    functionsReached:
    - eb64_next
    - eb64_first
    - eb64_entry
    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:142,1
    - Dst: b_alloc
      Src: /src/haproxy/include/haproxy/quic_conn.h:145,1
    - Dst: ncbmb_make
      Src: /src/haproxy/include/haproxy/quic_conn.h:148,1
    - Dst: ncbmb_init
      Src: /src/haproxy/include/haproxy/quic_conn.h:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ncbuf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 152
    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:159,1
    - Dst: b_make
      Src: /src/haproxy/include/haproxy/quic_conn.h:162,1
    - Dst: b_free
      Src: /src/haproxy/include/haproxy/quic_conn.h:163,1
    - Dst: offer_buffers
      Src: /src/haproxy/include/haproxy/quic_conn.h:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ncbuf
    argTypes:
    - struct ncbmbuf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 167
    functionName: quic_free_ncbuf
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 3
    functionsReached:
    - b_free
    - ncbmb_is_null
    - b_make
    - offer_buffers
    linkageType: ''
    returnType: void
    signature: void quic_free_ncbuf(struct ncbmbuf *ncbuf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/include/haproxy/quic_conn.h:182,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/quic_conn.h:183,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/include/haproxy/quic_conn.h:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - o
    - m
    argTypes:
    - enum obj_type*
    - struct stats_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 188
    functionName: qc_counters
    functionSourceFile: /src/haproxy/include/haproxy/quic_conn.h
    functionUses: 2
    functionsReached:
    - EXTRA_COUNTERS_GET
    - objt_listener
    - objt_server
    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:
    - swrate_avg
    - unlikely
    - pool_needed_avg
    - pool_used
    - 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:
    - LIST_PREV
    - POOL_DEBUG_SET_MARK
    - LIST_DELETE
    - unlikely
    - BUG_ON
    - LIST_NEXT
    - typeof
    - POOL_DEBUG_TRACE_CALLER
    - pool_refill_local_from_shared
    - LIST_ISEMPTY
    - pool_check_pattern
    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: 94
    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: 152
    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: 152
    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: 94
    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
    - protobuf_varint_getlen
    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
    - read_u64
    - pbuf_le64toh
    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
    - pbuf_le32toh
    - read_u32
    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: 21
    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: 6
    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_u64
    - write_u32
    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:
    - readv_bytes
    - likely
    - read_u32
    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:
    - writev_bytes
    - write_u32
    - 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:
    - readv_bytes
    - read_u64
    - 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: 3
    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: 3
    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: 8
    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:
    - my_ntohll
    - read_u64
    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:
    - write_u64
    - my_htonll
    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(const void *p1, size_t s1, const 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:
    - munmap
    - ABORT_NOW
    - 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:
    - ist
    - istlen
    - strl2ui
    - isteqi
    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: 1
    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:
    - __signal_process_queue
    - unlikely
    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_len_to_bytes
    - memcpy
    - hpack_encode_len
    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:
    - isteq
    - hpack_encode_short_idx
    - ist
    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_long_idx
    - isteq
    - hpack_encode_short_idx
    - ist
    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: 14
    functionsReached:
    - acl_exec_cond
    - acl_pass
    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_data_ptr
    - stktable_type_size
    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_shard_num
    functionSourceFile: /src/haproxy/include/haproxy/stick_table.h
    functionUses: 7
    functionsReached:
    - XXH32
    linkageType: ''
    returnType: uint
    signature: uint stktable_calc_shard_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:
    - __stksess_kill
    - tick_is_expired
    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_shard_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_RWLOCK_WRLOCK
    - tick_is_expired
    - HA_RWLOCK_WRUNLOCK
    - strlen
    - ALREADY_CHECKED
    - __stksess_kill_if_expired
    - stktable_calc_shard_num
    - HA_ATOMIC_SUB_FETCH
    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
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    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
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    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
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    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
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    - 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
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    - 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
    - stktable_touch_local
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - stktable_data_ptr
    - stktable_data_cast
    - update_freq_ctr_period
    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:50,1
    - Dst: b_almost_full
      Src: /src/haproxy/include/haproxy/dynbuf.h:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: buffer_almost_full
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 3
    functionsReached:
    - b_is_null
    - b_almost_full
    linkageType: ''
    returnType: int
    signature: int buffer_almost_full(const struct buffer *buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DB_CRIT_TO_QUEUE
      Src: /src/haproxy/include/haproxy/dynbuf.h:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - crit
    argTypes:
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 84
    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: 98
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 98
    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: 132
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 132
    functionName: b_alloc
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 33
    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: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    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: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: b_free
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 46
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: b_free(_buf)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/dynbuf.h:171,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/dynbuf.h:178,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/include/haproxy/dynbuf.h:178,1
    - Dst: __offer_buffers
      Src: /src/haproxy/include/haproxy/dynbuf.h:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - from
    - count
    argTypes:
    - void*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 182
    functionName: offer_buffers
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 35
    functionsReached:
    - BUG_ON_HOT
    - LIST_ISEMPTY
    - likely
    - __offer_buffers
    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:193,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/include/haproxy/dynbuf.h:195,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/dynbuf.h:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - crit
    - bw
    argTypes:
    - enum dynbuf_crit
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: b_requeue
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 3
    functionsReached:
    - LIST_APPEND
    - DB_CRIT_TO_QUEUE
    - LIST_INLIST
    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:217,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: 218
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: b_queue
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 8
    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:234,1
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/dynbuf.h:237,1
    - Dst: LIST_DEL_INIT
      Src: /src/haproxy/include/haproxy/dynbuf.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - bw
    - thr
    argTypes:
    - struct buffer_wait*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 241
    functionName: _b_dequeue
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 0
    functionsReached:
    - BUG_ON_HOT
    - LIST_ATMOST1
    - LIST_DEL_INIT
    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:250,1
    - Dst: LIST_INLIST
      Src: /src/haproxy/include/haproxy/dynbuf.h:250,1
    - Dst: _b_dequeue
      Src: /src/haproxy/include/haproxy/dynbuf.h:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - bw
    argTypes:
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: b_dequeue
    functionSourceFile: /src/haproxy/include/haproxy/dynbuf.h
    functionUses: 11
    functionsReached:
    - LIST_INLIST
    - unlikely
    - _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: 106
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 106
    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:135,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:137,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:137,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:137,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:137,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:138,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:138,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:138,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:138,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: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:145,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: 148
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 148
    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: 134
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 134
    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:220,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:222,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:223,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:223,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/stconn-t.h:223,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: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: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:229,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: 232
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 232
    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: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    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:
    - update_freq_ctr_period_slow
    - HA_ATOMIC_ADD_FETCH
    - likely
    - HA_ATOMIC_LOAD
    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:
    - update_freq_ctr_period
    - MS_TO_TICKS
    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:
    - freq_ctr_total
    - div64_32
    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: 1
    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:
    - read_freq_ctr_period
    - MS_TO_TICKS
    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:
    - freq_ctr_total
    - div64_32
    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:
    - MS_TO_TICKS
    - freq_ctr_remain_period
    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:
    - freq_ctr_total
    - MAX
    - div64_32
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sum
    - n
    argTypes:
    - unsigned int
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 413
    functionName: swrate_avg
    functionSourceFile: /src/haproxy/include/haproxy/freq_ctr.h
    functionUses: 6
    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: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    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: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    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: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    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: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    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: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    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: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    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: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    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: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    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: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    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: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    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: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    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: 8
    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: 29
    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: 4
    functionsReached:
    - b_data
    - b_del
    - b_wrap
    - b_head
    - b_size
    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: 30
    functionsReached:
    - quic_log2
    - quic_int_getsize
    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: 7
    functionsReached:
    - b_orig
    - quic_log2
    - BUG_ON
    - b_tail
    - quic_int_getsize
    - b_room
    - b_wrap
    - atleast2
    - b_add
    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: 1
    functionsReached:
    - MIN
    - unlikely
    - quic_int_getsize
    - likely
    - 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:
    - pool_free
    - pendconn_cond_unlink
    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_dynamic_maxconn
    - srv_currently_usable
    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: 193
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 193
    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: 199
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 199
    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:478,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:504,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:505,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:506,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/quic_conn-t.h:508,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: 511
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 511
    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: 477
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 477
    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:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - proxy
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: proxy_type_str
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 47
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: proxy_fe_by_name
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 5
    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:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: proxy_be_by_name
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 17
    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:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: proxy_index_id
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 3
    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: 142
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 142
    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: 155
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 155
    functionName: proxy_abrt_close_def
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 5
    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:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - px
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 164
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:170,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:172,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:174,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/proxy.h:175,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - l
    - fe
    argTypes:
    - struct listener*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: proxy_inc_fe_conn_ctr
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_UPDATE_MAX
    - update_freq_ctr
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void proxy_inc_fe_conn_ctr(struct listener *l, struct proxy *fe)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:183,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:185,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:187,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/proxy.h:188,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - l
    - fe
    argTypes:
    - struct listener*
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: proxy_inc_fe_sess_ctr
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_UPDATE_MAX
    - update_freq_ctr
    - _HA_ATOMIC_INC
    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:203,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 7
    argCount: 3
    argNames:
    - l
    - fe
    - http_ver
    argTypes:
    - struct listener*
    - struct proxy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 206
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:212,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:214,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/proxy.h:215,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - be
    argTypes:
    - struct proxy*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 217
    functionName: proxy_inc_be_ctr
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 1
    functionsReached:
    - HA_ATOMIC_UPDATE_MAX
    - update_freq_ctr
    - _HA_ATOMIC_INC
    linkageType: ''
    returnType: void
    signature: void proxy_inc_be_ctr(struct proxy *be)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:230,1
    - Dst: _HA_ATOMIC_INC
      Src: /src/haproxy/include/haproxy/proxy.h:232,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:234,1
    - Dst: HA_ATOMIC_UPDATE_MAX
      Src: /src/haproxy/include/haproxy/proxy.h:235,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:236,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 3
    argNames:
    - l
    - fe
    - http_ver
    argTypes:
    - struct listener*
    - struct proxy*
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 223
    functionDepth: 4
    functionLinenumber: 223
    functionLinenumberEnd: 237
    functionName: proxy_inc_fe_req_ctr
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 6
    functionsReached:
    - HA_ATOMIC_UPDATE_MAX
    - update_freq_ctr
    - _HA_ATOMIC_INC
    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: 275
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 275
    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: 289
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 289
    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:302,1
    - Dst: _HA_ATOMIC_ADD
      Src: /src/haproxy/include/haproxy/proxy.h:303,1
    - Dst: update_freq_ctr
      Src: /src/haproxy/include/haproxy/proxy.h:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - bytes
    - splice
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 294
    functionDepth: 4
    functionLinenumber: 294
    functionLinenumberEnd: 305
    functionName: increment_send_rate
    functionSourceFile: /src/haproxy/include/haproxy/proxy.h
    functionUses: 3
    functionsReached:
    - _HA_ATOMIC_ADD
    - update_freq_ctr
    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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    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: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    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: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    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: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: se_fl_set
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 56
    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: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    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: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: se_fl_test
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 70
    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: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: se_fl_get
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 7
    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:112,1
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:113,1
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: se_fl_set_error
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 22
    functionsReached:
    - se_fl_test
    - se_fl_set
    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:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    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:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 126
    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: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: se_have_ff_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 0
    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: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    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:141,1
    - Dst: container_of
      Src: /src/haproxy/include/haproxy/stconn.h:145,1
    - Dst: xref_unlock
      Src: /src/haproxy/include/haproxy/stconn.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 149
    functionName: se_opposite
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 5
    functionsReached:
    - xref_unlock
    - container_of
    - xref_get_peer_and_lock
    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:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - sc_in
    - sc_out
    argTypes:
    - struct stconn*
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: sc_ep_fwd_kip
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    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:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    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:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - all
    argTypes:
    - struct stconn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 167
    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:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - 'on'
    argTypes:
    - struct stconn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: sc_ep_set
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 15
    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:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - 'off'
    argTypes:
    - struct stconn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: sc_ep_clr
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 16
    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:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - test
    argTypes:
    - struct stconn*
    - uint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 182
    functionName: sc_ep_test
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 29
    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:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    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: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: sc_ep_lra
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 0
    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: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    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: 205
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: sc_ep_report_read_activity
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 11
    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:215,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/include/haproxy/stconn.h:218,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - sc
    - did_send
    argTypes:
    - struct stconn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 220
    functionName: sc_ep_report_blocked_send
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    functionsReached:
    - sc_ep_report_read_activity
    - tick_isset
    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:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 230
    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:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: sc_ep_have_ff_data
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 14
    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:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 240
    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: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    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: 255
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 255
    functionName: __sc_conn
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 18
    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:258,1
    - Dst: __sc_conn
      Src: /src/haproxy/include/haproxy/stconn.h:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 2
    functionLinenumber: 256
    functionLinenumberEnd: 261
    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:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 266
    functionDepth: 3
    functionLinenumber: 266
    functionLinenumberEnd: 271
    functionName: sc_mux_ops
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 4
    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:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 280
    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:283,1
    - Dst: __sc_mux_strm
      Src: /src/haproxy/include/haproxy/stconn.h:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 2
    functionLinenumber: 281
    functionLinenumberEnd: 286
    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:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 295
    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:298,1
    - Dst: __sc_appctx
      Src: /src/haproxy/include/haproxy/stconn.h:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 2
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: sc_appctx
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 40
    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:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 310
    functionName: __sc_strm
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 33
    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:314,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/stconn.h:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 317
    functionName: sc_strm
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 43
    functionsReached:
    - obj_type
    - __sc_strm
    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:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    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:329,1
    - Dst: __objt_check
      Src: /src/haproxy/include/haproxy/stconn.h:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 332
    functionName: sc_check
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    functionsReached:
    - obj_type
    - __objt_check
    linkageType: ''
    returnType: struct check
    signature: struct check *sc_check(const struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 342
    functionName: sc_get_data_name
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *sc_get_data_name(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: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    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:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 360
    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:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 368
    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:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 379
    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: 388
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 388
    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:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 398
    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: sc_ep_report_read_activity
      Src: /src/haproxy/include/haproxy/stconn.h:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 412
    functionName: sc_have_buff
    functionSourceFile: /src/haproxy/include/haproxy/stconn.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: 422
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 422
    functionName: sc_need_buff
    functionSourceFile: /src/haproxy/include/haproxy/stconn.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: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    functionName: sc_used_buff
    functionSourceFile: /src/haproxy/include/haproxy/stconn.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/stconn.h:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 437
    functionDepth: 1
    functionLinenumber: 437
    functionLinenumberEnd: 444
    functionName: sc_have_room
    functionSourceFile: /src/haproxy/include/haproxy/stconn.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/stconn.h:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sc
    - room_needed
    argTypes:
    - struct stconn*
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: sc_need_room
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 9
    functionsReached:
    - BUG_ON_HOT
    linkageType: ''
    returnType: void
    signature: void sc_need_room(struct stconn *sc, ssize_t room_needed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/stconn.h:466,1
    - Dst: se_fl_clr
      Src: /src/haproxy/include/haproxy/stconn.h:467,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/include/haproxy/stconn.h:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 470
    functionName: se_will_consume
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 2
    functionsReached:
    - se_fl_test
    - sc_ep_report_send_activity
    - se_fl_clr
    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:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 478
    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:486,1
    - Dst: se_fl_set
      Src: /src/haproxy/include/haproxy/stconn.h:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 484
    functionDepth: 3
    functionLinenumber: 484
    functionLinenumberEnd: 488
    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:495,1
    - Dst: se_fl_test
      Src: /src/haproxy/include/haproxy/stconn.h:501,1
    - Dst: struct mux_ops*::nego_fastfwd
      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: 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: 524
      start: 491
    functionDepth: 2
    functionLinenumber: 491
    functionLinenumberEnd: 524
    functionName: se_nego_ff
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    functionsReached:
    - sc_ep_report_blocked_send
    - se_fl_test
    - struct mux_ops*::nego_fastfwd
    - struct mux_ops*::subscribe
    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:534,1
    - Dst: se_ff_data
      Src: /src/haproxy/include/haproxy/stconn.h:536,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/stconn.h:538,1
    - Dst: struct mux_ops*::done_fastfwd
      Src: /src/haproxy/include/haproxy/stconn.h:539,1
    - Dst: sc_ep_report_send_activity
      Src: /src/haproxy/include/haproxy/stconn.h:547,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/include/haproxy/stconn.h:549,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/include/haproxy/stconn.h:558,1
    - Dst: sc_ep_report_blocked_send
      Src: /src/haproxy/include/haproxy/stconn.h:560,1
    - Dst: struct mux_ops*::subscribe
      Src: /src/haproxy/include/haproxy/stconn.h:566,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - se
    argTypes:
    - struct sedesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 573
    functionName: se_done_ff
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 3
    functionsReached:
    - se_ff_data
    - se_fl_test
    - BUG_ON
    - sc_ep_report_blocked_send
    - struct mux_ops*::subscribe
    - struct mux_ops*::done_fastfwd
    - sc_ep_report_send_activity
    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:581,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: 582
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 582
    functionName: se_report_term_evt
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 19
    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:590,1
    - Dst: sc_strm
      Src: /src/haproxy/include/haproxy/stconn.h:591,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/stconn.h:592,1
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/stconn.h:592,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/stconn.h:592,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: 593
      start: 584
    functionDepth: 3
    functionLinenumber: 584
    functionLinenumberEnd: 593
    functionName: sc_report_term_evt
    functionSourceFile: /src/haproxy/include/haproxy/stconn.h
    functionUses: 7
    functionsReached:
    - sc_strm
    - tevt_report_event
    - __sc_strm
    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: 1
    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: 1
    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:
    - cebu64_item_first
    - var_accounting_diff
    - var_clear
    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:60,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_frame.h:61,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:62,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:63,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:64,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:65,1
    - Dst: eb64_prev
      Src: /src/haproxy/include/haproxy/quic_frame.h:67,1
    - Dst: eb64_entry
      Src: /src/haproxy/include/haproxy/quic_frame.h:68,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:69,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:70,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:78,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:79,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:79,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:84,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:84,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:89,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:94,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:99,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:101,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:106,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:111,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:116,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:121,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:126,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:131,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:131,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:136,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:141,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:146,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:146,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:167,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:167,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:168,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:173,1
    - Dst: quic_int_getsize
      Src: /src/haproxy/include/haproxy/quic_frame.h:174,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 102
    argCount: 1
    argNames:
    - frm
    argTypes:
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 186
    functionName: qc_frm_len
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 3
    functionsReached:
    - eb64_last
    - eb64_entry
    - eb64_prev
    - quic_int_getsize
    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: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: quic_err_transport
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 12
    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: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    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: 202
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 202
    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:213,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:219,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:220,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 228
    functionName: qc_frm_alloc
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 11
    functionsReached:
    - pool_alloc
    - LIST_INIT
    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:241,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:248,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/quic_frame.h:249,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/quic_frame.h:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - origin
    argTypes:
    - struct quic_frame*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 258
    functionName: qc_frm_dup
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 2
    functionsReached:
    - LIST_APPEND
    - pool_alloc
    - LIST_INIT
    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:274,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/quic_frame.h:274,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/quic_frame.h:275,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/quic_frame.h:276,1
    - Dst: b_peek
      Src: /src/haproxy/include/haproxy/quic_frame.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - frm
    - data
    argTypes:
    - struct quic_frame*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: qc_stream_frm_mv_fwd
    functionSourceFile: /src/haproxy/include/haproxy/quic_frame.h
    functionUses: 1
    functionsReached:
    - b_orig
    - b_size
    - b_make
    - b_peek
    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:
    - decode_varint
    - spoe_decode_buffer
    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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: IS_HTX_CONN
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IS_HTX_CONN(conn)
  - 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: 119
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 119
    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: 125
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 125
    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: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: conn_ctrl_ready
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 21
    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:142,1
    - Dst: struct connection*::xprt::start
      Src: /src/haproxy/include/haproxy/connection.h:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 149
    functionName: conn_xprt_start
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    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:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 165
    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:175,1
    - Dst: struct connection*::ctrl::ctrl_init
      Src: /src/haproxy/include/haproxy/connection.h:178,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 180
    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:189,1
    - Dst: struct connection*::ctrl::ctrl_close
      Src: /src/haproxy/include/haproxy/connection.h:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: conn_ctrl_close
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 3
    functionsReached:
    - struct connection*::ctrl::ctrl_close
    - conn_ctrl_drain
    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:204,1
    - Dst: conn_ctrl_close
      Src: /src/haproxy/include/haproxy/connection.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 206
    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: 214
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 214
    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:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 224
    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:232,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/connection.h:236,1
    - Dst: HA_ATOMIC_AND
      Src: /src/haproxy/include/haproxy/connection.h:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: conn_sock_read0
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 3
    functionsReached:
    - HA_ATOMIC_AND
    - conn_ctrl_ready
    - BUG_ON
    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:249,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/connection.h:253,1
    - Dst: shutdown
      Src: /src/haproxy/include/haproxy/connection.h:255,1
    - Dst: conn_report_term_evt
      Src: /src/haproxy/include/haproxy/connection.h:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - c
    - clean
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 258
    functionName: conn_sock_shutw
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached:
    - conn_report_term_evt
    - shutdown
    - conn_ctrl_ready
    - BUG_ON
    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:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    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:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 272
    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: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: conn_xprt_read0_pending
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 11
    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:297,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: 302
      start: 287
    functionDepth: 3
    functionLinenumber: 287
    functionLinenumberEnd: 302
    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:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 308
    functionDepth: 2
    functionLinenumber: 308
    functionLinenumberEnd: 311
    functionName: conn_is_back
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 30
    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: 318
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 318
    functionName: conn_set_owner
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 6
    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:327,1
    - Dst: srv_release_conn
      Src: /src/haproxy/include/haproxy/connection.h:328,1
    - Dst: __objt_server
      Src: /src/haproxy/include/haproxy/connection.h:328,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 322
    functionDepth: 3
    functionLinenumber: 322
    functionLinenumberEnd: 330
    functionName: conn_set_private
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    functionsReached:
    - __objt_server
    - obj_type
    - srv_release_conn
    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: 338
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 338
    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: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    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: 350
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 350
    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:361,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/connection.h:364,1
    - Dst: struct connection*::ctrl::get_src
      Src: /src/haproxy/include/haproxy/connection.h:369,1
    - Dst: struct connection*::ctrl::fam::get_src
      Src: /src/haproxy/include/haproxy/connection.h:377,1
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/connection.h:379,1
    - Dst: sockaddr_free
      Src: /src/haproxy/include/haproxy/connection.h:384,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 388
    functionName: conn_get_src
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 19
    functionsReached:
    - obj_type
    - sockaddr_alloc
    - sockaddr_free
    - conn_ctrl_ready
    - struct connection*::ctrl::fam::get_src
    - 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:399,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/connection.h:402,1
    - Dst: struct connection*::ctrl::get_dst
      Src: /src/haproxy/include/haproxy/connection.h:407,1
    - Dst: struct connection*::ctrl::fam::get_dst
      Src: /src/haproxy/include/haproxy/connection.h:415,1
    - Dst: obj_type
      Src: /src/haproxy/include/haproxy/connection.h:417,1
    - Dst: sockaddr_free
      Src: /src/haproxy/include/haproxy/connection.h:422,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 394
    functionDepth: 2
    functionLinenumber: 394
    functionLinenumberEnd: 426
    functionName: conn_get_dst
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 16
    functionsReached:
    - struct connection*::ctrl::fam::get_dst
    - obj_type
    - sockaddr_alloc
    - sockaddr_free
    - conn_ctrl_ready
    - struct connection*::ctrl::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:434,1
    - Dst: sock_set_tos
      Src: /src/haproxy/include/haproxy/connection.h:437,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - tos
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 438
    functionName: conn_set_tos
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached:
    - conn_ctrl_ready
    - sock_set_tos
    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:445,1
    - Dst: sock_set_mark
      Src: /src/haproxy/include/haproxy/connection.h:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - mark
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 449
    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:456,1
    - Dst: setsockopt
      Src: /src/haproxy/include/haproxy/connection.h:460,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - conn
    - value
    argTypes:
    - struct connection*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 462
    functionName: conn_set_quickack
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 1
    functionsReached:
    - conn_ctrl_ready
    - setsockopt
    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: 471
      start: 464
    functionDepth: 0
    functionLinenumber: 464
    functionLinenumberEnd: 471
    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: struct mux_ops*::init
      Src: /src/haproxy/include/haproxy/connection.h:483,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: 489
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 489
    functionName: conn_install_mux
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    functionsReached:
    - struct mux_ops*::init
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/connection.h:502,1
    - Dst: struct connection*::mux::get_first_sc
      Src: /src/haproxy/include/haproxy/connection.h:506,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 507
    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:513,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 516
    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: 523
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 523
    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: 530
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 530
    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: 538
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 538
    functionName: xprt_register
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    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: 546
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: xprt_get
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 35
    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:555,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: 556
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 556
    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:564,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: 565
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 565
    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:569,1
    - Dst: struct connection*::xprt::get_alpn
      Src: /src/haproxy/include/haproxy/connection.h:571,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - conn
    - str
    - len
    argTypes:
    - struct connection*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 572
    functionName: conn_get_alpn
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 6
    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:577,1
    - Dst: LIST_INIT
      Src: /src/haproxy/include/haproxy/connection.h:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct mux_proto_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 579
    functionName: unregister_mux_proto
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - LIST_DELETE
    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:585,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/connection.h:586,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proto
    argTypes:
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 590
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: list_for_each_entry
      Src: /src/haproxy/include/haproxy/connection.h:610,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/connection.h:613,1
    - Dst: isteq
      Src: /src/haproxy/include/haproxy/connection.h:613,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/connection.h:615,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 12
    argCount: 3
    argNames:
    - mux_proto
    - proto_side
    - proto_mode
    argTypes:
    - struct ist
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 622
    functionName: conn_get_best_mux_entry
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 3
    functionsReached:
    - isteq
    - istlen
    - list_for_each_entry
    linkageType: ''
    returnType: struct mux_proto_list
    signature: "struct mux_proto_list *conn_get_best_mux_entry(\n        const struct
      ist mux_proto,\n        int proto_side, int proto_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: conn_get_best_mux_entry
      Src: /src/haproxy/include/haproxy/connection.h:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - conn
    - mux_proto
    - proto_side
    - proto_mode
    argTypes:
    - struct connection*
    - struct ist
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 639
    functionName: conn_get_best_mux
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached:
    - 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      int proto_side, int proto_mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: objt_listener
      Src: /src/haproxy/include/haproxy/connection.h:651,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/connection.h:656,1
    - Dst: objt_proxy
      Src: /src/haproxy/include/haproxy/connection.h:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 645
    functionDepth: 2
    functionLinenumber: 645
    functionLinenumberEnd: 661
    functionName: conn_get_proxy
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 1
    functionsReached:
    - objt_listener
    - objt_server
    - 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:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 670
    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:677,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 678
    functionName: conn_get_ssl_sock_ctx
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 26
    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:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 684
    functionName: conn_is_ssl
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 8
    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: 690
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 690
    functionName: conn_is_reverse
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 4
    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:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 697
      start: 693
    functionDepth: 3
    functionLinenumber: 693
    functionLinenumberEnd: 697
    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:703,1
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/connection.h:703,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/connection.h:703,1
    - Dst: conn_is_back
      Src: /src/haproxy/include/haproxy/connection.h:704,1
    - Dst: objt_listener
      Src: /src/haproxy/include/haproxy/connection.h:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 2
    argNames:
    - conn
    - target
    argTypes:
    - struct connection*
    - enum obj_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 700
    functionDepth: 3
    functionLinenumber: 700
    functionLinenumberEnd: 707
    functionName: conn_set_reverse
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached:
    - objt_listener
    - objt_server
    - conn_is_back
    - 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:712,1
    - Dst: objt_server
      Src: /src/haproxy/include/haproxy/connection.h:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 710
    functionDepth: 3
    functionLinenumber: 710
    functionLinenumberEnd: 720
    functionName: conn_idle_ping
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    functionsReached:
    - objt_server
    - conn_is_back
    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:725,1
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/connection.h:725,1
    - Dst: __objt_listener
      Src: /src/haproxy/include/haproxy/connection.h:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct connection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 723
    functionDepth: 3
    functionLinenumber: 723
    functionLinenumberEnd: 727
    functionName: conn_active_reverse_listener
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 2
    functionsReached:
    - __objt_listener
    - conn_is_back
    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: 741
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 741
    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: 755
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 755
    functionName: conn_pr_mode_to_proto_mode
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 5
    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: 772
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 772
    functionName: tevt_report_event
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 8
    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: 815
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 815
    functionName: tevt_evts2str
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 13
    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:820,1
    - Dst: tevt_report_event
      Src: /src/haproxy/include/haproxy/connection.h:822,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: 823
      start: 818
    functionDepth: 3
    functionLinenumber: 818
    functionLinenumberEnd: 823
    functionName: conn_report_term_evt
    functionSourceFile: /src/haproxy/include/haproxy/connection.h
    functionUses: 25
    functionsReached:
    - tevt_report_event
    - conn_is_back
    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:
    - MT_LIST_POP
    - HA_ATOMIC_DEC
    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:
    - MT_LIST_ISEMPTY
    - eb_is_empty
    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: 104
    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_CAS
    - _HA_ATOMIC_OR_FETCH
    - HA_ATOMIC_XCHG
    - HA_ATOMIC_STORE
    - BUG_ON
    - likely
    - __task_wakeup
    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_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - __task_wakeup
    - __ha_cpu_relax
    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:
    - HA_RWLOCK_WRLOCK
    - HA_RWLOCK_WRUNLOCK
    - __task_unlink_wq
    - BUG_ON
    - task_in_wq
    - likely
    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:
    - tick_is_lt
    - HA_ATOMIC_XCHG
    - HA_RWLOCK_WRLOCK
    - HA_ATOMIC_STORE
    - HA_RWLOCK_WRUNLOCK
    - BUG_ON
    - task_in_wq
    - tick_isset
    - __task_queue
    - likely
    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:
    - task_in_wq
    - task_queue
    - unlikely
    - task_unlink_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_CAS
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_OR_FETCH
    - HA_ATOMIC_XCHG
    - HA_ATOMIC_STORE
    - now_mono_time
    - BUG_ON
    - likely
    - __tasklet_wakeup_on
    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: 89
    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:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - _HA_ATOMIC_OR_FETCH
    - HA_ATOMIC_XCHG
    - HA_ATOMIC_STORE
    - now_mono_time
    - BUG_ON
    - BUG_ON_HOT
    - likely
    - __tasklet_wakeup_on
    - task_in_rq
    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: 4
    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_CAS
    - _HA_ATOMIC_OR_FETCH
    - HA_ATOMIC_XCHG
    - HA_ATOMIC_STORE
    - now_mono_time
    - BUG_ON
    - __tasklet_wakeup_after
    - likely
    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: 12
    argCount: 2
    argNames:
    - t
    - tid
    argTypes:
    - struct task*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 558
    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:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 573
    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:580,1
    - Dst: tasklet_init
      Src: /src/haproxy/include/haproxy/task.h:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 586
    functionName: tasklet_new
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 27
    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:597,1
    - Dst: task_init
      Src: /src/haproxy/include/haproxy/task.h:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - thr
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 603
    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:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 609
    functionDepth: 2
    functionLinenumber: 609
    functionLinenumberEnd: 612
    functionName: task_new_here
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 22
    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:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 620
    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:630,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:632,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:632,1
    - Dst: task_in_rq
      Src: /src/haproxy/include/haproxy/task.h:632,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:634,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:636,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:636,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:638,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:640,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/task.h:642,1
    - Dst: pool_flush
      Src: /src/haproxy/include/haproxy/task.h:643,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 626
    functionDepth: 3
    functionLinenumber: 626
    functionLinenumberEnd: 644
    functionName: __task_free
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 5
    functionsReached:
    - pool_flush
    - unlikely
    - HA_ATOMIC_STORE
    - __ha_barrier_store
    - pool_free
    - BUG_ON
    - task_in_wq
    - HA_ATOMIC_LOAD
    - task_in_rq
    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:655,1
    - Dst: __task_free
      Src: /src/haproxy/include/haproxy/task.h:666,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 650
    functionDepth: 4
    functionLinenumber: 650
    functionLinenumberEnd: 669
    functionName: task_destroy
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 50
    functionsReached:
    - __task_free
    - task_unlink_wq
    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:677,1
    - Dst: list_to_mt_list
      Src: /src/haproxy/include/haproxy/task.h:677,1
    - Dst: _HA_ATOMIC_DEC
      Src: /src/haproxy/include/haproxy/task.h:678,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:680,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:682,1
    - Dst: HA_ATOMIC_LOAD
      Src: /src/haproxy/include/haproxy/task.h:682,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:684,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:685,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/task.h:686,1
    - Dst: pool_flush
      Src: /src/haproxy/include/haproxy/task.h:687,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - tl
    argTypes:
    - struct tasklet*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 672
    functionDepth: 3
    functionLinenumber: 672
    functionLinenumberEnd: 688
    functionName: tasklet_free
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 40
    functionsReached:
    - MT_LIST_DELETE
    - pool_flush
    - _HA_ATOMIC_DEC
    - unlikely
    - HA_ATOMIC_STORE
    - pool_free
    - BUG_ON
    - HA_ATOMIC_LOAD
    - 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: 693
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 693
    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: 705
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 705
    functionName: task_schedule
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: task_schedule(t, w)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: task_in_rq
      Src: /src/haproxy/include/haproxy/task.h:709,1
    - Dst: HA_RWLOCK_WRLOCK
      Src: /src/haproxy/include/haproxy/task.h:715,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:716,1
    - Dst: tick_first
      Src: /src/haproxy/include/haproxy/task.h:717,1
    - Dst: task_in_wq
      Src: /src/haproxy/include/haproxy/task.h:720,1
    - Dst: tick_is_lt
      Src: /src/haproxy/include/haproxy/task.h:720,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/task.h:721,1
    - Dst: HA_ATOMIC_XCHG
      Src: /src/haproxy/include/haproxy/task.h:722,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/task.h:723,1
    - Dst: HA_ATOMIC_STORE
      Src: /src/haproxy/include/haproxy/task.h:725,1
    - Dst: __task_queue
      Src: /src/haproxy/include/haproxy/task.h:728,1
    - Dst: HA_RWLOCK_WRUNLOCK
      Src: /src/haproxy/include/haproxy/task.h:730,1
    - Dst: BUG_ON
      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
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 3
    argNames:
    - task
    - when
    - caller
    argTypes:
    - struct task*
    - int
    - struct ha_caller*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 750
    functionName: _task_schedule
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached:
    - tick_is_lt
    - HA_ATOMIC_XCHG
    - HA_RWLOCK_WRLOCK
    - HA_ATOMIC_STORE
    - HA_RWLOCK_WRUNLOCK
    - BUG_ON
    - task_in_wq
    - __task_queue
    - likely
    - tick_first
    - task_in_rq
    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: 767
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 767
    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:771,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/task.h:774,1
    - Dst: HA_SPIN_INIT
      Src: /src/haproxy/include/haproxy/task.h:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - purge
    - wakeup
    argTypes:
    - struct list*
    - struct task*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 778
    functionName: _notification_new
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached:
    - LIST_APPEND
    - pool_alloc
    - 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:789,1
    - Dst: MT_LIST_APPEND
      Src: /src/haproxy/include/haproxy/task.h:792,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: 794
      start: 787
    functionDepth: 2
    functionLinenumber: 787
    functionLinenumberEnd: 794
    functionName: notification_new
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 7
    functionsReached:
    - MT_LIST_APPEND
    - _notification_new
    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:809,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/task.h:810,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:812,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:813,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - purge
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 819
    functionName: notification_purge
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - pool_free
    - LIST_DELETE
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:809,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/task.h:810,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:812,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:813,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:817,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 818
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 113
    functionsReached:
    - pool_free
    - LIST_DELETE
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    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:836,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - purge
    argTypes:
    - struct list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 839
    functionName: notification_gc
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 2
    functionsReached:
    - pool_free
    - LIST_DELETE
    linkageType: ''
    returnType: void
    signature: void notification_gc(struct list *purge)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LIST_DELETE
      Src: /src/haproxy/include/haproxy/task.h:836,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:837,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 838
    functionName: list_for_each_entry_safe
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 113
    functionsReached:
    - pool_free
    - LIST_DELETE
    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:843,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:845,1
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/task.h:846,1
    - Dst: task_wakeup
      Src: /src/haproxy/include/haproxy/task.h:849,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/include/haproxy/task.h:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - com
    argTypes:
    - struct notification*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 853
    functionName: _notification_wake
    functionSourceFile: /src/haproxy/include/haproxy/task.h
    functionUses: 0
    functionsReached:
    - pool_free
    - task_wakeup
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    linkageType: ''
    returnType: void
    signature: void _notification_wake(struct notification *com)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _notification_wake
      Src: /src/haproxy/include/haproxy/task.h:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - wake
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 858
    functionDepth: 2
    functionLinenumber: 858
    functionLinenumberEnd: 868
    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:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 864
    functionDepth: 2
    functionLinenumber: 864
    functionLinenumberEnd: 867
    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:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - wake
    argTypes:
    - struct mt_list*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 875
    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: 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:84,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:86,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:86,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:86,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: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: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: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: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:95,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: 98
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 98
    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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    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:147,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:149,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:149,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:149,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/mux_h2-t.h:149,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:157,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: 160
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 160
    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: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    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: 209
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: h2c_st_to_str
    functionSourceFile: /src/haproxy/include/haproxy/mux_h2-t.h
    functionUses: 3
    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: 225
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 225
    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: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    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: 111
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 111
    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: 140
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 140
    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: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    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: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    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: 161
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 161
    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: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    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: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    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: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    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: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    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: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    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: 235
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 235
    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: 249
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 249
    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: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: FLT_ID
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 21
    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: 38
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 38
    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: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: FLT_OPS
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 20
    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: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    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: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    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: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    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: 50
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 50
    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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    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: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    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: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    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: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    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: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    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: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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: 74
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 74
    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: 86
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 86
    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: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    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: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    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: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: strm_flt
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 15
    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:139,1
    - Dst: strm_flt
      Src: /src/haproxy/include/haproxy/filters.h:142,1
    - Dst: strm_flt
      Src: /src/haproxy/include/haproxy/filters.h:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - chn
    - filter
    argTypes:
    - struct stream*
    - struct channel*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: register_data_filter
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 9
    functionsReached:
    - IS_DATA_FILTER
    - strm_flt
    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:155,1
    - Dst: strm_flt
      Src: /src/haproxy/include/haproxy/filters.h:158,1
    - Dst: strm_flt
      Src: /src/haproxy/include/haproxy/filters.h:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - chn
    - filter
    argTypes:
    - struct stream*
    - struct channel*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 166
    functionName: unregister_data_filter
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 4
    functionsReached:
    - IS_DATA_FILTER
    - strm_flt
    linkageType: ''
    returnType: void
    signature: void unregister_data_filter(struct stream *s, struct channel *chn,
      struct filter *filter)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: chn_strm
      Src: /src/haproxy/include/haproxy/filters.h:177,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/include/haproxy/filters.h:180,1
    - Dst: strm_flt
      Src: /src/haproxy/include/haproxy/filters.h:180,1
    - Dst: FLT_OFF
      Src: /src/haproxy/include/haproxy/filters.h:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - filter
    - chn
    - len
    argTypes:
    - struct filter*
    - struct channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 185
    functionName: flt_update_offsets
    functionSourceFile: /src/haproxy/include/haproxy/filters.h
    functionUses: 9
    functionsReached:
    - FLT_OFF
    - chn_strm
    - list_for_each_entry
    - strm_flt
    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: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    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: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    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: 67
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 67
    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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    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: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    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: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    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: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    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: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    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: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: HTX_SL_REQ_VLEN
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 12
    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: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    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: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: HTX_SL_REQ_VPTR
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 12
    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: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    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: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    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: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    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:88,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/include/haproxy/htx.h:88,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/include/haproxy/htx.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: htx_sl_p1
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - ist2
    - HTX_SL_P1_LEN
    - HTX_SL_P1_PTR
    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:93,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/include/haproxy/htx.h:93,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/include/haproxy/htx.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: htx_sl_p2
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - ist2
    - HTX_SL_P2_LEN
    - HTX_SL_P2_PTR
    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:98,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/include/haproxy/htx.h:98,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/include/haproxy/htx.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: htx_sl_p3
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - ist2
    - HTX_SL_P3_PTR
    - HTX_SL_P3_LEN
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 104
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: htx_sl_req_uri
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 23
    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:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: htx_sl_req_vsn
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    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:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 120
    functionName: htx_sl_res_vsn
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    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:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 125
    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:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sl
    argTypes:
    - struct htx_sl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 130
    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: 136
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 136
    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: 143
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 143
    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:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - htx
    - pos
    argTypes:
    - struct htx*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 150
    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:
    - blk
    argTypes:
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: htx_get_blk_type
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 82
    functionsReached: []
    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_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - blk
    argTypes:
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 172
    functionName: htx_get_blksz
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 54
    functionsReached:
    - htx_get_blk_type
    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: 180
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 180
    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:187,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: htx_get_head_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 39
    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:197,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 2
    functionLinenumber: 195
    functionLinenumberEnd: 200
    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:207,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: htx_get_head_type
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached:
    - htx_get_head_blk
    - htx_get_blk_type
    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: 218
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 218
    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: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_tail_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 8
    functionsReached:
    - htx_get_blk
    - htx_get_tail
    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: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_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: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    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:255,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: htx_get_first_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 16
    functionsReached:
    - htx_get_first
    - htx_get_blk
    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:264,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 262
    functionDepth: 3
    functionLinenumber: 262
    functionLinenumberEnd: 267
    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: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    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:287,1
    - Dst: htx_get_blk_pos
      Src: /src/haproxy/include/haproxy/htx.h:287,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 289
    functionName: htx_get_prev_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached:
    - htx_get_prev
    - htx_get_blk
    - htx_get_blk_pos
    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: 300
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 300
    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:310,1
    - Dst: htx_get_blk_pos
      Src: /src/haproxy/include/haproxy/htx.h:310,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: htx_get_next_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 26
    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:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 322
    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:330,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/include/haproxy/htx.h:334,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: 354
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 354
    functionName: htx_change_blk_value_len
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 9
    functionsReached:
    - htx_get_blksz
    - htx_get_blk_type
    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:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - blk
    - vlen
    argTypes:
    - struct htx_blk*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 379
    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: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: htx_get_blk_ptr
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 34
    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:392,1
    - Dst: ist2
      Src: /src/haproxy/include/haproxy/htx.h:398,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:398,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/htx.h:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 406
    functionName: htx_get_blk_name
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 26
    functionsReached:
    - ist2
    - htx_get_blk_ptr
    - htx_get_blk_type
    - 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:414,1
    - Dst: ist2
      Src: /src/haproxy/include/haproxy/htx.h:420,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:420,1
    - Dst: ist2
      Src: /src/haproxy/include/haproxy/htx.h:427,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:427,1
    - Dst: ist
      Src: /src/haproxy/include/haproxy/htx.h:432,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - htx
    - blk
    argTypes:
    - struct htx*
    - struct htx_blk*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 435
    functionName: htx_get_blk_value
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 43
    functionsReached:
    - ist2
    - htx_get_blk_ptr
    - htx_get_blk_type
    - 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:452,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:457,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/include/haproxy/htx.h:460,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/include/haproxy/htx.h:461,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/include/haproxy/htx.h:462,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:464,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/include/haproxy/htx.h:464,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:465,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/include/haproxy/htx.h:465,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:466,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/include/haproxy/htx.h:466,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: 469
      start: 440
    functionDepth: 5
    functionLinenumber: 440
    functionLinenumberEnd: 469
    functionName: htx_add_stline
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 21
    functionsReached:
    - HTX_SL_P2_LEN
    - HTX_SL_P1_PTR
    - HTX_SL_P3_LEN
    - htx_get_blk_ptr
    - htx_add_blk
    - HTX_SL_P1_LEN
    - HTX_SL_P3_PTR
    - HTX_SL_P2_PTR
    - memcpy
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_add_blk
      Src: /src/haproxy/include/haproxy/htx.h:482,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/include/haproxy/htx.h:487,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:487,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:488,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:488,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - htx
    - name
    - value
    argTypes:
    - struct htx*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 474
    functionDepth: 5
    functionLinenumber: 474
    functionLinenumberEnd: 490
    functionName: htx_add_header
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 16
    functionsReached:
    - htx_get_blk_ptr
    - htx_add_blk
    - memcpy
    - ist2bin_lc
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: htx_add_blk
      Src: /src/haproxy/include/haproxy/htx.h:503,1
    - Dst: ist2bin_lc
      Src: /src/haproxy/include/haproxy/htx.h:508,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:508,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:509,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:509,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - htx
    - name
    - value
    argTypes:
    - struct htx*
    - struct ist
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 495
    functionDepth: 5
    functionLinenumber: 495
    functionLinenumberEnd: 511
    functionName: htx_add_trailer
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    functionsReached:
    - htx_get_blk_ptr
    - htx_add_blk
    - memcpy
    - ist2bin_lc
    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:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - htx
    - type
    argTypes:
    - struct htx*
    - enum htx_blk_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 516
    functionDepth: 5
    functionLinenumber: 516
    functionLinenumberEnd: 526
    functionName: htx_add_endof
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 23
    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:541,1
    - Dst: htx_add_header
      Src: /src/haproxy/include/haproxy/htx.h:543,1
    - Dst: htx_add_endof
      Src: /src/haproxy/include/haproxy/htx.h:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - htx
    - hdrs
    argTypes:
    - struct htx*
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 535
    functionDepth: 6
    functionLinenumber: 535
    functionLinenumberEnd: 547
    functionName: htx_add_all_headers
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 4
    functionsReached:
    - isttest
    - htx_add_endof
    - htx_add_header
    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:562,1
    - Dst: htx_add_trailer
      Src: /src/haproxy/include/haproxy/htx.h:564,1
    - Dst: htx_add_endof
      Src: /src/haproxy/include/haproxy/htx.h:567,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - htx
    - hdrs
    argTypes:
    - struct htx*
    - struct http_hdr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 556
    functionDepth: 6
    functionLinenumber: 556
    functionLinenumberEnd: 568
    functionName: htx_add_all_trailers
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - isttest
    - htx_add_endof
    - htx_add_trailer
    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: 584
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 584
    functionName: htx_cut_data_blk
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 13
    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: 593
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 593
    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:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 599
    functionName: htx_used_space
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 13
    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:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 602
    functionDepth: 2
    functionLinenumber: 602
    functionLinenumberEnd: 605
    functionName: htx_free_space
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 5
    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:612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 610
    functionDepth: 3
    functionLinenumber: 610
    functionLinenumberEnd: 617
    functionName: htx_free_data_space
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 21
    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:625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 628
    functionName: htx_space_wraps
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 2
    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:635,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - htx
    - max
    argTypes:
    - struct htx*
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 633
    functionDepth: 3
    functionLinenumber: 633
    functionLinenumberEnd: 642
    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:647,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 645
    functionDepth: 3
    functionLinenumber: 645
    functionLinenumberEnd: 650
    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: 659
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 659
    functionName: htx_reset
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 12
    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:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 676
    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:690,1
    - Dst: b_data
      Src: /src/haproxy/include/haproxy/htx.h:693,1
    - Dst: htx_reset
      Src: /src/haproxy/include/haproxy/htx.h:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 698
    functionName: htxbuf
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 102
    functionsReached:
    - b_data
    - b_is_null
    - htx_reset
    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:711,1
    - Dst: b_set_data
      Src: /src/haproxy/include/haproxy/htx.h:713,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/htx.h:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 2
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: htx_from_buf
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 48
    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:722,1
    - Dst: b_set_data
      Src: /src/haproxy/include/haproxy/htx.h:723,1
    - Dst: b_set_data
      Src: /src/haproxy/include/haproxy/htx.h:726,1
    - Dst: b_size
      Src: /src/haproxy/include/haproxy/htx.h:726,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - htx
    - buf
    argTypes:
    - struct htx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 727
    functionName: htx_to_buf
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 38
    functionsReached:
    - b_set_data
    - b_size
    - htx_reset
    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: 735
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 735
    functionName: htx_is_empty
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 47
    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: 743
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 743
    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: 753
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 753
    functionName: htx_expect_more
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 3
    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:764,1
    - Dst: htx_add_endof
      Src: /src/haproxy/include/haproxy/htx.h:765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 762
    functionDepth: 6
    functionLinenumber: 762
    functionLinenumberEnd: 771
    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:780,1
    - Dst: htx_free_space
      Src: /src/haproxy/include/haproxy/htx.h:780,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/htx.h:781,1
    - Dst: htx_append_msg
      Src: /src/haproxy/include/haproxy/htx.h:786,1
    - Dst: htxbuf
      Src: /src/haproxy/include/haproxy/htx.h:786,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - htx
    - msg
    argTypes:
    - struct htx*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 777
    functionDepth: 6
    functionLinenumber: 777
    functionLinenumberEnd: 787
    functionName: htx_copy_msg
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - htxbuf
    - htx_is_empty
    - htx_append_msg
    - memcpy
    - htx_free_space
    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:792,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:795,1
    - Dst: htx_remove_blk
      Src: /src/haproxy/include/haproxy/htx.h:798,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/include/haproxy/htx.h:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - htx
    argTypes:
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 790
    functionDepth: 3
    functionLinenumber: 790
    functionLinenumberEnd: 801
    functionName: htx_skip_msg_payload
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 1
    functionsReached:
    - htx_remove_blk
    - htx_get_next_blk
    - htx_get_blk_type
    - htx_get_first_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: 810
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 810
    functionName: htx_nbblks
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 18
    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: 825
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 825
    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:832,1
    - Dst: htx_nbblks
      Src: /src/haproxy/include/haproxy/htx.h:834,1
    - Dst: htx_nbblks
      Src: /src/haproxy/include/haproxy/htx.h:838,1
    - Dst: chunk_memcat
      Src: /src/haproxy/include/haproxy/htx.h:840,1
    - Dst: htx_get_head
      Src: /src/haproxy/include/haproxy/htx.h:842,1
    - Dst: htx_get_next
      Src: /src/haproxy/include/haproxy/htx.h:842,1
    - Dst: htx_get_blk
      Src: /src/haproxy/include/haproxy/htx.h:844,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/include/haproxy/htx.h:845,1
    - Dst: htx_get_blksz
      Src: /src/haproxy/include/haproxy/htx.h:846,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/include/haproxy/htx.h:849,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/include/haproxy/htx.h:850,1
    - Dst: htx_get_blk_ptr
      Src: /src/haproxy/include/haproxy/htx.h:853,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/htx.h:854,1
    - Dst: htx_blk_type_str
      Src: /src/haproxy/include/haproxy/htx.h:855,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/include/haproxy/htx.h:856,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/include/haproxy/htx.h:856,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/include/haproxy/htx.h:857,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/include/haproxy/htx.h:857,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/include/haproxy/htx.h:858,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/include/haproxy/htx.h:858,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/htx.h:861,1
    - Dst: htx_blk_type_str
      Src: /src/haproxy/include/haproxy/htx.h:862,1
    - Dst: MIN
      Src: /src/haproxy/include/haproxy/htx.h:863,1
    - Dst: MIN
      Src: /src/haproxy/include/haproxy/htx.h:864,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/htx.h:866,1
    - Dst: htx_blk_type_str
      Src: /src/haproxy/include/haproxy/htx.h:867,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 3
    argNames:
    - chunk
    - htx
    - full
    argTypes:
    - struct buffer*
    - struct htx*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 828
    functionDepth: 2
    functionLinenumber: 828
    functionLinenumberEnd: 870
    functionName: htx_dump
    functionSourceFile: /src/haproxy/include/haproxy/htx.h
    functionUses: 5
    functionsReached:
    - htx_get_head
    - htx_get_blk_value
    - HTX_SL_P2_LEN
    - htx_get_blk_name
    - htx_get_blk_ptr
    - MIN
    - chunk_appendf
    - htx_get_blk_type
    - HTX_SL_P1_PTR
    - HTX_SL_P3_PTR
    - htx_get_next
    - HTX_SL_P2_PTR
    - htx_get_blk
    - htx_nbblks
    - HTX_SL_P1_LEN
    - chunk_memcat
    - htx_get_blksz
    - HTX_SL_P3_LEN
    - 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_APPEND
    - LIST_DELETE
    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_INIT
    - LIST_DELETE
    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:
    - b_orig
    - __b_peek
    - unlikely
    - b_wrap
    - b_peek
    linkageType: ''
    returnType: int
    signature: int h1_skip_chunk_crlf(const struct buffer *buf, int start, int stop)
  - BBCount: 18
    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:278,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/h1.h:281,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:282,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/h1.h:284,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/h1.h:294,1
    - Dst: HTTP_IS_SPHT
      Src: /src/haproxy/include/haproxy/h1.h:297,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:299,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/h1.h:308,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:311,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:318,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/h1.h:323,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:326,1
    - Dst: HTTP_IS_CRLF
      Src: /src/haproxy/include/haproxy/h1.h:330,1
    - Dst: b_orig
      Src: /src/haproxy/include/haproxy/h1.h:332,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 63
    argCount: 4
    argNames:
    - buf
    - start
    - stop
    - res
    argTypes:
    - struct buffer*
    - int
    - int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 351
    functionName: h1_parse_chunk_size
    functionSourceFile: /src/haproxy/include/haproxy/h1.h
    functionUses: 1
    functionsReached:
    - b_orig
    - HTTP_IS_SPHT
    - unlikely
    - b_wrap
    - b_peek
    - likely
    - hex2i
    - HTTP_IS_CRLF
    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: 365
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 365
    functionName: h1m_init_req
    functionSourceFile: /src/haproxy/include/haproxy/h1.h
    functionUses: 3
    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: 379
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 379
    functionName: h1m_init_res
    functionSourceFile: /src/haproxy/include/haproxy/h1.h
    functionUses: 8
    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:
    - _HA_ATOMIC_CAS
    - _HA_ATOMIC_LOAD
    - unlikely
    - __ha_barrier_atomic_load
    - GET_NEXT_OFF
    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_CAS
    - __ha_barrier_atomic_store
    - GET_NEXT_OFF
    - _HA_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: 5
    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: 27
    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_iseternity
    - tv_ms_cmp
    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_elapsed
    - tv_ms_cmp
    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_eternity
    - __tv_remain
    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: 19
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 19
    functionName: qcc_report_glitch
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 9
    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: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: qmux_stream_rx_bufsz
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int qmux_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: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    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:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 71
    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:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - qcc
    - id
    argTypes:
    - struct qcc*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 4
    functionLinenumber: 74
    functionLinenumberEnd: 77
    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: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUG_ON_HOT
      Src: /src/haproxy/include/haproxy/mux_quic.h:105,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/mux_quic.h:105,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/include/haproxy/mux_quic.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - qcs
    argTypes:
    - struct qcs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 112
    functionName: qcs_wait_http_req
    functionSourceFile: /src/haproxy/include/haproxy/mux_quic.h
    functionUses: 2
    functionsReached:
    - LIST_APPEND
    - BUG_ON_HOT
    - tick_isset
    linkageType: ''
    returnType: void
    signature: void qcs_wait_http_req(struct qcs *qcs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:92,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:94,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:94,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: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: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: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:103,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: 106
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 106
    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: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    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:173,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:175,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:175,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:175,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:180,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:183,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:183,1
    - Dst: _
      Src: /src/haproxy/include/haproxy/channel-t.h:183,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:186,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:189,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: 192
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 192
    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: 172
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 172
    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:
    - strlen
    - pcre_exec
    - regexec
    - struct my_regex*::mfn
    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:
    - pcre_exec
    - regexec
    - 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:
    - regfree
    - pcre_free_study
    - free
    - pcre2_code_free
    - pcre_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: 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: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    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: 88
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 88
    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: 93
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 93
    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: 98
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 98
    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: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    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: 108
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 108
    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: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    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:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - f
    - e
    argTypes:
    - struct field*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 118
    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: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    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: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    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: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    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: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    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: 148
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 148
    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: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    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: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    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: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    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: 167
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 167
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    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: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    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: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    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: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    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: 86
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 86
    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: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: TRACE_ERROR
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 168
    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: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    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: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: TRACE_DATA
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 52
    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: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: TRACE_PROTO
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 125
    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: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: TRACE_STATE
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 180
    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: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: TRACE_DEVEL
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 278
    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: 107
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 107
    functionName: TRACE_ENTER
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 484
    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: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: TRACE_LEAVE
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 472
    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: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: TRACE_POINT
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 53
    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: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: TRACE_PRINTF
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 9
    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: 142
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 142
    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:
    - (
    - msg
    - ','
    - mask
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 145
    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: 146
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 146
    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: 147
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 147
    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: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    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: 149
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 149
    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: 150
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 150
    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: 151
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 151
    functionName: DBG_TRACE_DEVEL
    functionSourceFile: /src/haproxy/include/haproxy/trace.h
    functionUses: 35
    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: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    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: 153
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 153
    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: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    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: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    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: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    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: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    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: 207
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 207
    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:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    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: 228
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 228
    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: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    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: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - v
    - bits
    argTypes:
    - uint64_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: rotl64
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    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: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    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: 117
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 117
    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: 137
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 137
    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: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    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: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    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: 197
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 197
    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:221,1
    - Dst: is_char4_outside
      Src: /src/haproxy/include/haproxy/intops.h:222,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: 223
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 223
    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: 234
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: my_popcountl
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 7
    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: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: atleast2
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 6
    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: 283
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 283
    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: 326
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 326
    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: 335
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 335
    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:360,1
    - Dst: htonl
      Src: /src/haproxy/include/haproxy/intops.h:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 362
    functionName: my_htonll
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 5
    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:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - unsigned long long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 368
    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: 374
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: ha_bit_set
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 3
    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: 380
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 380
    functionName: ha_bit_clr
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    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: 386
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 386
    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: 392
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 392
    functionName: ha_bit_test
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 9
    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: 417
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 417
    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: 432
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 432
    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: 445
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 445
    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: 463
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 463
    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: 477
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 477
    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: 495
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 495
    functionName: __strl2uic
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 1
    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: 517
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 517
    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: 537
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 537
    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: 581
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 581
    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: 612
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 612
    functionName: decode_varint
    functionSourceFile: /src/haproxy/include/haproxy/intops.h
    functionUses: 7
    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: 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: 2
    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: 19
    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: 3
    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:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - cid
    argTypes:
    - struct buffer*
    - struct tp_cid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 43
    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:51,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:53,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: 54
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 54
    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:63,1
    - Dst: quic_tp_cid_dump
      Src: /src/haproxy/include/haproxy/quic_tp.h:64,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:66,1
    - Dst: quic_tp_cid_dump
      Src: /src/haproxy/include/haproxy/quic_tp.h:67,1
    - 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: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:74,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:75,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:76,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:77,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:83,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:85,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:88,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:96,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:98,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:106,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:111,1
    - Dst: inet_ntop
      Src: /src/haproxy/include/haproxy/quic_tp.h:112,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:114,1
    - Dst: inet_ntop
      Src: /src/haproxy/include/haproxy/quic_tp.h:116,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:118,1
    - Dst: quic_tp_cid_dump
      Src: /src/haproxy/include/haproxy/quic_tp.h:119,1
    - Dst: chunk_appendf
      Src: /src/haproxy/include/haproxy/quic_tp.h:120,1
    - Dst: quic_tp_version_info_dump
      Src: /src/haproxy/include/haproxy/quic_tp.h:123,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: 124
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 124
    functionName: quic_transport_params_dump
    functionSourceFile: /src/haproxy/include/haproxy/quic_tp.h
    functionUses: 2
    functionsReached:
    - quic_tp_cid_dump
    - chunk_appendf
    - quic_tp_version_info_dump
    - inet_ntop
    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: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: sc_ic
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 28
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: sc_oc
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 28
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: sc_ib
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 2
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 76
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: sc_strm_task
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 7
    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:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: sc_opposite
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 21
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sc
    - state
    argTypes:
    - struct stconn*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 100
    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:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - state
    argTypes:
    - enum sc_state
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    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:112,1
    - Dst: sc_state_bit
      Src: /src/haproxy/include/haproxy/sc_strm.h:113,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: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: sc_state_in
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 18
    functionsReached:
    - BUG_ON
    - sc_state_bit
    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:121,1
    - Dst: conn_ctrl_ready
      Src: /src/haproxy/include/haproxy/sc_strm.h:123,1
    - Dst: conn_xprt_ready
      Src: /src/haproxy/include/haproxy/sc_strm.h:123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: sc_conn_ready
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - sc_conn
    - conn_ctrl_ready
    - conn_xprt_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:140,1
    - Dst: BUG_ON
      Src: /src/haproxy/include/haproxy/sc_strm.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 143
    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:157,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/sc_strm.h:157,1
    - Dst: sc_used_buff
      Src: /src/haproxy/include/haproxy/sc_strm.h:159,1
    - Dst: sc_need_buff
      Src: /src/haproxy/include/haproxy/sc_strm.h:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sc
    - wait
    argTypes:
    - struct stconn*
    - struct buffer_wait*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 164
    functionName: sc_alloc_ibuf
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 3
    functionsReached:
    - sc_used_buff
    - sc_ic
    - channel_alloc_buffer
    - sc_need_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:176,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/sc_strm.h:176,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:176,1
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:178,1
    - Dst: conn_src
      Src: /src/haproxy/include/haproxy/sc_strm.h:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 184
    functionName: sc_src
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 15
    functionsReached:
    - sess_src
    - sc_conn
    - __sc_strm
    - conn_src
    - strm_sess
    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:196,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/sc_strm.h:196,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:196,1
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:198,1
    - Dst: conn_dst
      Src: /src/haproxy/include/haproxy/sc_strm.h:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 204
    functionName: sc_dst
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 13
    functionsReached:
    - sc_conn
    - __sc_strm
    - strm_sess
    - conn_dst
    - sess_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:220,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/sc_strm.h:220,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:220,1
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:222,1
    - Dst: conn_src
      Src: /src/haproxy/include/haproxy/sc_strm.h:225,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/sc_strm.h:230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 234
    functionName: sc_get_src
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 2
    functionsReached:
    - sess_src
    - sc_conn
    - sockaddr_alloc
    - __sc_strm
    - conn_src
    - strm_sess
    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:250,1
    - Dst: strm_sess
      Src: /src/haproxy/include/haproxy/sc_strm.h:250,1
    - Dst: __sc_strm
      Src: /src/haproxy/include/haproxy/sc_strm.h:250,1
    - Dst: sc_conn
      Src: /src/haproxy/include/haproxy/sc_strm.h:252,1
    - Dst: conn_dst
      Src: /src/haproxy/include/haproxy/sc_strm.h:255,1
    - Dst: sockaddr_alloc
      Src: /src/haproxy/include/haproxy/sc_strm.h:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 264
    functionName: sc_get_dst
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 2
    functionsReached:
    - sc_conn
    - sockaddr_alloc
    - __sc_strm
    - strm_sess
    - conn_dst
    - sess_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:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 268
    functionDepth: 2
    functionLinenumber: 268
    functionLinenumberEnd: 271
    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:287,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:290,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:293,1
    - Dst: sc_opposite
      Src: /src/haproxy/include/haproxy/sc_strm.h:293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 297
    functionName: sc_is_recv_allowed
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 5
    functionsReached:
    - sc_opposite
    - sc_ep_test
    linkageType: ''
    returnType: int
    signature: int sc_is_recv_allowed(const struct stconn *sc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:307,1
    - Dst: sc_state_in
      Src: /src/haproxy/include/haproxy/sc_strm.h:308,1
    - Dst: sc_opposite
      Src: /src/haproxy/include/haproxy/sc_strm.h:308,1
    - Dst: sc_ep_clr
      Src: /src/haproxy/include/haproxy/sc_strm.h:309,1
    - Dst: sc_ep_report_read_activity
      Src: /src/haproxy/include/haproxy/sc_strm.h:310,1
    - Dst: sc_is_recv_allowed
      Src: /src/haproxy/include/haproxy/sc_strm.h:313,1
    - Dst: sc_state_in
      Src: /src/haproxy/include/haproxy/sc_strm.h:316,1
    - Dst: sc_ep_set
      Src: /src/haproxy/include/haproxy/sc_strm.h:319,1
    - Dst: likely
      Src: /src/haproxy/include/haproxy/sc_strm.h:320,1
    - Dst: struct stconn*::app_ops::chk_rcv
      Src: /src/haproxy/include/haproxy/sc_strm.h:321,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 322
    functionName: sc_chk_rcv
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 3
    functionsReached:
    - sc_state_in
    - sc_ep_test
    - sc_ep_clr
    - sc_is_recv_allowed
    - struct stconn*::app_ops::chk_rcv
    - sc_opposite
    - sc_ep_set
    - sc_ep_report_read_activity
    - likely
    linkageType: ''
    returnType: void
    signature: void sc_chk_rcv(struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/sc_strm.h:327,1
    - Dst: struct stconn*::app_ops::chk_snd
      Src: /src/haproxy/include/haproxy/sc_strm.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: sc_chk_snd
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - struct stconn*::app_ops::chk_snd
    - likely
    linkageType: ''
    returnType: void
    signature: void sc_chk_snd(struct stconn *sc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:337,1
    - Dst: sc_conn_sync_recv
      Src: /src/haproxy/include/haproxy/sc_strm.h:338,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:339,1
    - Dst: sc_applet_sync_recv
      Src: /src/haproxy/include/haproxy/sc_strm.h:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 335
    functionDepth: 7
    functionLinenumber: 335
    functionLinenumberEnd: 342
    functionName: sc_sync_recv
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - sc_conn_sync_recv
    - sc_ep_test
    - sc_applet_sync_recv
    linkageType: ''
    returnType: int
    signature: int sc_sync_recv(struct stconn *sc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:349,1
    - Dst: sc_conn_sync_send
      Src: /src/haproxy/include/haproxy/sc_strm.h:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 347
    functionDepth: 3
    functionLinenumber: 347
    functionLinenumberEnd: 351
    functionName: sc_sync_send
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - sc_conn_sync_send
    - sc_ep_test
    linkageType: ''
    returnType: void
    signature: void sc_sync_send(struct stconn *sc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sc_update_rx
      Src: /src/haproxy/include/haproxy/sc_strm.h:356,1
    - Dst: sc_update_tx
      Src: /src/haproxy/include/haproxy/sc_strm.h:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 358
    functionName: sc_update
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - sc_update_rx
    - sc_update_tx
    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: 377
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 377
    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:389,1
    - Dst: __sc_appctx
      Src: /src/haproxy/include/haproxy/sc_strm.h:389,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:390,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:392,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:395,1
    - Dst: __sc_appctx
      Src: /src/haproxy/include/haproxy/sc_strm.h:396,1
    - Dst: co_data
      Src: /src/haproxy/include/haproxy/sc_strm.h:398,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/sc_strm.h:398,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 402
    functionName: sc_is_send_allowed
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 4
    functionsReached:
    - co_data
    - sc_ep_test
    - sc_oc
    - __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:406,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:410,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:410,1
    - Dst: sc_opposite
      Src: /src/haproxy/include/haproxy/sc_strm.h:410,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 404
    functionDepth: 3
    functionLinenumber: 404
    functionLinenumberEnd: 413
    functionName: sc_rcv_may_expire
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 0
    functionsReached:
    - sc_opposite
    - sc_ep_test
    - sc_ic
    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:417,1
    - Dst: sc_ep_test
      Src: /src/haproxy/include/haproxy/sc_strm.h:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 3
    functionLinenumber: 415
    functionLinenumberEnd: 422
    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:426,1
    - Dst: sc_rcv_may_expire
      Src: /src/haproxy/include/haproxy/sc_strm.h:426,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/include/haproxy/sc_strm.h:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 424
    functionDepth: 4
    functionLinenumber: 424
    functionLinenumberEnd: 429
    functionName: sc_ep_rcv_ex
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 6
    functionsReached:
    - tick_add_ifset
    - sc_rcv_may_expire
    - tick_isset
    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:433,1
    - Dst: sc_snd_may_expire
      Src: /src/haproxy/include/haproxy/sc_strm.h:433,1
    - Dst: tick_add_ifset
      Src: /src/haproxy/include/haproxy/sc_strm.h:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 431
    functionDepth: 4
    functionLinenumber: 431
    functionLinenumberEnd: 436
    functionName: sc_ep_snd_ex
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 6
    functionsReached:
    - tick_add_ifset
    - sc_snd_may_expire
    - tick_isset
    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:440,1
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/sc_strm.h:440,1
    - Dst: sc_ep_rcv_ex
      Src: /src/haproxy/include/haproxy/sc_strm.h:440,1
    - Dst: sc_ic
      Src: /src/haproxy/include/haproxy/sc_strm.h:441,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/sc_strm.h:442,1
    - Dst: tick_is_expired
      Src: /src/haproxy/include/haproxy/sc_strm.h:442,1
    - Dst: sc_ep_snd_ex
      Src: /src/haproxy/include/haproxy/sc_strm.h:442,1
    - Dst: sc_oc
      Src: /src/haproxy/include/haproxy/sc_strm.h:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 438
    functionDepth: 5
    functionLinenumber: 438
    functionLinenumberEnd: 444
    functionName: sc_check_timeouts
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 1
    functionsReached:
    - sc_ep_rcv_ex
    - unlikely
    - tick_is_expired
    - sc_oc
    - sc_ic
    - sc_ep_snd_ex
    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:448,1
    - Dst: IS_HTX_STRM
      Src: /src/haproxy/include/haproxy/sc_strm.h:450,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/sc_strm.h:454,1
    - Dst: tick_isset
      Src: /src/haproxy/include/haproxy/sc_strm.h:458,1
    - Dst: strm_fe
      Src: /src/haproxy/include/haproxy/sc_strm.h:458,1
    - Dst: strm_fe
      Src: /src/haproxy/include/haproxy/sc_strm.h:459,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 462
    functionName: sc_set_hcto
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 3
    functionsReached:
    - strm_fe
    - IS_HTX_STRM
    - __sc_strm
    - tick_isset
    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: 468
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 468
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/sc_strm.h:473,1
    - Dst: struct stconn*::app_ops::abort
      Src: /src/haproxy/include/haproxy/sc_strm.h:474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 475
    functionName: sc_abort
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 7
    functionsReached:
    - struct stconn*::app_ops::abort
    - likely
    linkageType: ''
    returnType: void
    signature: void sc_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: 481
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 481
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: likely
      Src: /src/haproxy/include/haproxy/sc_strm.h:486,1
    - Dst: struct stconn*::app_ops::shutdown
      Src: /src/haproxy/include/haproxy/sc_strm.h:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - sc
    argTypes:
    - struct stconn*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 488
    functionName: sc_shutdown
    functionSourceFile: /src/haproxy/include/haproxy/sc_strm.h
    functionUses: 13
    functionsReached:
    - struct stconn*::app_ops::shutdown
    - likely
    linkageType: ''
    returnType: void
    signature: void sc_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:
    - ist
    - isteqi
    - 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: 45
    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: 97
    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: 120
    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: 45
    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: 281
    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: 61
    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_orig
    - b_stop_ofs
    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_orig
    - __b_peek_ofs
    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:
    - __builtin_constant_p
    - __b_peek_ofs
    - 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_orig
    - b_peek_ofs
    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: 33
    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: 79
    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: 63
    functionsReached:
    - b_data
    - b_peek
    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_orig
    - BUG_ON_HOT
    - b_wrap
    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_size
    - b_data
    - 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: 26
    functionsReached:
    - __b_head_ofs
    - b_size
    - BUG_ON_HOT
    - __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: 25
    functionsReached:
    - b_data
    - b_wrap
    - b_peek
    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_size
    - b_data
    - BUG_ON_HOT
    - b_head_ofs
    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: 31
    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: 63
    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: 14
    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: 69
    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: 9
    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: 44
    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: 4
    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: 22
    functionsReached:
    - b_full
    - b_tail
    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_orig
    - BUG_ON_HOT
    - b_wrap
    - b_peek
    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_data
    - BUG_ON_HOT
    - b_wrap
    - b_peek
    - b_size
    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:
    - br_tail_idx
    - BUG_ON_HOT
    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:
    - b_room
    - BUG_ON_HOT
    - br_tail_idx
    - br_full
    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:
    - b_size
    - BUG_ON_HOT
    - br_full
    - 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: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: chunk_reset
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 94
    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: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: chunk_init
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 6
    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: 78
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 78
    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:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - chk
    - str
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    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:99,1
    - Dst: chunk_init
      Src: /src/haproxy/include/haproxy/chunk.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: alloc_trash_chunk
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 80
    functionsReached:
    - pool_alloc
    - chunk_init
    linkageType: ''
    returnType: forceinline
    signature: forceinline *alloc_trash_chunk(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pool_free
      Src: /src/haproxy/include/haproxy/chunk.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chunk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 115
    functionName: free_trash_chunk
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 81
    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:120,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - chk
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: chunk_cpy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 4
    functionsReached:
    - memcpy
    - unlikely
    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:134,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - chk
    - src
    - len
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 141
    functionName: chunk_memcpy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 3
    functionsReached:
    - memcpy
    - unlikely
    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:149,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - chk
    - src
    - len
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 155
    functionName: chunk_memcat
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 43
    functionsReached:
    - memcpy
    - unlikely
    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:160,1
    - Dst: istptr
      Src: /src/haproxy/include/haproxy/chunk.h:160,1
    - Dst: istlen
      Src: /src/haproxy/include/haproxy/chunk.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chk
    - src
    argTypes:
    - struct buffer*
    - struct ist
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: chunk_istcat
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 19
    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:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - chk
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 167
    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:176,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/chunk.h:178,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - chk
    - str
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 185
    functionName: chunk_strcpy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 6
    functionsReached:
    - strlen
    - memcpy
    - unlikely
    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:194,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/chunk.h:198,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - chk
    - str
    - max
    argTypes:
    - struct buffer*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 205
    functionName: chunk_strncpy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - unlikely
    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:214,1
    - Dst: unlikely
      Src: /src/haproxy/include/haproxy/chunk.h:216,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - chk
    - str
    argTypes:
    - struct buffer*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 222
    functionName: chunk_strcat
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 31
    functionsReached:
    - strlen
    - memcpy
    - unlikely
    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: 243
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 243
    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: 250
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 250
    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:257,1
    - Dst: chunk_drop
      Src: /src/haproxy/include/haproxy/chunk.h:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - chk
    argTypes:
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 259
    functionName: chunk_destroy
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 40
    functionsReached:
    - free
    - chunk_drop
    linkageType: ''
    returnType: void
    signature: void chunk_destroy(struct buffer *chk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/include/haproxy/chunk.h:274,1
    - Dst: malloc
      Src: /src/haproxy/include/haproxy/chunk.h:281,1
    - Dst: memcpy
      Src: /src/haproxy/include/haproxy/chunk.h:289,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct buffer*
    - struct buffer*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 294
    functionName: chunk_dup
    functionSourceFile: /src/haproxy/include/haproxy/chunk.h
    functionUses: 10
    functionsReached:
    - free
    - malloc
    - memcpy
    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:
    - flsnz
    - __builtin_expect
    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:
    - _ceb_dotag
    - strcmp
    - NODEK
    - memcmp
    - _ceb_clrtag
    - _ceb_gettag
    - equal_bits
    - __builtin_prefetch
    - __builtin_unreachable
    - string_equal_bits
    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_descend
    - _ceb_untag
    - _ceb_dotag
    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_descend
    - _ceb_untag
    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_descend
    - _ceb_untag
    - _ceb_dotag
    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_descend
    - _ceb_untag
    - _ceb_dotag
    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_descend
    - _ceb_untag
    - _ceb_dotag
    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_descend
    - _ceb_untag
    - _ceb_dotag
    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_descend
    - _ceb_untag
    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_descend
    - _ceb_untag
    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_descend
    - _ceb_untag
    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_descend
    - _ceb_untag
    - _ceb_dotag
    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: 2
    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: 0
    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:
    - eb_gettag
    - unlikely
    - strcmp
    - eb_untag
    - container_of
    - eb_prefetch
    - likely
    - string_equal_bits
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - cmp_bits
    - container_of
    - key::key
    - eb_prefetch
    - eb_insert_dup
    - node::node
    - eb_dotag
    - string_equal_bits
    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: 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: 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: 0
    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: 2
    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: 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: 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_untag
    - eb_gettag
    - eb_root_to_node
    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
    - eb_untag
    - container_of
    - branches::branches
    - eb_dotag
    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: 50
    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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_walk_down
    - unlikely
    - 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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_walk_down
    - 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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_walk_down
    - unlikely
    - 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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_walk_down
    - 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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_walk_down
    - unlikely
    - 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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_walk_down
    - unlikely
    - 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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_untag
    - eb_dotag
    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: 1
    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: 17
    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: 14
    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: 34
    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: 6
    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: 27
    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: 1
    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: 1
    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: 0
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_store_n
    - __atomic_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_store_n
    - __atomic_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_exchange_n
    - __atomic_thread_fence
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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: 4
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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: 2
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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_exchange_n
    - mt_list_cpu_relax
    - __atomic_thread_fence
    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:
    - eb_clrtag
    - eb_gettag
    - eb_root_to_node
    - unlikely
    - eb_untag
    - container_of
    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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_untag
    - eb32sc_walk_down_left
    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:
    - pl_barrier
    - pl_cpu_relax
    - pl_load
    - __builtin_expect
    - sched_yield
    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_barrier
    - pl_cpu_relax
    - pl_deref_int
    - __builtin_expect
    - sched_yield
    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:
    - pl_cpu_relax
    - __builtin_expect
    - pl_deref_long
    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:
    - pl_cpu_relax
    - pl_deref_int
    - __builtin_expect
    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_wait_unlock_long
    - __pl_wait_unlock_long
    - pl_ldadd_acq
    - pl_cmpxchg
    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
    - pl_deref_long
    - pl_or_noret
    - __builtin_expect
    - pl_cmpxchg
    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_lorw_wrunlock
    - pl_deref_long
    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_rfc1951_init
    - slz_rfc1950_init
    - slz_rfc1952_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_rfc1952_encode
    - slz_rfc1950_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_rfc1952_finish
    - slz_rfc1951_finish
    - slz_rfc1950_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_rfc1952_flush
    - slz_rfc1950_flush
    - slz_rfc1951_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:
    - XXH32_avalanche
    - XXH_ASSERT
    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_get32bits
    - XXH32_finalize
    - XXH_ASSERT
    - XXH32_round
    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_digest
    - XXH32_update
    - XXH32_reset
    - XXH32_endian_align
    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:
    - memset
    - XXH_ASSERT
    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_readLE32
    - XXH32_round
    - XXH_ASSERT
    - 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:
    - XXH32_finalize
    - XXH_rotl32
    linkageType: ''
    returnType: XXH_PUBLIC_API
    signature: XXH_PUBLIC_API XXH32_hash_t XXH32_digest(const XXH32_state_t* state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH_STATIC_ASSERT
      Src: /src/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_swap32
    - XXH_STATIC_ASSERT
    - 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_get64bits
    - XXH64_round
    - XXH_get32bits
    - XXH_rotl64
    - XXH_ASSERT
    - XXH64_avalanche
    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_get64bits
    - XXH64_round
    - XXH64_mergeRound
    - XXH64_finalize
    - XXH_rotl64
    - XXH_ASSERT
    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_update
    - XXH64_endian_align
    - XXH64_digest
    - XXH64_reset
    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:
    - memset
    - XXH_ASSERT
    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_readLE64
    - XXH64_round
    - XXH_ASSERT
    - 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:
    - XXH_rotl64
    - XXH64_finalize
    - XXH64_mergeRound
    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_swap64
    - XXH_memcpy
    - XXH_STATIC_ASSERT
    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:
    - vmlal_u32
    - vget_low_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:
    - vget_high_u32
    - vmlal_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:
    - _umul128
    - XXH_mult32to64
    - __umulh
    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_rotl64
    - XXH_xorshift64
    linkageType: ''
    returnType: XXH64_hash_t
    signature: XXH64_hash_t XXH3_rrmxmx(xxh_u64 h64, xxh_u64 len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/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:
    - XXH_readLE64
    - XXH_swap32
    - XXH_ASSERT
    - XXH3_rrmxmx
    - XXH_readLE32
    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:
    - XXH3_mul128_fold64
    - XXH_readLE64
    - XXH3_avalanche
    - XXH_swap64
    - XXH_ASSERT
    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:
    - XXH3_len_1to3_64b
    - XXH_readLE64
    - XXH64_avalanche
    - XXH_ASSERT
    - XXH_likely
    - XXH3_len_9to16_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:
    - XXH_readLE64
    - XXH3_mul128_fold64
    - XXH_COMPILER_GUARD
    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_memcpy
    - XXH_swap64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH_writeLE64(void* dst, xxh_u64 v64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_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_add_epi64
    - _mm512_xor_si512
    - _mm512_mul_epu32
    - XXH_ASSERT
    - _mm512_loadu_si512
    - _mm512_srli_epi64
    - XXH_STATIC_ASSERT
    - _MM_SHUFFLE
    - _mm512_shuffle_epi32
    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_add_epi64
    - _mm512_slli_epi64
    - _mm512_mul_epu32
    - XXH_ASSERT
    - _mm512_loadu_si512
    - _mm512_srli_epi64
    - XXH_STATIC_ASSERT
    - _mm512_set1_epi32
    - _mm512_ternarylogic_epi32
    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_add_epi64
    - XXH_ASSERT
    - _mm512_load_si512
    - _mm512_set1_epi64
    - XXH_STATIC_ASSERT
    - _mm512_set1_epi8
    - _mm512_mask_sub_epi64
    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_add_epi64
    - _mm256_srli_epi64
    - XXH_ASSERT
    - _mm256_xor_si256
    - _MM_SHUFFLE
    - _mm256_shuffle_epi32
    - _mm256_mul_epu32
    - _mm256_loadu_si256
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH3_accumulate_512_avx2( void* XXH_RESTRICT acc,\n
      \                   const void* XXH_RESTRICT input,\n                    const
      void* XXH_RESTRICT secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH_ASSERT
      Src: /src/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_add_epi64
    - _mm256_set1_epi32
    - _mm256_srli_epi64
    - XXH_ASSERT
    - _mm256_slli_epi64
    - _mm256_xor_si256
    - _mm256_mul_epu32
    - _mm256_loadu_si256
    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:
    - _mm256_add_epi64
    - _mm256_load_si256
    - XXH_PREFETCH
    - XXH_COMPILER_GUARD
    - XXH_ASSERT
    - _mm256_set_epi64x
    - XXH_STATIC_ASSERT
    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_xor_si128
    - _mm_add_epi64
    - _mm_shuffle_epi32
    - XXH_ASSERT
    - _MM_SHUFFLE
    - _mm_mul_epu32
    - _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_xor_si128
    - _mm_add_epi64
    - _mm_shuffle_epi32
    - _mm_set1_epi32
    - XXH_ASSERT
    - _MM_SHUFFLE
    - _mm_mul_epu32
    - _mm_loadu_si128
    - _mm_srli_epi64
    - _mm_slli_epi64
    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:
    - _mm_add_epi64
    - XXH_ALIGN
    - XXH_COMPILER_GUARD
    - XXH_ASSERT
    - XXH_STATIC_ASSERT
    - _mm_set_epi64x
    - _mm_load_si128
    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_CLANG_NEON
    - vshrn_n_u64
    - XXH_vmlal_low_u32
    - XXH_vmlal_high_u32
    - vmlal_u32
    - vaddq_u64
    - vreinterpretq_u32_u64
    - XXH_COMPILER_GUARD
    - XXH_ASSERT
    - veorq_u64
    - vuzpq_u32
    - XXH_STATIC_ASSERT
    - vextq_u64
    - XXH3_scalarRound
    - XXH_vld1q_u64
    - vmovn_u64
    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:
    - vshrq_n_u64
    - vmlal_u32
    - vreinterpretq_u32_u64
    - vmulq_u32
    - XXH_ASSERT
    - veorq_u64
    - XXH3_scalarScrambleRound
    - vdup_n_u32
    - vreinterpretq_u64_u32
    - vmovn_u64
    - XXH_vld1q_u64
    - vdupq_n_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_rl
    - vec_permi
    - XXH_vec_loadu
    - XXH_vec_mulo
    - vec_xxpermdi
    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_mulo
    - XXH_vec_mule
    - XXH_ASSERT
    - XXH_vec_loadu
    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:
    - ACCRND
    - svptrue_pat_b64
    - svindex_u64
    - svptrue_b64
    - sveor_n_u64_z
    - svst1_u64
    - svcntd
    - svld1_u64
    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_mult32to64_add64
    - XXH_readLE64
    - XXH_ASSERT
    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_readLE64
    - XXH_xorshift64
    - XXH_ASSERT
    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_readLE64
    - XXH_COMPILER_GUARD
    - XXH_writeLE64
    - XXH_STATIC_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_initCustomSecret_scalar(void* XXH_RESTRICT customSecret,
      xxh_u64 seed64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_mul128_fold64
      Src: /src/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:
    - XXH3_mul128_fold64
    - XXH_readLE64
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: XXH_FORCE_INLINE XXH3_mix2Accs(const xxh_u64* XXH_RESTRICT acc, const
      xxh_u8* XXH_RESTRICT secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_mix2Accs
      Src: /src/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:
    - XXH_COMPILER_GUARD
    - XXH3_mix2Accs
    - 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_ALIGN
    - XXH3_mergeAccs
    - XXH_ASSERT
    - XXH3_hashLong_internal_loop
    - XXH_STATIC_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH64_hash_t\nXXH3_hashLong_64b_internal(const void*
      XXH_RESTRICT input, size_t len,\n                           const void* XXH_RESTRICT
      secret, size_t secretSize,\n                           XXH3_f_accumulate 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:
    - XXH64_hash_t::XXH3_hashLong_64b_internal
    - XXH_ALIGN
    - f_initSec
    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_129to240_64b
    - XXH3_len_0to16_64b
    - XXH_ASSERT
    - XXH3_len_17to128_64b
    - 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_malloc
    - XXH_ASSERT
    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:
    - memset
    - XXH_ASSERT
    linkageType: ''
    returnType: void
    signature: "void XXH3_reset_internal(XXH3_state_t* statePtr,\n                    XXH64_hash_t
      seed,\n                    const void* secret, size_t secretSize)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: XXH3_reset_internal
      Src: /src/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:
    - XXH_errorcode::XXH3_64bits_reset
    - XXH3_initCustomSecret
    - XXH3_reset_internal
    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:
    - XXH_ALIGN
    - XXH3_mergeAccs
    - XXH3_digest_long
    - XXH64_hash_t::XXH3_64bits_withSeed
    - 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_swap32
    - XXH_rotl32
    - XXH_ASSERT
    - XXH64_avalanche
    - XXH_readLE32
    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_mult64to128
    - XXH_readLE64
    - XXH_swap32
    - XXH3_avalanche
    - XXH_ASSERT
    - XXH_xorshift64
    - XXH_readLE32
    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_mult64to128
    - XXH_readLE64
    - XXH_swap64
    - XXH3_avalanche
    - XXH_ASSERT
    - XXH_mult32to64
    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:
    - XXH_readLE64
    - XXH_ASSERT
    - XXH3_len_4to8_128b
    - XXH3_len_1to3_128b
    - XXH3_len_9to16_128b
    - 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_ALIGN
    - XXH3_mergeAccs
    - XXH_ASSERT
    - XXH3_hashLong_internal_loop
    - XXH_STATIC_ASSERT
    linkageType: ''
    returnType: XXH_FORCE_INLINE
    signature: "XXH_FORCE_INLINE XXH128_hash_t\nXXH3_hashLong_128b_internal(const
      void* XXH_RESTRICT input, size_t len,\n                            const xxh_u8*
      XXH_RESTRICT secret, size_t secretSize,\n                            XXH3_f_accumulate
      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:
    - XXH128_hash_t::XXH3_hashLong_128b_internal
    - f_initSec
    - 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:
    - XXH3_len_17to128_128b
    - XXH_ASSERT
    - XXH3_len_0to16_128b
    - f_hl128
    - XXH3_len_129to240_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_128bits_internal
    - XXH128_hash_t::XXH3_hashLong_128b_withSecret
    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:
    - XXH_ALIGN
    - XXH3_mergeAccs
    - XXH3_digest_long
    - XXH_ASSERT
    - XXH128_hash_t::XXH3_128bits_withSeed
    - XXH128_hash_t::XXH3_128bits_withSecret
    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_swap64
    - XXH_memcpy
    - XXH_STATIC_ASSERT
    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:
    - XXH_ASSERT
    - XXH_MIN
    - XXH128
    - XXH3_combine16
    - XXH128_hashFromCanonical
    - XXH128_canonicalFromHash
    - memcpy
    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: 39
    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: 21
    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_clrtag
    - eb_gettag
    - eb_root_to_node
    - eb_walk_down
    - unlikely
    - eb_untag
    - check_bits
    - container_of
    - ebmb_next_dup
    - ebmb_entry
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - eb_prefetch
    - eb_memcmp
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - cmp_bits
    - container_of
    - equal_bits
    - key::key
    - eb_insert_dup
    - node::node
    - likely
    - eb_dotag
    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:
    - eb_gettag
    - eb_walk_down
    - unlikely
    - eb_untag
    - check_bits
    - container_of
    - ebmb_entry
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - check_bits
    - container_of
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - cmp_bits
    - container_of
    - key::key
    - equal_bits
    - eb_insert_dup
    - node::node
    - eb_dotag
    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: 2
    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: 0
    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: 0
    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: 0
    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: 66
    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: 319
    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: 319
    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: 175
    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: 95
    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: 80
    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: 112
    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: 27
    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: 11
    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: 4
    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: 12
    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: 5
    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: 61
    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: 49
    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: 32
    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:
    - ist2
    - __builtin_expect
    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:
    - ist2
    - __builtin_expect
    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:
    - ist2
    - __builtin_expect
    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:
    - ist2
    - __builtin_expect
    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:
    - ist2
    - __builtin_expect
    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:
    - ist2
    - __builtin_expect
    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: 10
    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: 9
    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: 16
    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: 33
    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: 23
    functionsReached:
    - isttest
    - istcpy
    - 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: 3
    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:
    - ebpt_entry
    - eb_last
    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:
    - eb_next_dup
    - ebpt_entry
    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:
    - eb32_lookup
    - eb64_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:
    - eb32_lookup_le
    - eb64_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:
    - eb64_lookup_ge
    - eb32_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:
    - eb64_insert
    - eb32_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:
    - __eb32_insert
    - __eb64_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: 1
    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: 2
    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: 6
    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:
    - eb_gettag
    - unlikely
    - strcmp
    - eb_untag
    - container_of
    - likely
    - string_equal_bits
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - cmp_bits
    - container_of
    - key::key
    - eb_insert_dup
    - node::node
    - eb_dotag
    - string_equal_bits
    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: 32
    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: 35
    functionsReached:
    - eb_first
    - eb32_entry
    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: 35
    functionsReached:
    - eb_next
    - eb32_entry
    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:
    - eb_prev
    - eb32_entry
    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:
    - eb_next_dup
    - eb32_entry
    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:
    - eb_prev_dup
    - eb32_entry
    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:
    - eb_prev_unique
    - eb32_entry
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - 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:
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - 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:
    - flsnz
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - key::key
    - eb_prefetch
    - eb_insert_dup
    - node::node
    - likely
    - eb_dotag
    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:
    - flsnz
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - key::key
    - eb_prefetch
    - eb_insert_dup
    - node::node
    - likely
    - eb_dotag
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - 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:
    - eb_gettag
    - unlikely
    - eb_untag
    - cmp_bits
    - container_of
    - equal_bits
    - key::key
    - eb_insert_dup
    - node::node
    - eb_dotag
    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:
    - eb64_entry
    - eb_last
    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:
    - eb_next
    - eb64_entry
    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:
    - eb_prev_dup
    - eb64_entry
    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:
    - eb_prev_unique
    - eb64_entry
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - 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:
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - 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:
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - key::key
    - eb_prefetch
    - fls64
    - eb_insert_dup
    - node::node
    - eb_dotag
    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:
    - eb_gettag
    - unlikely
    - eb_untag
    - container_of
    - key::key
    - eb_prefetch
    - fls64
    - eb_insert_dup
    - node::node
    - eb_dotag
    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: 4
    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: 2
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:56,1
    - Dst: strdup
      Src: /src/haproxy/addons/deviceatlas/da.c:59,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: 61
      start: 51
    functionDepth: 5
    functionLinenumber: 51
    functionLinenumberEnd: 61
    functionName: da_json_file
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - strdup
    - memprintf
    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:69,1
    - Dst: atol
      Src: /src/haproxy/addons/deviceatlas/da.c:73,1
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:75,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: 81
      start: 63
    functionDepth: 5
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: da_log_level
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    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:88,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: 93
      start: 83
    functionDepth: 5
    functionLinenumber: 83
    functionLinenumberEnd: 93
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:100,1
    - Dst: strdup
      Src: /src/haproxy/addons/deviceatlas/da.c:103,1
    - Dst: strlen
      Src: /src/haproxy/addons/deviceatlas/da.c:105,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: 107
      start: 95
    functionDepth: 5
    functionLinenumber: 95
    functionLinenumberEnd: 107
    functionName: da_properties_cookie
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - strdup
    - strlen
    - memprintf
    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:115,1
    - Dst: atol
      Src: /src/haproxy/addons/deviceatlas/da.c:119,1
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:121,1
    - Dst: fprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:124,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: 130
      start: 109
    functionDepth: 5
    functionLinenumber: 109
    functionLinenumberEnd: 130
    functionName: da_cache_size
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atol
    - fprintf
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - len
    - buf
    argTypes:
    - void*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 135
    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:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - 'off'
    argTypes:
    - void*
    - off_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 140
    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:147,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/deviceatlas/da.c:148,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: 150
      start: 142
    functionDepth: 9
    functionLinenumber: 142
    functionLinenumberEnd: 150
    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: 8
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/haproxy/addons/deviceatlas/da.c:167,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:169,1
    - Dst: da_init
      Src: /src/haproxy/addons/deviceatlas/da.c:175,1
    - Dst: da_seterrorfunc
      Src: /src/haproxy/addons/deviceatlas/da.c:176,1
    - Dst: da_atlas_compile
      Src: /src/haproxy/addons/deviceatlas/da.c:177,1
    - Dst: fclose
      Src: /src/haproxy/addons/deviceatlas/da.c:179,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:181,1
    - Dst: da_atlas_open
      Src: /src/haproxy/addons/deviceatlas/da.c:187,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:191,1
    - Dst: strdup
      Src: /src/haproxy/addons/deviceatlas/da.c:199,1
    - Dst: strlen
      Src: /src/haproxy/addons/deviceatlas/da.c:200,1
    - Dst: da_atlas_header_evidence_id
      Src: /src/haproxy/addons/deviceatlas/da.c:203,1
    - Dst: shm_open
      Src: /src/haproxy/addons/deviceatlas/da.c:205,1
    - Dst: mmap
      Src: /src/haproxy/addons/deviceatlas/da.c:206,1
    - Dst: close
      Src: /src/haproxy/addons/deviceatlas/da.c:208,1
    - Dst: fprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:212,1
    - Dst: fprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:217,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 157
    functionDepth: 9
    functionLinenumber: 157
    functionLinenumberEnd: 222
    functionName: init_deviceatlas
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - da_atlas_compile
    - strdup
    - fclose
    - da_init
    - close
    - mmap
    - fprintf
    - da_seterrorfunc
    - strlen
    - da_atlas_header_evidence_id
    - shm_open
    - ha_alert
    - fopen
    - da_atlas_open
    linkageType: ''
    returnType: int
    signature: int init_deviceatlas(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:227,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:231,1
    - Dst: da_atlas_close
      Src: /src/haproxy/addons/deviceatlas/da.c:232,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:233,1
    - Dst: munmap
      Src: /src/haproxy/addons/deviceatlas/da.c:237,1
    - Dst: close
      Src: /src/haproxy/addons/deviceatlas/da.c:238,1
    - Dst: shm_unlink
      Src: /src/haproxy/addons/deviceatlas/da.c:239,1
    - Dst: da_fini
      Src: /src/haproxy/addons/deviceatlas/da.c:242,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 243
    functionName: deinit_deviceatlas
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - da_atlas_close
    - close
    - munmap
    - free
    - da_fini
    - shm_unlink
    linkageType: ''
    returnType: void
    signature: void deinit_deviceatlas(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/addons/deviceatlas/da.c:260,1
    - Dst: strlcpy2
      Src: /src/haproxy/addons/deviceatlas/da.c:262,1
    - Dst: fopen
      Src: /src/haproxy/addons/deviceatlas/da.c:263,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:265,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/deviceatlas/da.c:268,1
    - Dst: da_atlas_compile
      Src: /src/haproxy/addons/deviceatlas/da.c:273,1
    - Dst: fclose
      Src: /src/haproxy/addons/deviceatlas/da.c:275,1
    - Dst: da_atlas_open
      Src: /src/haproxy/addons/deviceatlas/da.c:277,1
    - Dst: da_atlas_close
      Src: /src/haproxy/addons/deviceatlas/da.c:278,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:279,1
    - Dst: ha_notice
      Src: /src/haproxy/addons/deviceatlas/da.c:283,1
    - Dst: da_getdatacreationiso8601
      Src: /src/haproxy/addons/deviceatlas/da.c:284,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/deviceatlas/da.c:286,1
    - Dst: free
      Src: /src/haproxy/addons/deviceatlas/da.c:287,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/deviceatlas/da.c:291,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 245
    functionDepth: 9
    functionLinenumber: 245
    functionLinenumberEnd: 295
    functionName: da_haproxy_checkinst
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - da_atlas_compile
    - da_atlas_close
    - fclose
    - da_getdatacreationiso8601
    - strlcpy2
    - free
    - ha_notice
    - HA_SPIN_LOCK
    - ha_alert
    - HA_SPIN_UNLOCK
    - fopen
    - da_atlas_open
    linkageType: ''
    returnType: void
    signature: void da_haproxy_checkinst(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/addons/deviceatlas/da.c:306,1
    - Dst: chunk_reset
      Src: /src/haproxy/addons/deviceatlas/da.c:307,1
    - Dst: da_atlas_getpropid
      Src: /src/haproxy/addons/deviceatlas/da.c:314,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:317,1
    - Dst: da_atlas_getproptype
      Src: /src/haproxy/addons/deviceatlas/da.c:321,1
    - Dst: da_getpropboolean
      Src: /src/haproxy/addons/deviceatlas/da.c:326,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:328,1
    - Dst: da_getpropinteger
      Src: /src/haproxy/addons/deviceatlas/da.c:335,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:337,1
    - Dst: da_getpropstring
      Src: /src/haproxy/addons/deviceatlas/da.c:343,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:345,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/deviceatlas/da.c:353,1
    - Dst: da_close
      Src: /src/haproxy/addons/deviceatlas/da.c:356,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 3
    argNames:
    - args
    - smp
    - devinfo
    argTypes:
    - struct arg*
    - struct sample*
    - da_deviceinfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 368
    functionName: da_haproxy
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - da_atlas_getpropid
    - chunk_appendf
    - da_getpropstring
    - da_getpropboolean
    - da_getpropinteger
    - da_atlas_getproptype
    - da_close
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int da_haproxy(const struct arg *args, struct sample *smp, da_deviceinfo_t
      *devinfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: da_haproxy_checkinst
      Src: /src/haproxy/addons/deviceatlas/da.c:382,1
    - Dst: memcpy
      Src: /src/haproxy/addons/deviceatlas/da.c:385,1
    - Dst: da_search
      Src: /src/haproxy/addons/deviceatlas/da.c:390,1
    - Dst: da_haproxy
      Src: /src/haproxy/addons/deviceatlas/da.c:393,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 370
    functionDepth: 10
    functionLinenumber: 370
    functionLinenumberEnd: 394
    functionName: da_haproxy_conv
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - da_haproxy_checkinst
    - da_search
    - da_haproxy
    - memcpy
    linkageType: ''
    returnType: int
    signature: int da_haproxy_conv(const struct arg *args, struct sample *smp, void
      *private)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: da_haproxy_checkinst
      Src: /src/haproxy/addons/deviceatlas/da.c:413,1
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/deviceatlas/da.c:416,1
    - Dst: htx_get_first_blk
      Src: /src/haproxy/addons/deviceatlas/da.c:421,1
    - Dst: htx_get_next_blk
      Src: /src/haproxy/addons/deviceatlas/da.c:421,1
    - Dst: htx_get_blk_type
      Src: /src/haproxy/addons/deviceatlas/da.c:430,1
    - Dst: htx_get_blk_name
      Src: /src/haproxy/addons/deviceatlas/da.c:433,1
    - Dst: htx_get_blk_value
      Src: /src/haproxy/addons/deviceatlas/da.c:434,1
    - Dst: memcpy
      Src: /src/haproxy/addons/deviceatlas/da.c:446,1
    - Dst: memcpy
      Src: /src/haproxy/addons/deviceatlas/da.c:452,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/deviceatlas/da.c:456,1
    - Dst: da_atlas_accept_language_evidence_id
      Src: /src/haproxy/addons/deviceatlas/da.c:457,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/deviceatlas/da.c:458,1
    - Dst: http_extract_cookie_value
      Src: /src/haproxy/addons/deviceatlas/da.c:467,1
    - Dst: da_atlas_clientprop_evidence_id
      Src: /src/haproxy/addons/deviceatlas/da.c:474,1
    - Dst: da_atlas_header_evidence_id
      Src: /src/haproxy/addons/deviceatlas/da.c:476,1
    - Dst: memcpy
      Src: /src/haproxy/addons/deviceatlas/da.c:484,1
    - Dst: da_searchv
      Src: /src/haproxy/addons/deviceatlas/da.c:491,1
    - Dst: da_haproxy
      Src: /src/haproxy/addons/deviceatlas/da.c:494,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 4
    argNames:
    - args
    - smp
    - kw
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 398
    functionDepth: 10
    functionLinenumber: 398
    functionLinenumberEnd: 495
    functionName: da_haproxy_fetch
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - htx_get_blk_value
    - da_searchv
    - da_haproxy_checkinst
    - smp_prefetch_htx
    - strcasecmp
    - htx_get_blk_type
    - htx_get_blk_name
    - da_haproxy
    - htx_get_next_blk
    - da_atlas_clientprop_evidence_id
    - da_atlas_header_evidence_id
    - http_extract_cookie_value
    - htx_get_first_blk
    - da_atlas_accept_language_evidence_id
    - memcpy
    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:527,1
    - Dst: memprintf
      Src: /src/haproxy/addons/deviceatlas/da.c:529,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/addons/deviceatlas/da.c:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 522
    functionDepth: 5
    functionLinenumber: 522
    functionLinenumberEnd: 532
    functionName: da_haproxy_register_build_options
    functionSourceFile: /src/haproxy/addons/deviceatlas/da.c
    functionUses: 0
    functionsReached:
    - hap_register_build_opts
    - memprintf
    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: 1
    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:
    - free
    - malloc
    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: 2
    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_arg
    - da_searchv
    - va_end
    - va_start
    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: 2
    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_value
    - htx_get_first
    - htx_get_blk_type
    - htx_get_blk_name
    - FLT_OT_DBG
    - FLT_OT_RETURN
    - htx_get_next
    - FLT_OT_FUNC
    - htx_get_blk
    - htx_is_empty
    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: 2
    functionLinenumber: 90
    functionLinenumberEnd: 176
    functionName: flt_ot_http_headers_get
    functionSourceFile: /src/haproxy/addons/ot/src/http.c
    functionUses: 0
    functionsReached:
    - htx_get_blk_value
    - htx_get_blk_name
    - FLT_OT_FUNC
    - ot_text_map_show
    - strncasecmp
    - htx_get_blk_type
    - otc_text_map_add
    - htx_get_next
    - otc_text_map_destroy
    - htx_get_blk
    - FLT_OT_STR_ISVALID
    - htxbuf
    - htx_get_first
    - FLT_OT_ERR
    - FLT_OT_DBG
    - FLT_OT_DPTR_ARGS
    - otc_text_map_new
    - ist
    - FLT_OT_RETURN_PTR
    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_trash_alloc
    - htx_get_blk_value
    - htx_get_blk_name
    - FLT_OT_FUNC
    - flt_ot_trash_free
    - chunk_printf
    - ist2
    - strlen
    - http_remove_header
    - FLT_OT_STR_ISVALID
    - htxbuf
    - http_find_header
    - FLT_OT_ERR
    - FLT_OT_DBG
    - isteqi
    - FLT_OT_DPTR_ARGS
    - ist
    - htx_is_empty
    - http_add_header
    - FLT_OT_RETURN_INT
    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_FUNC
    - FLT_OT_RETURN_INT
    - 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_first
      Src: /src/haproxy/addons/ot/src/vars.c:49,1
    - Dst: cebu64_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:
    - cebu64_next
    - b_orig
    - b_data
    - container_of
    - cebu64_first
    - FLT_OT_DBG
    - vars_rdunlock
    - vars_rdlock
    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_FUNC
    - FLT_OT_RETURN
    - flt_ot_vars_scope_dump
    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_orig
    - __b_putblk
    - FLT_OT_MALLOC
    - b_data
    - FLT_OT_ERR
    - UINT64_C
    - b_room
    - chunk_init
    - FLT_OT_DBG_BUF
    - b_putchr
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FREE
    - FLT_OT_FUNC
    - 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_ERR
    - strlen
    - FLT_OT_DBG
    - isupper
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_STR_ISVALID
    - memcpy
    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_normalize_name
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:
    - b_orig
    - vars_get_by_name
    - abs
    - b_data
    - FLT_OT_ERR
    - FLT_OT_DBG
    - FLT_OT_DBG_BUF
    - flt_ot_var_name
    - FLT_OT_DPTR_ARGS
    - typeof
    - func
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - memcpy
    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:
    - strncmp
    - FLT_OT_DBG
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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_smp_init
    - b_orig
    - b_data
    - FLT_OT_ERR
    - FLT_OT_DBG
    - flt_ot_smp_add
    - flt_ot_var_name
    - FLT_OT_DPTR_ARGS
    - flt_ot_ctx_loop
    - FLT_OT_FREE
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - 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_DBG
    - FLT_OT_ERR_APPEND
    - flt_ot_var_name
    - FLT_OT_DPTR_ARGS
    - vars_check_arg
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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_smp_init
    - strcmp
    - FLT_OT_ERR
    - FLT_OT_DBG
    - flt_ot_var_name
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - 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_smp_init
    - vars_unset_by_name_ifexist
    - FLT_OT_ERR
    - FLT_OT_DBG
    - flt_ot_var_name
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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_smp_init
    - vars_unset_by_name_ifexist
    - FLT_OT_DBG
    - flt_ot_var_name
    - flt_ot_ctx_loop
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:
    - flt_ot_smp_init
    - b_orig
    - vars_get_by_name
    - otc_text_map_destroy
    - b_data
    - FLT_OT_ERR
    - otc_text_map_new
    - FLT_OT_TABLESIZE
    - FLT_OT_DBG
    - otc_text_map_add
    - flt_ot_var_name
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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_smp_init
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - flt_ot_ctx_loop
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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_DBG
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - 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:
    - _HA_ATOMIC_LOAD
    - FLT_OT_ARG_ISVALID
    - FLT_OT_ARGS_DUMP
    - _HA_ATOMIC_STORE
    - memprintf
    - cmn_cli_set_msg
    - flt_ot_strtoll
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:
    - FLT_OT_PROXIES_LIST_END
    - FLT_OT_ARGS_DUMP
    - _HA_ATOMIC_STORE
    - memprintf
    - cmn_cli_set_msg
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_CLI_MSG_CAT
    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:
    - _HA_ATOMIC_STORE
    - FLT_OT_CLI_MSG_CAT
    - memprintf
    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:
    - FLT_OT_PROXIES_LIST_END
    - FLT_OT_ARGS_DUMP
    - _HA_ATOMIC_STORE
    - memprintf
    - cmn_cli_set_msg
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_CLI_MSG_CAT
    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:
    - _HA_ATOMIC_STORE
    - FLT_OT_CLI_MSG_CAT
    - memprintf
    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:
    - _HA_ATOMIC_LOAD
    - FLT_OT_ARG_ISVALID
    - FLT_OT_PROXIES_LIST_END
    - strcasecmp
    - FLT_OT_CLI_LOGGING_STATE
    - FLT_OT_ARGS_DUMP
    - _HA_ATOMIC_STORE
    - memprintf
    - cmn_cli_set_msg
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_CLI_MSG_CAT
    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:
    - _HA_ATOMIC_STORE
    - FLT_OT_CLI_MSG_CAT
    - FLT_OT_CLI_LOGGING_STATE
    - memprintf
    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
    - _HA_ATOMIC_LOAD
    - FLT_OT_CLI_LOGGING_STATE
    - memprintf
    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:
    - FLT_OT_U32_FLOAT
    - flt_ot_strtod
    - _HA_ATOMIC_LOAD
    - FLT_OT_ARG_ISVALID
    - FLT_OT_PROXIES_LIST_END
    - FLT_OT_ARGS_DUMP
    - _HA_ATOMIC_STORE
    - memprintf
    - cmn_cli_set_msg
    - FLT_OT_FLOAT_U32
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_CLI_MSG_CAT
    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:
    - _HA_ATOMIC_STORE
    - FLT_OT_CLI_MSG_CAT
    - memprintf
    - 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
    - _HA_ATOMIC_LOAD
    - memprintf
    - 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
    - FLT_OT_STR_FLAG_YN
    - flt_ot_filters_dump
    - FLT_OT_PROXIES_LIST_END
    - FLT_OT_CLI_LOGGING_STATE
    - FLT_OT_ARGS_DUMP
    - memprintf
    - cmn_cli_set_msg
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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_STR_FLAG_YN
    - memprintf
    - FLT_OT_CLI_LOGGING_STATE
    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:
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - cli_register_kw
    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
    - FLT_OT_FUNC
    - FLT_OT_DBG_TEXT_MAP
    - 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
    - FLT_OT_RETURN
    - otc_statistics
    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
    - snprintf
    - FLT_OT_ERR
    - otc_tracer_load
    - FLT_OT_DBG
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - otc_ext_init
    - flt_ot_pools_info
    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:
    - FLT_OT_ERR
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - otc_tracer_start
    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_RETURN
    - FLT_OT_DPTR_ARGS
    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
    - FLT_OT_ERR
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - FLT_OT_IN_RANGE
    - struct otc_tracer*::start_span_with_options
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - memcpy
    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:
    - FLT_OT_VSET
    - FLT_OT_TABLESIZE
    - FLT_OT_RETURN_PTR
    - ot_span_init
    - va_arg
    - typeof
    - FLT_OT_DPTR_ARGS
    - va_start
    - FLT_OT_FUNC
    - va_end
    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_FUNC
    - FLT_OT_RETURN_INT
    - 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:
    - FLT_OT_IN_RANGE
    - va_arg
    - typeof
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - va_end
    - struct otc_span*::set_tag
    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_FUNC
    - FLT_OT_RETURN_INT
    - struct otc_span*::log_fields
    - MIN
    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:
    - FLT_OT_TABLESIZE
    - va_arg
    - typeof
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - struct otc_span*::log_fields
    - va_end
    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:
    - FLT_OT_STR_ELLIPSIS
    - vsnprintf
    - FLT_OT_DBG
    - ot_span_log_va
    - FLT_OT_IN_RANGE
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - va_end
    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_DBG
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - struct otc_span*::set_baggage_item
    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:
    - FLT_OT_DBG
    - struct otc_span*::set_baggage_item
    - va_arg
    - typeof
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - va_end
    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:
    - struct otc_span*::baggage_item
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - otc_text_map_add
    - va_arg
    - typeof
    - va_start
    - FLT_OT_FUNC
    - otc_text_map_new
    - va_end
    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_FREE_CLEAR
    - memset
    - FLT_OT_DBG_SPAN_CONTEXT
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_TEXT_CARRIER
    - struct otc_span*::span_context
    - FLT_OT_FUNC
    - struct otc_tracer*::inject_text_map
    - ot_text_map_show
    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:
    - struct otc_tracer*::inject_http_headers
    - memset
    - FLT_OT_DBG_SPAN_CONTEXT
    - FLT_OT_ERR
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_TEXT_CARRIER
    - FLT_OT_DPTR_ARGS
    - struct otc_span*::span_context
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    - ot_text_map_show
    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_SPAN_CONTEXT
    - flt_ot_str_ctrl
    - flt_ot_str_hex
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - FLT_OT_DBG_CUSTOM_CARRIER
    - struct otc_tracer*::inject_binary
    - struct otc_span*::span_context
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    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:
    - memset
    - FLT_OT_DBG_SPAN_CONTEXT
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_TEXT_CARRIER
    - FLT_OT_FUNC
    - struct otc_tracer*::extract_text_map
    - FLT_OT_FREE_CLEAR
    - memcpy
    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:
    - struct otc_tracer*::extract_http_headers
    - memset
    - FLT_OT_DBG_SPAN_CONTEXT
    - FLT_OT_ERR
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_TEXT_CARRIER
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    - memcpy
    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:
    - FLT_OT_DEREF
    - memset
    - FLT_OT_DBG_SPAN_CONTEXT
    - struct otc_tracer*::extract_binary
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_CUSTOM_CARRIER
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    - memcpy
    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:
    - memset
    - FLT_OT_TABLESIZE
    - FLT_OT_DDEREF
    - FLT_OT_DBG
    - FLT_OT_RETURN
    - typeof
    - va_arg
    - FLT_OT_DPTR_ARGS
    - va_start
    - finish_with_options
    - FLT_OT_FUNC
    - memcpy
    - va_end
    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_PARSE_ERR
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_STRDUP
    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_ARG_ISVALID
    - FLT_OT_PARSE_ERR
    - flt_ot_parse_strdup
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:
    - isalnum
    - invalid_char
    - invalid_prefix_char
    - invalid_domainchar
    - isdigit
    - FLT_OT_RETURN_EX
    - FLT_OT_FUNC
    - FLT_OT_STR_ISVALID
    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:
    - strcmp
    - FLT_OT_PARSE_ERR
    - FLT_OT_ARGS_DUMP
    - flt_ot_parse_invalid_char
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - 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_conf_sample_expr_free
    - flt_ot_conf_sample_expr_init
    - sample_parse_expr
    - FLT_OT_DBG
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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_init
    - FLT_OT_ARG_ISVALID
    - flt_ot_parse_cfg_sample_expr
    - FLT_OT_PARSE_ERR
    - FLT_OT_DBG
    - flt_ot_conf_sample_free
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    linkageType: ''
    returnType: int
    signature: int flt_ot_parse_cfg_sample(const char *file, int linenum, char **args,
      struct list *head, char **err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:365,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:365,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:367,1
    - Dst: flt_ot_conf_str_init
      Src: /src/haproxy/addons/ot/src/parser.c:368,1
    - Dst: flt_ot_conf_str_free
      Src: /src/haproxy/addons/ot/src/parser.c:372,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - file
    - linenum
    - args
    - head
    - err
    argTypes:
    - char*
    - int
    - char**
    - struct list*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 375
    functionName: flt_ot_parse_cfg_str
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - flt_ot_conf_str_init
    - FLT_OT_ARG_ISVALID
    - flt_ot_conf_str_free
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:401,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:401,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:401,1
    - Dst: FLT_OT_ARG_ISVALID
      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: alertif_too_many_args
      Src: /src/haproxy/addons/ot/src/parser.c:405,1
    - Dst: access
      Src: /src/haproxy/addons/ot/src/parser.c:407,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:408,1
    - Dst: strerror
      Src: /src/haproxy/addons/ot/src/parser.c:408,1
    - Dst: flt_ot_parse_keyword
      Src: /src/haproxy/addons/ot/src/parser.c:410,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:412,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: 413
      start: 397
    functionDepth: 7
    functionLinenumber: 397
    functionLinenumberEnd: 413
    functionName: flt_ot_parse_cfg_file
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_ARG_ISVALID
    - access
    - FLT_OT_PARSE_ERR
    - flt_ot_parse_keyword
    - strerror
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - alertif_too_many_args
    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:434,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 441
    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:470,1
    - Dst: flt_ot_parse_check_scope
      Src: /src/haproxy/addons/ot/src/parser.c:472,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:473,1
    - Dst: flt_ot_parse_cfg_check
      Src: /src/haproxy/addons/ot/src/parser.c:475,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:475,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:477,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:479,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:484,1
    - Dst: flt_ot_conf_tracer_init
      Src: /src/haproxy/addons/ot/src/parser.c:486,1
    - Dst: parse_logger
      Src: /src/haproxy/addons/ot/src/parser.c:492,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:493,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/parser.c:494,1
    - Dst: flt_ot_parse_cfg_file
      Src: /src/haproxy/addons/ot/src/parser.c:502,1
    - Dst: flt_ot_parse_cfg_file
      Src: /src/haproxy/addons/ot/src/parser.c:505,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:508,1
    - Dst: flt_ot_conf_ph_init
      Src: /src/haproxy/addons/ot/src/parser.c:509,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:513,1
    - Dst: flt_ot_conf_ph_init
      Src: /src/haproxy/addons/ot/src/parser.c:514,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/ot/src/parser.c:518,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:519,1
    - Dst: parse_acl
      Src: /src/haproxy/addons/ot/src/parser.c:520,1
    - Dst: FLT_OT_FLOAT_U32
      Src: /src/haproxy/addons/ot/src/parser.c:524,1
    - Dst: flt_ot_strtod
      Src: /src/haproxy/addons/ot/src/parser.c:524,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:527,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:530,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:533,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:540,1
    - Dst: flt_ot_strtoll
      Src: /src/haproxy/addons/ot/src/parser.c:544,1
    - Dst: FLT_OT_PARSE_WARNING
      Src: /src/haproxy/addons/ot/src/parser.c:548,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:552,1
    - Dst: flt_ot_conf_tracer_free
      Src: /src/haproxy/addons/ot/src/parser.c:555,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:557,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: 558
      start: 461
    functionDepth: 8
    functionLinenumber: 461
    functionLinenumberEnd: 558
    functionName: flt_ot_parse_cfg_tracer
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - parse_logger
    - FLT_OT_PARSE_ERR
    - FLT_OT_FUNC
    - flt_ot_conf_ph_init
    - FLT_OT_FREE_CLEAR
    - parse_acl
    - flt_ot_strtod
    - strcmp
    - FLT_OT_FLOAT_U32
    - flt_ot_conf_tracer_init
    - flt_ot_parse_cfg_file
    - strcasecmp
    - flt_ot_parse_cfg_check
    - flt_ot_strtoll
    - FLT_OT_ARG_ISVALID
    - flt_ot_conf_tracer_free
    - FLT_OT_PARSE_IFERR_ALERT
    - FLT_OT_TABLESIZE
    - FLT_OT_PARSE_WARNING
    - FLT_OT_RETURN_INT
    - flt_ot_parse_check_scope
    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: 464
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 464
    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:580,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:583,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:588,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:591,1
    - Dst: otc_file_read
      Src: /src/haproxy/addons/ot/src/parser.c:593,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:595,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:599,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:603,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 604
    functionName: flt_ot_post_parse_cfg_tracer
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_POST_PARSE_ALERT
    - otc_file_read
    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:633,1
    - Dst: flt_ot_parse_check_scope
      Src: /src/haproxy/addons/ot/src/parser.c:635,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:636,1
    - Dst: flt_ot_parse_cfg_check
      Src: /src/haproxy/addons/ot/src/parser.c:638,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:638,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:640,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:642,1
    - Dst: flt_ot_conf_group_init
      Src: /src/haproxy/addons/ot/src/parser.c:646,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:651,1
    - Dst: flt_ot_conf_ph_init
      Src: /src/haproxy/addons/ot/src/parser.c:652,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:656,1
    - Dst: flt_ot_conf_group_free
      Src: /src/haproxy/addons/ot/src/parser.c:659,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:661,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: 662
      start: 624
    functionDepth: 4
    functionLinenumber: 624
    functionLinenumberEnd: 662
    functionName: flt_ot_parse_cfg_group
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - flt_ot_conf_group_free
    - flt_ot_conf_ph_init
    - FLT_OT_ARG_ISVALID
    - FLT_OT_PARSE_IFERR_ALERT
    - FLT_OT_TABLESIZE
    - flt_ot_parse_cfg_check
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - flt_ot_parse_check_scope
    - flt_ot_conf_group_init
    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: 627
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 627
    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:683,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:686,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/ot/src/parser.c:689,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:690,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:694,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 695
    functionName: flt_ot_post_parse_cfg_group
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - 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:719,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:719,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:721,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:724,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:733,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:737,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - args
    - cur_arg
    - err
    argTypes:
    - char**
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 740
    functionName: flt_ot_parse_cfg_scope_ctx
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - strcmp
    - FLT_OT_PARSE_ERR
    - FLT_OT_DBG
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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:767,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:767,1
    - Dst: va_start
      Src: /src/haproxy/addons/ot/src/parser.c:769,1
    - Dst: va_arg
      Src: /src/haproxy/addons/ot/src/parser.c:769,1
    - Dst: typeof
      Src: /src/haproxy/addons/ot/src/parser.c:769,1
    - Dst: build_acl_cond
      Src: /src/haproxy/addons/ot/src/parser.c:770,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:772,1
    - Dst: va_end
      Src: /src/haproxy/addons/ot/src/parser.c:774,1
    - Dst: FLT_OT_FREE_CLEAR
      Src: /src/haproxy/addons/ot/src/parser.c:777,1
    - Dst: FLT_OT_RETURN_PTR
      Src: /src/haproxy/addons/ot/src/parser.c:779,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: 780
      start: 761
    functionDepth: 6
    functionLinenumber: 761
    functionLinenumberEnd: 780
    functionName: flt_ot_parse_acl
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_RETURN_PTR
    - build_acl_cond
    - FLT_OT_DBG
    - va_arg
    - typeof
    - FLT_OT_DPTR_ARGS
    - va_start
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    - va_end
    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:809,1
    - Dst: flt_ot_parse_check_scope
      Src: /src/haproxy/addons/ot/src/parser.c:811,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:812,1
    - Dst: flt_ot_parse_cfg_check
      Src: /src/haproxy/addons/ot/src/parser.c:814,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:814,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:816,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:818,1
    - Dst: flt_ot_conf_scope_init
      Src: /src/haproxy/addons/ot/src/parser.c:823,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:833,1
    - Dst: flt_ot_conf_span_init
      Src: /src/haproxy/addons/ot/src/parser.c:839,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:848,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:849,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:850,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:852,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:856,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:856,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:857,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:858,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:860,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/parser.c:862,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:864,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/parser.c:868,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:870,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:874,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:882,1
    - Dst: flt_ot_parse_cfg_sample
      Src: /src/haproxy/addons/ot/src/parser.c:886,1
    - Dst: flt_ot_parse_cfg_sample
      Src: /src/haproxy/addons/ot/src/parser.c:889,1
    - Dst: flt_ot_parse_cfg_sample
      Src: /src/haproxy/addons/ot/src/parser.c:892,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:903,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:904,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:905,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:907,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:909,1
    - Dst: strlen
      Src: /src/haproxy/addons/ot/src/parser.c:912,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:921,1
    - Dst: flt_ot_parse_cfg_scope_ctx
      Src: /src/haproxy/addons/ot/src/parser.c:922,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:923,1
    - Dst: flt_ot_parse_cfg_scope_ctx
      Src: /src/haproxy/addons/ot/src/parser.c:924,1
    - Dst: flt_ot_conf_context_init
      Src: /src/haproxy/addons/ot/src/parser.c:937,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:940,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:942,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:945,1
    - Dst: flt_ot_parse_cfg_str
      Src: /src/haproxy/addons/ot/src/parser.c:952,1
    - Dst: strcasecmp
      Src: /src/haproxy/addons/ot/src/parser.c:955,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:956,1
    - Dst: parse_acl
      Src: /src/haproxy/addons/ot/src/parser.c:957,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:963,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:966,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:967,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:978,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:980,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:983,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:983,1
    - Dst: flt_ot_parse_acl
      Src: /src/haproxy/addons/ot/src/parser.c:991,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:996,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:1000,1
    - Dst: FLT_OT_PARSE_IFERR_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:1004,1
    - Dst: flt_ot_conf_scope_free
      Src: /src/haproxy/addons/ot/src/parser.c:1007,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1012,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: 1013
      start: 800
    functionDepth: 9
    functionLinenumber: 800
    functionLinenumberEnd: 1013
    functionName: flt_ot_parse_cfg_scope
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - flt_ot_parse_cfg_sample
    - FLT_OT_PARSE_ERR
    - FLT_OT_FUNC
    - parse_acl
    - strcmp
    - flt_ot_conf_span_init
    - strlen
    - flt_ot_parse_strdup
    - strcasecmp
    - flt_ot_parse_cfg_check
    - FLT_OT_DBG
    - flt_ot_parse_cfg_str
    - flt_ot_parse_acl
    - flt_ot_conf_scope_init
    - FLT_OT_ARG_ISVALID
    - flt_ot_conf_context_init
    - flt_ot_parse_cfg_scope_ctx
    - FLT_OT_PARSE_IFERR_ALERT
    - FLT_OT_TABLESIZE
    - flt_ot_conf_scope_free
    - FLT_OT_RETURN_INT
    - flt_ot_parse_check_scope
    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: 803
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 803
    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:1038,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1041,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/parser.c:1044,1
    - Dst: FLT_OT_POST_PARSE_ALERT
      Src: /src/haproxy/addons/ot/src/parser.c:1047,1
    - Dst: flt_ot_conf_scope_free
      Src: /src/haproxy/addons/ot/src/parser.c:1050,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1055,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1056
      start: 1033
    functionDepth: 1
    functionLinenumber: 1033
    functionLinenumberEnd: 1056
    functionName: flt_ot_post_parse_cfg_scope
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - list_for_each_entry
    - flt_ot_conf_scope_free
    - FLT_OT_POST_PARSE_ALERT
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:1081,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:1081,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/ot/src/parser.c:1086,1
    - Dst: cfg_backup_sections
      Src: /src/haproxy/addons/ot/src/parser.c:1087,1
    - Dst: cfg_register_section
      Src: /src/haproxy/addons/ot/src/parser.c:1090,1
    - Dst: cfg_register_section
      Src: /src/haproxy/addons/ot/src/parser.c:1092,1
    - Dst: cfg_register_section
      Src: /src/haproxy/addons/ot/src/parser.c:1094,1
    - Dst: access
      Src: /src/haproxy/addons/ot/src/parser.c:1096,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1097,1
    - Dst: strerror
      Src: /src/haproxy/addons/ot/src/parser.c:1097,1
    - Dst: load_cfg_in_mem
      Src: /src/haproxy/addons/ot/src/parser.c:1100,1
    - Dst: ha_free
      Src: /src/haproxy/addons/ot/src/parser.c:1102,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1103,1
    - Dst: parse_cfg
      Src: /src/haproxy/addons/ot/src/parser.c:1105,1
    - Dst: ha_free
      Src: /src/haproxy/addons/ot/src/parser.c:1106,1
    - Dst: cfg_unregister_sections
      Src: /src/haproxy/addons/ot/src/parser.c:1110,1
    - Dst: cfg_restore_sections
      Src: /src/haproxy/addons/ot/src/parser.c:1111,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1115,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: 1116
      start: 1075
    functionDepth: 7
    functionLinenumber: 1075
    functionLinenumberEnd: 1116
    functionName: flt_ot_parse_cfg
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - cfg_restore_sections
    - access
    - FLT_OT_RETURN_INT
    - FLT_OT_PARSE_ERR
    - ha_free
    - parse_cfg
    - load_cfg_in_mem
    - LIST_INIT
    - cfg_unregister_sections
    - strerror
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - cfg_backup_sections
    - cfg_register_section
    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:1146,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/parser.c:1153,1
    - Dst: FLT_OT_DPTR_ARGS
      Src: /src/haproxy/addons/ot/src/parser.c:1153,1
    - Dst: FLT_OT_RUN_ONCE
      Src: /src/haproxy/addons/ot/src/parser.c:1156,1
    - Dst: if
      Src: /src/haproxy/addons/ot/src/parser.c:1157,1
    - Dst: otc_dbg_mem_init
      Src: /src/haproxy/addons/ot/src/parser.c:1157,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/parser.c:1157,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1158,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1160,1
    - Dst: FLT_OT_ARGS_DUMP
      Src: /src/haproxy/addons/ot/src/parser.c:1165,1
    - Dst: flt_ot_conf_init
      Src: /src/haproxy/addons/ot/src/parser.c:1167,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1169,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1171,1
    - Dst: FLT_OT_ARG_ISVALID
      Src: /src/haproxy/addons/ot/src/parser.c:1174,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:1175,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: strcmp
      Src: /src/haproxy/addons/ot/src/parser.c:1181,1
    - Dst: flt_ot_parse_keyword
      Src: /src/haproxy/addons/ot/src/parser.c:1182,1
    - Dst: flt_ot_parse_cfg
      Src: /src/haproxy/addons/ot/src/parser.c:1184,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1188,1
    - Dst: ha_warning
      Src: /src/haproxy/addons/ot/src/parser.c:1194,1
    - Dst: flt_ot_parse_strdup
      Src: /src/haproxy/addons/ot/src/parser.c:1196,1
    - Dst: FLT_OT_PARSE_ERR
      Src: /src/haproxy/addons/ot/src/parser.c:1200,1
    - Dst: flt_ot_conf_free
      Src: /src/haproxy/addons/ot/src/parser.c:1203,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/parser.c:1211,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/parser.c:1214,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: 1215
      start: 1138
    functionDepth: 9
    functionLinenumber: 1138
    functionLinenumberEnd: 1215
    functionName: flt_ot_parse
    functionSourceFile: /src/haproxy/addons/ot/src/parser.c
    functionUses: 0
    functionsReached:
    - FLT_OT_PARSE_ERR
    - FLT_OT_ARGS_DUMP
    - FLT_OT_FUNC
    - if
    - flt_ot_conf_init
    - ha_warning
    - strcmp
    - flt_ot_parse_strdup
    - flt_ot_conf_free
    - FLT_OT_DBG
    - otc_dbg_mem_init
    - flt_ot_parse_cfg
    - FLT_OT_DPTR_ARGS
    - FLT_OT_ARG_ISVALID
    - FLT_OT_RUN_ONCE
    - FLT_OT_TABLESIZE
    - flt_ot_parse_keyword
    - FLT_OT_RETURN_INT
    - memcpy
    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:
    - FLT_OT_DBG_FMT
    - flt_ot_args_count
    - fprintf
    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_DBG
    - FLT_OT_FUNC
    - FLT_OT_RETURN
    - 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:
    - snprintf
    - FLT_OT_BUFFER_THR
    - LIST_ISEMPTY
    - strncpy
    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:
    - FLT_OT_ERR
    - FLT_OT_RETURN_EX
    - chunk_init
    - FLT_OT_CALLOC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - memcpy
    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_ERR
    - FLT_OT_IN_RANGE
    - FLT_OT_STR_ISVALID
    - strtod
    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:
    - FLT_OT_ERR
    - FLT_OT_IN_RANGE
    - FLT_OT_STR_ISVALID
    - strtoll
    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:
    - snprintf
    - inet_ntop
    - FLT_OT_ERR
    - strlen
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_STR_SIZE
    - memcpy
    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_MALLOC
    - FLT_OT_ERR
    - flt_ot_sample_to_str
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:
    - memset
    - list_for_each_entry
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_CONF_SAMPLE
    - FLT_OT_ERR
    - FLT_OT_DBG
    - flt_ot_sample_to_str
    - chunk_init
    - otc_text_map_add
    - FLT_OT_CALLOC
    - FLT_OT_DPTR_ARGS
    - sample_process
    - FLT_OT_FUNC
    - otc_text_map_new
    - flt_ot_sample_to_value
    - memcpy
    - FLT_OT_DBG_CONF_SAMPLE_EXPR
    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:
    - list_for_each_entry
    - strcmp
    - FLT_OT_ERR
    - FLT_OT_TABLESIZE
    - FLT_OT_DBG
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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_CONF
    - FLT_OT_DBG
    - FLT_OT_IN_RANGE
    - FLT_OT_RT_CTX
    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:
    - _HA_ATOMIC_ADD
    - FLT_OT_DBG
    - FLT_OT_ERR_FREE
    - FLT_OT_CONF
    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:
    - _HA_ATOMIC_ADD
    - FLT_OT_DBG
    - FLT_OT_ERR_FREE
    - FLT_OT_CONF
    linkageType: ''
    returnType: void
    signature: void flt_ot_return_void(const struct filter *f, char **err)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/filter.c:158,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:162,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:165,1
    - Dst: flt_ot_cli_init
      Src: /src/haproxy/addons/ot/src/filter.c:167,1
    - Dst: ot_init
      Src: /src/haproxy/addons/ot/src/filter.c:172,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:176,1
    - Dst: FLT_OT_ERR_FREE
      Src: /src/haproxy/addons/ot/src/filter.c:178,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:181,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 156
    functionDepth: 3
    functionLinenumber: 156
    functionLinenumberEnd: 182
    functionName: flt_ot_init
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DEREF
    - ot_init
    - FLT_OT_ERR_FREE
    - FLT_OT_ALERT
    - flt_ot_cli_init
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:203,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:208,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:211,1
    - Dst: ot_debug
      Src: /src/haproxy/addons/ot/src/filter.c:213,1
    - Dst: ot_close
      Src: /src/haproxy/addons/ot/src/filter.c:214,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:217,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/filter.c:218,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:220,1
    - Dst: flt_ot_conf_free
      Src: /src/haproxy/addons/ot/src/filter.c:223,1
    - Dst: FLT_OT_MEMINFO
      Src: /src/haproxy/addons/ot/src/filter.c:225,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 201
    functionDepth: 2
    functionLinenumber: 201
    functionLinenumberEnd: 228
    functionName: flt_ot_deinit
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_TABLESIZE
    - FLT_OT_MEMINFO
    - flt_ot_conf_free
    - FLT_OT_DBG
    - FLT_OT_RETURN
    - typeof
    - ot_debug
    - FLT_OT_FUNC
    - 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:250,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:256,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:259,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:269,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:275,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:279,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/filter.c:281,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:282,1
    - Dst: FLT_OT_DEREF
      Src: /src/haproxy/addons/ot/src/filter.c:289,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:290,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:300,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:301,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:304,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/filter.c:305,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:314,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:325,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:328,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/filter.c:329,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:338,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:348,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:351,1
    - Dst: strcmp
      Src: /src/haproxy/addons/ot/src/filter.c:352,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:361,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:368,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:369,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:371,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/ot/src/filter.c:379,1
    - Dst: FLT_OT_DBG_CONF_SPAN
      Src: /src/haproxy/addons/ot/src/filter.c:380,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:392,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:404,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/ot/src/filter.c:406,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:409,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:411,1
    - Dst: FLT_OT_DBG_LIST
      Src: /src/haproxy/addons/ot/src/filter.c:413,1
    - Dst: FLT_OT_DBG_CONF_GROUP
      Src: /src/haproxy/addons/ot/src/filter.c:414,1
    - Dst: FLT_OT_DBG_LIST
      Src: /src/haproxy/addons/ot/src/filter.c:415,1
    - Dst: FLT_OT_DBG_CONF_PH
      Src: /src/haproxy/addons/ot/src/filter.c:415,1
    - Dst: FLT_OT_DBG_LIST
      Src: /src/haproxy/addons/ot/src/filter.c:416,1
    - Dst: FLT_OT_DBG_CONF_SCOPE
      Src: /src/haproxy/addons/ot/src/filter.c:416,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:419,1
    - Dst: FLT_OT_DBG_LIST
      Src: /src/haproxy/addons/ot/src/filter.c:420,1
    - Dst: FLT_OT_DBG_CONF_PH
      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_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:424,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 93
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 425
    functionName: flt_ot_check
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DEREF
    - FLT_OT_DBG_CONF_SCOPE
    - list_for_each_entry
    - strcmp
    - FLT_OT_DBG_CONF_GROUP
    - FLT_OT_DBG_CONF_SPAN
    - FLT_OT_DBG
    - FLT_OT_DBG_CONF_PH
    - FLT_OT_ALERT
    - FLT_OT_DBG_LIST
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - LIST_ISEMPTY
    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:446,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:450,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:453,1
    - Dst: ot_start
      Src: /src/haproxy/addons/ot/src/filter.c:460,1
    - Dst: FLT_OT_ALERT
      Src: /src/haproxy/addons/ot/src/filter.c:464,1
    - Dst: FLT_OT_ERR_FREE
      Src: /src/haproxy/addons/ot/src/filter.c:466,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:472,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 444
    functionDepth: 2
    functionLinenumber: 444
    functionLinenumberEnd: 473
    functionName: flt_ot_init_per_thread
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_DEREF
    - ot_start
    - FLT_OT_ERR_FREE
    - FLT_OT_ALERT
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:495,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - p
    - fconf
    argTypes:
    - struct proxy*
    - struct flt_conf*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 498
    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:524,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:527,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:530,1
    - Dst: flt_ot_type
      Src: /src/haproxy/addons/ot/src/filter.c:530,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:532,1
    - Dst: FLT_OT_FLOAT_U32
      Src: /src/haproxy/addons/ot/src/filter.c:534,1
    - Dst: ha_random32
      Src: /src/haproxy/addons/ot/src/filter.c:535,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:538,1
    - Dst: flt_ot_type
      Src: /src/haproxy/addons/ot/src/filter.c:538,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:540,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_runtime_context_init
      Src: /src/haproxy/addons/ot/src/filter.c:546,1
    - Dst: FLT_OT_ERR_FREE
      Src: /src/haproxy/addons/ot/src/filter.c:547,1
    - Dst: FLT_OT_LOG
      Src: /src/haproxy/addons/ot/src/filter.c:549,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:551,1
    - Dst: FLT_OT_LOG
      Src: /src/haproxy/addons/ot/src/filter.c:561,1
    - Dst: flt_ot_vars_dump
      Src: /src/haproxy/addons/ot/src/filter.c:564,1
    - Dst: flt_ot_http_headers_dump
      Src: /src/haproxy/addons/ot/src/filter.c:566,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 522
    functionDepth: 3
    functionLinenumber: 522
    functionLinenumberEnd: 569
    functionName: flt_ot_attach
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - FLT_OT_LOG
    - flt_ot_type
    - flt_ot_http_headers_dump
    - FLT_OT_CONF
    - ha_random32
    - FLT_OT_ERR_FREE
    - flt_ot_runtime_context_init
    - FLT_OT_DBG
    - flt_ot_vars_dump
    - FLT_OT_FLOAT_U32
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:595,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:597,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:597,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:598,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:600,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:600,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 590
    functionDepth: 2
    functionLinenumber: 590
    functionLinenumberEnd: 601
    functionName: flt_ot_stream_start
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_is_disabled
    - flt_ot_return_int
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:626,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:628,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:628,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:629,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:631,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:633,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:633,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: 634
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 634
    functionName: flt_ot_stream_set_backend
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_is_disabled
    - FLT_OT_DBG
    - flt_ot_return_int
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:656,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:658,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:658,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:659,1
    - Dst: flt_ot_return_void
      Src: /src/haproxy/addons/ot/src/filter.c:661,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:663,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 652
    functionDepth: 2
    functionLinenumber: 652
    functionLinenumberEnd: 664
    functionName: flt_ot_stream_stop
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_is_disabled
    - flt_ot_return_void
    - FLT_OT_RETURN
    - FLT_OT_FUNC
    - FLT_OT_DBG_ARGS
    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:688,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:690,1
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/filter.c:690,1
    - Dst: flt_ot_type
      Src: /src/haproxy/addons/ot/src/filter.c:690,1
    - Dst: flt_ot_runtime_context_free
      Src: /src/haproxy/addons/ot/src/filter.c:692,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 686
    functionDepth: 1
    functionLinenumber: 686
    functionLinenumberEnd: 695
    functionName: flt_ot_detach
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_type
    - flt_ot_runtime_context_free
    - FLT_OT_CONF
    - FLT_OT_DBG
    - FLT_OT_RETURN
    - FLT_OT_FUNC
    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:716,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:718,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:718,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:719,1
    - Dst: flt_ot_return_void
      Src: /src/haproxy/addons/ot/src/filter.c:723,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - s
    - f
    argTypes:
    - struct stream*
    - struct filter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 712
    functionDepth: 2
    functionLinenumber: 712
    functionLinenumberEnd: 726
    functionName: flt_ot_check_timeouts
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_is_disabled
    - flt_ot_return_void
    - FLT_OT_RETURN
    - FLT_OT_FUNC
    - FLT_OT_DBG_ARGS
    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:750,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:752,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:752,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:753,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:755,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:755,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:755,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:755,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:762,1
    - Dst: channel_dont_read
      Src: /src/haproxy/addons/ot/src/filter.c:764,1
    - Dst: channel_dont_close
      Src: /src/haproxy/addons/ot/src/filter.c:765,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:772,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:777,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:777,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: 778
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 778
    functionName: flt_ot_channel_start_analyze
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - channel_dont_read
    - channel_dont_close
    - FLT_OT_DBG
    - flt_ot_chn_label
    - flt_ot_return_int
    - flt_ot_event_run
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:803,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/filter.c:805,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:812,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:812,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:813,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:815,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:815,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:815,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:815,1
    - Dst: flt_ot_analyzer
      Src: /src/haproxy/addons/ot/src/filter.c:815,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:817,1
    - Dst: channel_dont_read
      Src: /src/haproxy/addons/ot/src/filter.c:820,1
    - Dst: channel_dont_close
      Src: /src/haproxy/addons/ot/src/filter.c:821,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:824,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:824,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: 825
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 825
    functionName: flt_ot_channel_pre_analyze
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - flt_ot_analyzer
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - channel_dont_read
    - channel_dont_close
    - FLT_OT_TABLESIZE
    - FLT_OT_DBG
    - flt_ot_chn_label
    - flt_ot_return_int
    - flt_ot_event_run
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:852,1
    - Dst: FLT_OT_TABLESIZE
      Src: /src/haproxy/addons/ot/src/filter.c:854,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:861,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:861,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:862,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:864,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:864,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:864,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:864,1
    - Dst: flt_ot_analyzer
      Src: /src/haproxy/addons/ot/src/filter.c:864,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:866,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:868,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:868,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: 869
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 869
    functionName: flt_ot_channel_post_analyze
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - flt_ot_analyzer
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - FLT_OT_TABLESIZE
    - FLT_OT_DBG
    - flt_ot_chn_label
    - flt_ot_return_int
    - flt_ot_event_run
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:893,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:895,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:895,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:896,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:898,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:898,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:898,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:898,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:902,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:905,1
    - Dst: FLT_OT_CONF
      Src: /src/haproxy/addons/ot/src/filter.c:911,1
    - Dst: FLT_OT_RT_CTX
      Src: /src/haproxy/addons/ot/src/filter.c:911,1
    - Dst: flt_ot_event_run
      Src: /src/haproxy/addons/ot/src/filter.c:912,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:918,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:918,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: 919
      start: 888
    functionDepth: 2
    functionLinenumber: 888
    functionLinenumberEnd: 919
    functionName: flt_ot_channel_end_analyze
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - FLT_OT_CONF
    - FLT_OT_RT_CTX
    - FLT_OT_DBG
    - flt_ot_chn_label
    - flt_ot_return_int
    - flt_ot_event_run
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:943,1
    - Dst: http_get_stline
      Src: /src/haproxy/addons/ot/src/filter.c:944,1
    - Dst: FLT_OT_FUNC
      Src: /src/haproxy/addons/ot/src/filter.c:947,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:949,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:949,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:950,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: HTX_SL_P1_LEN
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: HTX_SL_P1_PTR
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: HTX_SL_P2_LEN
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: HTX_SL_P2_PTR
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: HTX_SL_P3_LEN
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: HTX_SL_P3_PTR
      Src: /src/haproxy/addons/ot/src/filter.c:952,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:954,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:954,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: 955
      start: 940
    functionDepth: 2
    functionLinenumber: 940
    functionLinenumberEnd: 955
    functionName: flt_ot_http_headers
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - htxbuf
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - HTX_SL_P2_LEN
    - HTX_SL_P1_PTR
    - HTX_SL_P3_LEN
    - FLT_OT_DBG
    - http_get_stline
    - flt_ot_chn_label
    - HTX_SL_P1_LEN
    - HTX_SL_P3_PTR
    - flt_ot_return_int
    - HTX_SL_P2_PTR
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:980,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:982,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:982,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:983,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:985,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:985,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:985,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:985,1
    - Dst: task_wakeup
      Src: /src/haproxy/addons/ot/src/filter.c:988,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:990,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:990,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: 991
      start: 975
    functionDepth: 2
    functionLinenumber: 975
    functionLinenumberEnd: 991
    functionName: flt_ot_http_payload
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - task_wakeup
    - FLT_OT_DBG
    - flt_ot_chn_label
    - flt_ot_return_int
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:1015,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:1017,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:1017,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:1018,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:1020,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:1020,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:1020,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:1020,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:1022,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:1022,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: 1023
      start: 1010
    functionDepth: 2
    functionLinenumber: 1010
    functionLinenumberEnd: 1023
    functionName: flt_ot_http_end
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - FLT_OT_DBG
    - flt_ot_chn_label
    - flt_ot_return_int
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:1045,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:1047,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:1047,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:1048,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:1050,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:1050,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:1050,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:1050,1
    - Dst: flt_ot_return_void
      Src: /src/haproxy/addons/ot/src/filter.c:1052,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:1054,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: 1055
      start: 1041
    functionDepth: 2
    functionLinenumber: 1041
    functionLinenumberEnd: 1055
    functionName: flt_ot_http_reset
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - flt_ot_return_void
    - FLT_OT_DBG
    - flt_ot_chn_label
    - FLT_OT_RETURN
    - FLT_OT_FUNC
    - FLT_OT_DBG_ARGS
    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:1078,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:1080,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:1080,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:1081,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:1083,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:1083,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:1083,1
    - Dst: flt_ot_return_void
      Src: /src/haproxy/addons/ot/src/filter.c:1085,1
    - Dst: FLT_OT_RETURN
      Src: /src/haproxy/addons/ot/src/filter.c:1087,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: 1088
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1088
    functionName: flt_ot_http_reply
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - flt_ot_return_void
    - FLT_OT_DBG
    - FLT_OT_RETURN
    - FLT_OT_FUNC
    - FLT_OT_DBG_ARGS
    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:1113,1
    - Dst: flt_ot_is_disabled
      Src: /src/haproxy/addons/ot/src/filter.c:1115,1
    - Dst: FLT_OT_DBG_ARGS
      Src: /src/haproxy/addons/ot/src/filter.c:1115,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:1116,1
    - Dst: FLT_OT_DBG
      Src: /src/haproxy/addons/ot/src/filter.c:1118,1
    - Dst: flt_ot_chn_label
      Src: /src/haproxy/addons/ot/src/filter.c:1118,1
    - Dst: flt_ot_pr_mode
      Src: /src/haproxy/addons/ot/src/filter.c:1118,1
    - Dst: flt_ot_stream_pos
      Src: /src/haproxy/addons/ot/src/filter.c:1118,1
    - Dst: task_wakeup
      Src: /src/haproxy/addons/ot/src/filter.c:1125,1
    - Dst: FLT_OT_RETURN_INT
      Src: /src/haproxy/addons/ot/src/filter.c:1127,1
    - Dst: flt_ot_return_int
      Src: /src/haproxy/addons/ot/src/filter.c:1127,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: 1128
      start: 1108
    functionDepth: 2
    functionLinenumber: 1108
    functionLinenumberEnd: 1128
    functionName: flt_ot_tcp_payload
    functionSourceFile: /src/haproxy/addons/ot/src/filter.c
    functionUses: 0
    functionsReached:
    - flt_ot_stream_pos
    - flt_ot_is_disabled
    - flt_ot_pr_mode
    - task_wakeup
    - FLT_OT_DBG
    - flt_ot_chn_label
    - flt_ot_return_int
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_DBG_ARGS
    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:
    - list_for_each_entry
    - strcmp
    - FLT_OT_ERR
    - FLT_OT_RETURN_PTR
    - strlen
    - LIST_APPEND
    - FLT_OT_CALLOC
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    - FLT_OT_STRDUP
    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_RETURN_PTR
    - FLT_OT_DBG_CONF_PH
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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_LIST_DEL
    - FLT_OT_DBG_CONF_PH
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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_RETURN_PTR
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - flt_ot_conf_hdr_init
    - FLT_OT_DBG_CONF_SAMPLE_EXPR
    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_LIST_DEL
    - FLT_OT_RETURN
    - release_sample_expr
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    - FLT_OT_DBG_CONF_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_args_to_str
    - FLT_OT_DBG_CONF_SAMPLE
    - FLT_OT_RETURN_PTR
    - LIST_INIT
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - flt_ot_conf_hdr_init
    - FLT_OT_FREE_CLEAR
    - flt_ot_args_count
    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_LIST_DESTROY
    - FLT_OT_LIST_DEL
    - FLT_OT_DBG_CONF_SAMPLE
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    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_DBG_CONF_STR
    - FLT_OT_RETURN_PTR
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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: 1
    functionsReached:
    - FLT_OT_LIST_DEL
    - FLT_OT_DBG_CONF_STR
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    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_DBG_CONF_CONTEXT
    - FLT_OT_RETURN_PTR
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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_LIST_DEL
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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_DBG_CONF_SPAN
    - FLT_OT_RETURN_PTR
    - LIST_INIT
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - flt_ot_conf_hdr_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_LIST_DESTROY
    - FLT_OT_LIST_DEL
    - FLT_OT_DBG_CONF_SPAN
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - 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_DBG_CONF_SCOPE
    - FLT_OT_RETURN_PTR
    - LIST_INIT
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - flt_ot_conf_hdr_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:
    - FLT_OT_DBG_CONF_SCOPE
    - FLT_OT_LIST_DESTROY
    - FLT_OT_LIST_DEL
    - prune_acl
    - list_for_each_entry_safe
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - free_acl_cond
    - FLT_OT_FUNC
    - 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_DBG_CONF_GROUP
    - FLT_OT_RETURN_PTR
    - LIST_INIT
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - flt_ot_conf_hdr_init
    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_LIST_DESTROY
    - FLT_OT_LIST_DEL
    - FLT_OT_DBG_CONF_GROUP
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    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: 2
    functionLinenumber: 622
    functionLinenumberEnd: 641
    functionName: flt_ot_conf_tracer_init
    functionSourceFile: /src/haproxy/addons/ot/src/conf.c
    functionUses: 1
    functionsReached:
    - init_new_proxy
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG_CONF_TRACER
    - LIST_INIT
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FLOAT_U32
    - FLT_OT_FUNC
    - flt_ot_conf_hdr_init
    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:
    - FLT_OT_FREE_CLEAR
    - FLT_OT_LIST_DESTROY
    - FLT_OT_LIST_DEL
    - LIST_DELETE
    - prune_acl
    - list_for_each_entry_safe
    - FLT_OT_DBG_CONF_TRACER
    - FLT_OT_DBG
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - flt_ot_list_debug
    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_DBG_CONF
    - FLT_OT_RETURN_PTR
    - LIST_INIT
    - FLT_OT_CALLOC
    - FLT_OT_FUNC
    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_LIST_DESTROY
    - FLT_OT_DBG_CONF
    - flt_ot_conf_tracer_free
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_FREE_CLEAR
    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:
    - FLT_OT_DEREF
    - ot_span_tag
    - ot_span_set_baggage
    - flt_ot_var_register
    - struct otc_span_context*::destroy
    - FLT_OT_CONF
    - ot_inject_http_headers
    - otc_text_map_destroy
    - ot_span_init
    - FLT_OT_DPTR_ARGS
    - flt_ot_http_header_set
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - flt_ot_var_set
    - ot_span_log
    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_pr_mode
    - flt_ot_http_headers_get
    - acl_exec_cond
    - flt_ot_scope_free_unused
    - flt_ot_scope_finish_mark
    - FLT_OT_FUNC
    - flt_ot_scope_run_span
    - FLT_OT_DBG_CONF_SPAN
    - otc_text_map_destroy
    - FLT_OT_RT_CTX
    - acl_pass
    - flt_ot_stream_pos
    - FLT_OT_DBG_CONF_CONTEXT
    - memset
    - _HA_ATOMIC_ADD
    - FLT_OT_DBG
    - FLT_OT_DPTR_ARGS
    - flt_ot_vars_get
    - flt_ot_scope_data_free
    - flt_ot_scope_context_init
    - FLT_OT_DBG_CONF_SCOPE
    - list_for_each_entry
    - FLT_OT_CONF
    - flt_ot_scope_finish_marked
    - flt_ot_chn_label
    - flt_ot_scope_span_init
    - FLT_OT_RETURN_INT
    - clock_gettime
    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_stream_pos
    - htxbuf
    - list_for_each_entry
    - flt_ot_pr_mode
    - FLT_OT_CONF
    - flt_ot_http_headers_dump
    - clock_gettime
    - flt_ot_scope_run
    - _HA_ATOMIC_ADD
    - FLT_OT_DBG
    - flt_ot_chn_label
    - flt_ot_vars_dump
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    - FLT_OT_RT_CTX
    - 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:
    - FLT_OT_DEREF
    - memset
    - FLT_OT_MALLOC
    - FLT_OT_ERR
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - pool_alloc
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    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:
    - FLT_OT_DEREF
    - MIN
    - FLT_OT_STRNDUP
    - FLT_OT_ERR
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - pool_alloc
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - memcpy
    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_DEREF
    - pool_free
    - FLT_OT_DBG
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    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:
    - FLT_OT_FREE_CLEAR
    - memset
    - FLT_OT_MALLOC
    - FLT_OT_ERR
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - chunk_init
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - alloc_trash_chunk
    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_DBG
    - FLT_OT_RETURN
    - FLT_OT_FREE
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    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:
    - flt_ot_var_register
    - FLT_OT_CONF
    - flt_ot_var_set
    - flt_ot_pool_alloc
    - FLT_OT_RETURN_PTR
    - ha_generate_uuid_v4
    - FLT_OT_DBG_RUNTIME_CONTEXT
    - LIST_INIT
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - b_make
    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
    - ot_span_finish
    - flt_ot_scope_context_free
    - FLT_OT_DBG_RUNTIME_CONTEXT
    - FLT_OT_RETURN
    - flt_ot_pool_free
    - FLT_OT_FUNC
    - flt_ot_scope_span_free
    - LIST_ISEMPTY
    - clock_gettime
    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:
    - list_for_each_entry
    - LIST_INSERT
    - memcmp
    - FLT_OT_ERR
    - flt_ot_pool_alloc
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    - FLT_OT_DBG_SCOPE_SPAN
    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_LIST_DEL
    - FLT_OT_DBG
    - FLT_OT_RETURN
    - FLT_OT_DPTR_ARGS
    - flt_ot_pool_free
    - FLT_OT_FUNC
    - FLT_OT_DBG_SCOPE_SPAN
    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:
    - list_for_each_entry
    - LIST_INSERT
    - FLT_OT_DBG_SCOPE_CONTEXT
    - flt_ot_scope_context_free
    - memcmp
    - flt_ot_pool_alloc
    - ot_extract_http_headers
    - FLT_OT_RETURN_PTR
    - FLT_OT_DBG
    - FLT_OT_DPTR_ARGS
    - FLT_OT_FUNC
    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_LIST_DEL
    - FLT_OT_DBG_SCOPE_CONTEXT
    - FLT_OT_RETURN
    - FLT_OT_DPTR_ARGS
    - flt_ot_pool_free
    - FLT_OT_FUNC
    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:
    - FLT_OT_DBG_SCOPE_DATA
    - FLT_OT_FREE_VOID
    - memset
    - FLT_OT_RETURN
    - FLT_OT_FUNC
    - otc_text_map_destroy
    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:
    - FLT_OT_STR_CMP
    - list_for_each_entry
    - memcmp
    - FLT_OT_DBG
    - FLT_OT_FUNC
    - FLT_OT_RETURN_INT
    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:
    - struct flt_ot_scope_context*::context::destroy
    - list_for_each_entry
    - FLT_OT_DBG_SCOPE_CONTEXT
    - ot_span_finish
    - FLT_OT_RETURN
    - FLT_OT_FUNC
    - 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_scope_context_free
    - FLT_OT_DBG_RUNTIME_CONTEXT
    - FLT_OT_RETURN
    - FLT_OT_FUNC
    - flt_ot_scope_span_free
    - LIST_ISEMPTY
    - flt_ot_http_headers_remove
    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: 135
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 135
    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: 146
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 146
    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:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - struct promex_module*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    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: 265
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 265
    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:277,1
    - Dst: chunk_strcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:278,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/promex/service-prometheus.c:279,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/promex/service-prometheus.c:280,1
    - Dst: chunk_appendf
      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_strcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:284,1
    - Dst: chunk_strcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:285,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: 290
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 290
    functionName: promex_ts_val_to_str
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - chunk_appendf
    - chunk_strcat
    - field_format
    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:303,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:306,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:309,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:309,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:310,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:311,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:311,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:312,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:315,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:315,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:316,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:317,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:317,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:318,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:319,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:319,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: 326
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 326
    functionName: promex_dump_ts_header
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - istcat
    - ist
    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: 11
    BranchProfiles: []
    Callsites:
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:346,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:347,1
    - Dst: promex_dump_ts_header
      Src: /src/haproxy/addons/promex/service-prometheus.c:350,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:353,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:356,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:359,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:359,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:362,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: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:367,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:368,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:368,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:369,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:370,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:370,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:374,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:374,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:379,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:379,1
    - Dst: promex_ts_val_to_str
      Src: /src/haproxy/addons/promex/service-prometheus.c:383,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 40
    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: 394
      start: 333
    functionDepth: 3
    functionLinenumber: 333
    functionLinenumberEnd: 394
    functionName: promex_dump_ts
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - istcat
    - promex_ts_val_to_str
    - isttest
    - ist
    - promex_dump_ts_header
    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:404,1
    - Dst: XXH32_reset
      Src: /src/haproxy/addons/promex/service-prometheus.c:405,1
    - Dst: XXH32_update
      Src: /src/haproxy/addons/promex/service-prometheus.c:406,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:406,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:406,1
    - Dst: XXH32_update
      Src: /src/haproxy/addons/promex/service-prometheus.c:407,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:407,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:407,1
    - Dst: XXH32_digest
      Src: /src/haproxy/addons/promex/service-prometheus.c:408,1
    - Dst: eb32_lookup
      Src: /src/haproxy/addons/promex/service-prometheus.c:410,1
    - Dst: container_of
      Src: /src/haproxy/addons/promex/service-prometheus.c:412,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:412,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: 421
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 421
    functionName: promex_filter_metric
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - istlen
    - eb32_lookup
    - container_of
    - istptr
    - XXH32_digest
    - typeof
    - eb_is_empty
    - XXH32_update
    - XXH32_reset
    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:427,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:430,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:431,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:431,1
    - Dst: stats_fill_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:434,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:445,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:446,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:448,1
    - Dst: promex_global_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:452,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:456,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:457,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:459,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:465,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:469,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:470,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:472,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:480,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:481,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:485,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:495,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 425
    functionDepth: 6
    functionLinenumber: 425
    functionLinenumberEnd: 502
    functionName: promex_dump_global_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - htx_add_data_atonce
    - promex_dump_ts
    - htx_get_max_blksz
    - promex_filter_metric
    - mkf_u32
    - ist2
    - promex_global_gettype
    - IST
    - stats_fill_info
    - applet_htx_output_room
    - ist
    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:508,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:513,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:514,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:514,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:527,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:528,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:529,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:530,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:532,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:543,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:544,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:544,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:548,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:549,1
    - Dst: stats_fill_fe_line
      Src: /src/haproxy/addons/promex/service-prometheus.c:557,1
    - Dst: promex_st_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:561,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:567,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:569,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:571,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:600,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:608,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:623,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:623,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:627,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/addons/promex/service-prometheus.c:630,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:634,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:634,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:635,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:635,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:637,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:648,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:649,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:649,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:652,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:653,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:653,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:657,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:658,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/addons/promex/service-prometheus.c:666,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/addons/promex/service-prometheus.c:667,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:673,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:692,1
    CyclomaticComplexity: 54
    EdgeCount: 54
    ICount: 148
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 506
    functionDepth: 6
    functionLinenumber: 506
    functionLinenumberEnd: 703
    functionName: promex_dump_front_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - htx_add_data_atonce
    - stats_fill_fe_line
    - stats_px_get_cap
    - mkf_u32
    - EXTRA_COUNTERS_GET
    - promex_dump_ts
    - ist2
    - strlen
    - struct stats_module*::fill_stats
    - LIST_NEXT
    - applet_htx_output_room
    - htx_get_max_blksz
    - promex_filter_metric
    - typeof
    - IST
    - ist
    - promex_st_gettype
    - list_for_each_entry_from
    - 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:709,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:715,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:716,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:716,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:729,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:730,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:731,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:732,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:734,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:744,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:745,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:745,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:750,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:751,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:760,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:762,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:768,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:769,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:769,1
    - Dst: stats_fill_li_line
      Src: /src/haproxy/addons/promex/service-prometheus.c:771,1
    - Dst: promex_st_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:776,1
    - Dst: get_li_status
      Src: /src/haproxy/addons/promex/service-prometheus.c:780,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:782,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:783,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:784,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:785,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:796,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:814,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:814,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:818,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/addons/promex/service-prometheus.c:821,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:825,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:825,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:826,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:826,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:828,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:839,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:840,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:840,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:844,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:845,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:854,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:856,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:860,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:861,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:861,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:863,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:864,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:864,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/addons/promex/service-prometheus.c:866,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/addons/promex/service-prometheus.c:867,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:873,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:895,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 139
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 707
    functionDepth: 6
    functionLinenumber: 707
    functionLinenumberEnd: 906
    functionName: promex_dump_listener_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - htx_add_data_atonce
    - stats_px_get_cap
    - mkf_u32
    - EXTRA_COUNTERS_GET
    - stats_fill_li_line
    - promex_dump_ts
    - ist2
    - strlen
    - struct stats_module*::fill_stats
    - LIST_NEXT
    - applet_htx_output_room
    - htx_get_max_blksz
    - promex_filter_metric
    - typeof
    - IST
    - get_li_status
    - ist
    - promex_st_gettype
    - list_for_each_entry_from
    - isttest
    linkageType: ''
    returnType: int
    signature: int promex_dump_listener_metrics(struct appctx *appctx, struct htx
      *htx)
  - BBCount: 57
    BranchProfiles: []
    Callsites:
    - Dst: IST
      Src: /src/haproxy/addons/promex/service-prometheus.c:912,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:918,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:919,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:919,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:935,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:936,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:937,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:938,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:940,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:954,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:955,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:955,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:959,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:960,1
    - Dst: stats_fill_be_line
      Src: /src/haproxy/addons/promex/service-prometheus.c:969,1
    - Dst: promex_st_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:973,1
    - Dst: promex_srv_status
      Src: /src/haproxy/addons/promex/service-prometheus.c:982,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:987,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:988,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:990,1
    - Dst: get_check_status_result
      Src: /src/haproxy/addons/promex/service-prometheus.c:1009,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1011,1
    - Dst: get_check_status_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:1012,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1013,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1014,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1015,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1025,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1027,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1028,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1036,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1037,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1040,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1041,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1044,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1045,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1048,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1049,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1053,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1057,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1061,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1065,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1087,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1095,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:1110,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1110,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:1114,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/addons/promex/service-prometheus.c:1117,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1121,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1121,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1122,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1122,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:1124,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: EXTRA_COUNTERS_GET
      Src: /src/haproxy/addons/promex/service-prometheus.c:1153,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/addons/promex/service-prometheus.c:1154,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1160,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:1179,1
    CyclomaticComplexity: 80
    EdgeCount: 80
    ICount: 226
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1189
      start: 910
    functionDepth: 6
    functionLinenumber: 910
    functionLinenumberEnd: 1189
    functionName: promex_dump_back_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - swrate_avg
    - htx_add_data_atonce
    - promex_srv_status
    - stats_px_get_cap
    - mkf_u32
    - EXTRA_COUNTERS_GET
    - get_check_status_info
    - get_check_status_result
    - promex_dump_ts
    - ist2
    - strlen
    - struct stats_module*::fill_stats
    - LIST_NEXT
    - applet_htx_output_room
    - htx_get_max_blksz
    - promex_filter_metric
    - typeof
    - IST
    - stats_fill_be_line
    - ist
    - promex_st_gettype
    - list_for_each_entry_from
    - mkf_flt
    - isttest
    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:1195,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1201,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:1202,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:1202,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:1217,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1218,1
    - Dst: isttest
      Src: /src/haproxy/addons/promex/service-prometheus.c:1219,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1220,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:1222,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1233,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1234,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1234,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1238,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1239,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1251,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1252,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1252,1
    - Dst: stats_fill_sv_line
      Src: /src/haproxy/addons/promex/service-prometheus.c:1254,1
    - Dst: promex_st_gettype
      Src: /src/haproxy/addons/promex/service-prometheus.c:1261,1
    - Dst: promex_srv_status
      Src: /src/haproxy/addons/promex/service-prometheus.c:1265,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1267,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1268,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1270,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1278,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1279,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1282,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1283,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1286,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1287,1
    - Dst: swrate_avg
      Src: /src/haproxy/addons/promex/service-prometheus.c:1290,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1291,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1295,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1299,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1303,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1307,1
    - Dst: get_check_status_result
      Src: /src/haproxy/addons/promex/service-prometheus.c:1314,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1316,1
    - Dst: get_check_status_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:1317,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1318,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1319,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1320,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1330,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1336,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1357,1
    - Dst: get_check_status_result
      Src: /src/haproxy/addons/promex/service-prometheus.c:1366,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1368,1
    - Dst: get_check_status_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:1369,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1370,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1371,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1372,1
    - Dst: mkf_u32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1382,1
    - Dst: mkf_flt
      Src: /src/haproxy/addons/promex/service-prometheus.c:1388,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1395,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:1414,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1414,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:1418,1
    - Dst: stats_px_get_cap
      Src: /src/haproxy/addons/promex/service-prometheus.c:1421,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1425,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1425,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1426,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1426,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:1428,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1439,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1440,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1440,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1444,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1445,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:1461,1
    - Dst: ist2
      Src: /src/haproxy/addons/promex/service-prometheus.c:1462,1
    - Dst: strlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1462,1
    - Dst: EXTRA_COUNTERS_GET
      Src: /src/haproxy/addons/promex/service-prometheus.c:1468,1
    - Dst: struct stats_module*::fill_stats
      Src: /src/haproxy/addons/promex/service-prometheus.c:1469,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1475,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:1499,1
    - Dst: srv_drop
      Src: /src/haproxy/addons/promex/service-prometheus.c:1504,1
    - Dst: srv_take
      Src: /src/haproxy/addons/promex/service-prometheus.c:1506,1
    CyclomaticComplexity: 101
    EdgeCount: 101
    ICount: 266
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1193
    functionDepth: 6
    functionLinenumber: 1193
    functionLinenumberEnd: 1516
    functionName: promex_dump_srv_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - swrate_avg
    - htx_add_data_atonce
    - promex_srv_status
    - stats_px_get_cap
    - mkf_u32
    - EXTRA_COUNTERS_GET
    - get_check_status_info
    - get_check_status_result
    - promex_dump_ts
    - ist2
    - strlen
    - stats_fill_sv_line
    - struct stats_module*::fill_stats
    - LIST_NEXT
    - srv_drop
    - applet_htx_output_room
    - srv_take
    - htx_get_max_blksz
    - promex_filter_metric
    - typeof
    - IST
    - ist
    - promex_st_gettype
    - list_for_each_entry_from
    - mkf_flt
    - isttest
    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:1527,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1527,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:1528,1
    - Dst: istcat
      Src: /src/haproxy/addons/promex/service-prometheus.c:1529,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1529,1
    - Dst: struct promex_module*::start_metrics_dump
      Src: /src/haproxy/addons/promex/service-prometheus.c:1532,1
    - Dst: struct promex_module*::metric_info
      Src: /src/haproxy/addons/promex/service-prometheus.c:1542,1
    - Dst: promex_filter_metric
      Src: /src/haproxy/addons/promex/service-prometheus.c:1548,1
    - Dst: struct promex_module*::start_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1552,1
    - Dst: struct promex_module*::fill_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1558,1
    - Dst: promex_dump_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1564,1
    - Dst: struct promex_module*::next_ts
      Src: /src/haproxy/addons/promex/service-prometheus.c:1569,1
    - Dst: struct promex_module*::stop_metrics_dump
      Src: /src/haproxy/addons/promex/service-prometheus.c:1577,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: 1588
      start: 1520
    functionDepth: 4
    functionLinenumber: 1520
    functionLinenumberEnd: 1588
    functionName: promex_dump_module_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - struct promex_module*::next_ts
    - promex_dump_ts
    - struct promex_module*::start_ts
    - promex_filter_metric
    - struct promex_module*::fill_ts
    - struct promex_module*::metric_info
    - istcat
    - struct promex_module*::stop_metrics_dump
    - struct promex_module*::start_metrics_dump
    - ist
    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:1596,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:1597,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:1597,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:1601,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1601,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:1605,1
    - Dst: promex_dump_module_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1606,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:1619,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1592
    functionDepth: 6
    functionLinenumber: 1592
    functionLinenumberEnd: 1627
    functionName: promex_dump_ref_modules_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - htx_add_data_atonce
    - list_for_each_entry_from
    - htx_get_max_blksz
    - ist2
    - LIST_NEXT
    - typeof
    - promex_dump_module_metrics
    - applet_htx_output_room
    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:1635,1
    - Dst: htx_get_max_blksz
      Src: /src/haproxy/addons/promex/service-prometheus.c:1636,1
    - Dst: applet_htx_output_room
      Src: /src/haproxy/addons/promex/service-prometheus.c:1636,1
    - Dst: LIST_NEXT
      Src: /src/haproxy/addons/promex/service-prometheus.c:1640,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1640,1
    - Dst: list_for_each_entry_from
      Src: /src/haproxy/addons/promex/service-prometheus.c:1644,1
    - Dst: promex_dump_module_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1645,1
    - Dst: htx_add_data_atonce
      Src: /src/haproxy/addons/promex/service-prometheus.c:1658,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1666
      start: 1631
    functionDepth: 6
    functionLinenumber: 1631
    functionLinenumberEnd: 1666
    functionName: promex_dump_all_modules_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - htx_add_data_atonce
    - list_for_each_entry_from
    - htx_get_max_blksz
    - ist2
    - LIST_NEXT
    - typeof
    - promex_dump_module_metrics
    - applet_htx_output_room
    linkageType: ''
    returnType: int
    signature: int promex_dump_all_modules_metrics(struct appctx *appctx, struct htx
      *htx)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: promex_dump_global_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1689,1
    - Dst: promex_dump_front_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1706,1
    - Dst: promex_dump_listener_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1723,1
    - Dst: promex_dump_back_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1740,1
    - Dst: promex_dump_srv_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1757,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/promex/service-prometheus.c:1773,1
    - Dst: promex_dump_all_modules_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1774,1
    - Dst: promex_dump_ref_modules_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:1776,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:1798,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 126
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1807
      start: 1674
    functionDepth: 7
    functionLinenumber: 1674
    functionLinenumberEnd: 1807
    functionName: promex_dump_metrics
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - promex_dump_back_metrics
    - promex_dump_ref_modules_metrics
    - promex_dump_all_modules_metrics
    - promex_dump_listener_metrics
    - promex_dump_global_metrics
    - promex_dump_front_metrics
    - promex_dump_srv_metrics
    - LIST_ISEMPTY
    - applet_have_more_data
    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:1825,1
    - Dst: DISGUISE
      Src: /src/haproxy/addons/promex/service-prometheus.c:1825,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/addons/promex/service-prometheus.c:1825,1
    - Dst: http_get_stline
      Src: /src/haproxy/addons/promex/service-prometheus.c:1826,1
    - Dst: http_find_param_list
      Src: /src/haproxy/addons/promex/service-prometheus.c:1832,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/addons/promex/service-prometheus.c:1832,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/addons/promex/service-prometheus.c:1832,1
    - Dst: HTX_SL_REQ_UPTR
      Src: /src/haproxy/addons/promex/service-prometheus.c:1835,1
    - Dst: HTX_SL_REQ_ULEN
      Src: /src/haproxy/addons/promex/service-prometheus.c:1835,1
    - Dst: chunk_reset
      Src: /src/haproxy/addons/promex/service-prometheus.c:1839,1
    - Dst: memcpy
      Src: /src/haproxy/addons/promex/service-prometheus.c:1840,1
    - Dst: url_decode
      Src: /src/haproxy/addons/promex/service-prometheus.c:1862,1
    - Dst: url_decode
      Src: /src/haproxy/addons/promex/service-prometheus.c:1876,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1881,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1889,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1891,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1893,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1895,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1897,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/promex/service-prometheus.c:1903,1
    - Dst: strncmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1904,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:1904,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1904,1
    - Dst: pool_alloc
      Src: /src/haproxy/addons/promex/service-prometheus.c:1905,1
    - Dst: LIST_APPEND
      Src: /src/haproxy/addons/promex/service-prometheus.c:1910,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1918,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1924,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1924,1
    - Dst: istadv
      Src: /src/haproxy/addons/promex/service-prometheus.c:1924,1
    - Dst: istfind
      Src: /src/haproxy/addons/promex/service-prometheus.c:1924,1
    - Dst: iststop
      Src: /src/haproxy/addons/promex/service-prometheus.c:1927,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1931,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:1934,1
    - Dst: istnext
      Src: /src/haproxy/addons/promex/service-prometheus.c:1935,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1936,1
    - Dst: XXH32
      Src: /src/haproxy/addons/promex/service-prometheus.c:1944,1
    - Dst: istptr
      Src: /src/haproxy/addons/promex/service-prometheus.c:1944,1
    - Dst: istlen
      Src: /src/haproxy/addons/promex/service-prometheus.c:1944,1
    - Dst: eb32_lookup
      Src: /src/haproxy/addons/promex/service-prometheus.c:1945,1
    - Dst: container_of
      Src: /src/haproxy/addons/promex/service-prometheus.c:1947,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:1947,1
    - Dst: pool_alloc
      Src: /src/haproxy/addons/promex/service-prometheus.c:1952,1
    - Dst: eb32_insert
      Src: /src/haproxy/addons/promex/service-prometheus.c:1957,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1960,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1963,1
    - Dst: strcmp
      Src: /src/haproxy/addons/promex/service-prometheus.c:1965,1
    - Dst: DISGUISE
      Src: /src/haproxy/addons/promex/service-prometheus.c:1982,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/addons/promex/service-prometheus.c:1982,1
    - Dst: b_reset
      Src: /src/haproxy/addons/promex/service-prometheus.c:1983,1
    - Dst: b_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:1984,1
    - Dst: memcpy
      Src: /src/haproxy/addons/promex/service-prometheus.c:1985,1
    - Dst: b_head
      Src: /src/haproxy/addons/promex/service-prometheus.c:1985,1
    - Dst: b_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:1985,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/addons/promex/service-prometheus.c:1986,1
    - Dst: applet_set_eos
      Src: /src/haproxy/addons/promex/service-prometheus.c:1987,1
    CyclomaticComplexity: 63
    EdgeCount: 63
    ICount: 148
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1811
    functionDepth: 3
    functionLinenumber: 1811
    functionLinenumberEnd: 1989
    functionName: promex_parse_uri
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - url_decode
    - applet_set_eoi
    - istadv
    - HTX_SL_REQ_ULEN
    - http_get_stline
    - pool_alloc
    - HTX_SL_REQ_UPTR
    - b_head
    - istfind
    - applet_get_inbuf
    - istlen
    - strcmp
    - b_data
    - container_of
    - DISGUISE
    - iststop
    - htxbuf
    - applet_get_outbuf
    - eb32_lookup
    - strncmp
    - LIST_APPEND
    - typeof
    - eb32_insert
    - applet_set_eos
    - XXH32
    - ist
    - b_reset
    - list_for_each_entry
    - istnext
    - istptr
    - http_find_param_list
    - memcpy
    - chunk_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:1999,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1999,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1999,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:1999,1
    - Dst: htx_add_header
      Src: /src/haproxy/addons/promex/service-prometheus.c:2003,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2003,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2003,1
    - Dst: htx_add_header
      Src: /src/haproxy/addons/promex/service-prometheus.c:2004,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2004,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2004,1
    - Dst: htx_add_header
      Src: /src/haproxy/addons/promex/service-prometheus.c:2005,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2005,1
    - Dst: ist
      Src: /src/haproxy/addons/promex/service-prometheus.c:2005,1
    - Dst: htx_add_endof
      Src: /src/haproxy/addons/promex/service-prometheus.c:2006,1
    - Dst: htx_reset
      Src: /src/haproxy/addons/promex/service-prometheus.c:2011,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2012,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 2
    argNames:
    - appctx
    - htx
    argTypes:
    - struct appctx*
    - struct htx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2014
      start: 1993
    functionDepth: 6
    functionLinenumber: 1993
    functionLinenumberEnd: 2014
    functionName: promex_send_headers
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - htx_add_header
    - htx_add_stline
    - htx_reset
    - htx_add_endof
    - applet_have_more_data
    - ist
    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:2024,1
    - Dst: memset
      Src: /src/haproxy/addons/promex/service-prometheus.c:2026,1
    - Dst: LIST_INIT
      Src: /src/haproxy/addons/promex/service-prometheus.c:2027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2020
    functionDepth: 1
    functionLinenumber: 2020
    functionLinenumberEnd: 2031
    functionName: promex_appctx_init
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - LIST_INIT
    - memset
    - applet_reserve_svcctx
    linkageType: ''
    returnType: int
    signature: int promex_appctx_init(struct appctx *appctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: objt_server
      Src: /src/haproxy/addons/promex/service-prometheus.c:2044,1
    - Dst: srv_drop
      Src: /src/haproxy/addons/promex/service-prometheus.c:2045,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/promex/service-prometheus.c:2048,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/addons/promex/service-prometheus.c:2049,1
    - Dst: pool_free
      Src: /src/haproxy/addons/promex/service-prometheus.c:2050,1
    - Dst: eb32_first
      Src: /src/haproxy/addons/promex/service-prometheus.c:2053,1
    - Dst: eb32_next
      Src: /src/haproxy/addons/promex/service-prometheus.c:2055,1
    - Dst: eb32_delete
      Src: /src/haproxy/addons/promex/service-prometheus.c:2056,1
    - Dst: container_of
      Src: /src/haproxy/addons/promex/service-prometheus.c:2057,1
    - Dst: typeof
      Src: /src/haproxy/addons/promex/service-prometheus.c:2057,1
    - Dst: pool_free
      Src: /src/haproxy/addons/promex/service-prometheus.c:2058,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2036
    functionDepth: 6
    functionLinenumber: 2036
    functionLinenumberEnd: 2061
    functionName: promex_appctx_release
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - pool_free
    - list_for_each_entry_safe
    - container_of
    - objt_server
    - eb32_first
    - eb32_next
    - eb32_delete
    - srv_drop
    - typeof
    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:2071,1
    - Dst: applet_fl_test
      Src: /src/haproxy/addons/promex/service-prometheus.c:2071,1
    - Dst: applet_get_outbuf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2075,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2077,1
    - Dst: htx_from_buf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2080,1
    - Dst: applet_get_inbuf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2084,1
    - Dst: applet_htx_input_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2084,1
    - Dst: applet_need_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2085,1
    - Dst: promex_parse_uri
      Src: /src/haproxy/addons/promex/service-prometheus.c:2089,1
    - Dst: applet_set_error
      Src: /src/haproxy/addons/promex/service-prometheus.c:2092,1
    - Dst: promex_send_headers
      Src: /src/haproxy/addons/promex/service-prometheus.c:2100,1
    - Dst: promex_dump_metrics
      Src: /src/haproxy/addons/promex/service-prometheus.c:2106,1
    - Dst: applet_set_error
      Src: /src/haproxy/addons/promex/service-prometheus.c:2109,1
    - Dst: htx_is_empty
      Src: /src/haproxy/addons/promex/service-prometheus.c:2122,1
    - Dst: htx_add_endof
      Src: /src/haproxy/addons/promex/service-prometheus.c:2123,1
    - Dst: applet_have_more_data
      Src: /src/haproxy/addons/promex/service-prometheus.c:2124,1
    - Dst: applet_set_eoi
      Src: /src/haproxy/addons/promex/service-prometheus.c:2129,1
    - Dst: applet_set_eos
      Src: /src/haproxy/addons/promex/service-prometheus.c:2134,1
    - Dst: htx_to_buf
      Src: /src/haproxy/addons/promex/service-prometheus.c:2137,1
    - Dst: applet_reset_input
      Src: /src/haproxy/addons/promex/service-prometheus.c:2141,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 1
    argNames:
    - appctx
    argTypes:
    - struct appctx*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2143
      start: 2064
    functionDepth: 8
    functionLinenumber: 2064
    functionLinenumberEnd: 2143
    functionName: promex_appctx_handle_io
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - applet_fl_test
    - applet_get_inbuf
    - htx_is_empty
    - applet_get_outbuf
    - applet_need_more_data
    - applet_htx_input_data
    - unlikely
    - applet_set_eoi
    - promex_parse_uri
    - applet_set_eos
    - promex_dump_metrics
    - htx_from_buf
    - applet_reset_input
    - htx_add_endof
    - promex_send_headers
    - applet_have_more_data
    - htx_to_buf
    - applet_set_error
    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:2161,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: 2169
      start: 2156
    functionDepth: 5
    functionLinenumber: 2156
    functionLinenumberEnd: 2169
    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:2174,1
    - Dst: hap_register_build_opts
      Src: /src/haproxy/addons/promex/service-prometheus.c:2175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2176
      start: 2170
    functionDepth: 5
    functionLinenumber: 2170
    functionLinenumberEnd: 2176
    functionName: promex_register_build_options
    functionSourceFile: /src/haproxy/addons/promex/service-prometheus.c
    functionUses: 0
    functionsReached:
    - hap_register_build_opts
    - memprintf
    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:
    - vsnprintf
    - send_log
    - va_end
    - va_start
    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:
    - strdup
    - memprintf
    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:
    - strdup
    - memprintf
    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:
    - strlen
    - memprintf
    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:
    - LIST_APPEND
    - strdup
    - calloc
    - memprintf
    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:
    - LIST_APPEND
    - strdup
    - calloc
    - memprintf
    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_get_api_version
    - malloc
    - ebst_insert
    - ha_warning
    - strcmp
    - strlen
    - LIST_ISEMPTY
    - wurfl_create
    - wurfl_add_requested_capability
    - wurfl_load
    - ha_wurfl_get_property_callback
    - wurfl_get_error_message
    - ebst_lookup
    - wurfl_has_virtual_capability
    - strpbrk
    - list_for_each_entry
    - wurfl_set_cache_provider
    - wurfl_add_patch
    - ha_notice
    - wurfl_set_root
    - memcpy
    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
    - list_for_each_entry_safe
    - wurfl_destroy
    - ha_free
    - send_log
    - free
    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:
    - ha_wurfl_log
    - get_trash_chunk
    - list_for_each_entry
    - wurfl_lookup
    - wurfl_information_t*::data::func_callback
    - smp_prefetch_htx
    - chunk_appendf
    - wurfl_device_destroy
    - wurfl_device_get_virtual_capability
    - wurfl_get_error_message
    - wurfl_device_get_capability
    - chunk_reset
    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:
    - ha_wurfl_log
    - get_trash_chunk
    - wurfl_lookup
    - wurfl_device_destroy
    - smp_prefetch_htx
    - container_of
    - chunk_appendf
    - wurfl_data_t*::func_callback
    - wurfl_device_get_virtual_capability
    - wurfl_get_error_message
    - wurfl_device_get_capability
    - ebst_lookup
    - chunk_reset
    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:
    - ha_wurfl_log
    - strcmp
    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:
    - http_find_header
    - ha_wurfl_log
    - smp_prefetch_htx
    - ist2
    - strlen
    - strncpy
    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:
    - hap_register_build_opts
    - wurfl_get_api_version
    - memprintf
    - strcmp
    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:
    - strdup
    - free
    - memprintf
    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:
    - LIST_APPEND
    - strdup
    - calloc
    - memprintf
    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:
    - strlen
    - memprintf
    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:
    - memprintf
    - atoi
    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:
    - _51d_malloc
    - free
    - lru64_commit
    - HA_SPIN_LOCK
    - HA_SPIN_UNLOCK
    - memcpy
    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
    - smp_prefetch_htx
    - http_find_header
    - 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: 2
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/51degrees/51d.c:317,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/addons/51degrees/51d.c:318,1
    - Dst: ist2
      Src: /src/haproxy/addons/51degrees/51d.c:321,1
    - Dst: http_find_header
      Src: /src/haproxy/addons/51degrees/51d.c:325,1
    - Dst: fiftyoneDegreesGetDeviceOffset
      Src: /src/haproxy/addons/51degrees/51d.c:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - smp
    - offsets
    argTypes:
    - struct sample*
    - fiftyoneDegreesDeviceOffsets*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 304
    functionDepth: 3
    functionLinenumber: 304
    functionLinenumberEnd: 332
    functionName: _51d_set_device_offsets
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - smp_prefetch_htx
    - ist2
    - ALREADY_CHECKED
    - fiftyoneDegreesGetDeviceOffset
    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:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - args
    - ws
    argTypes:
    - struct arg*
    - fiftyoneDegreesWorkset*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 350
    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:358,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:361,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:363,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:366,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: 371
      start: 354
    functionDepth: 7
    functionLinenumber: 354
    functionLinenumberEnd: 371
    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:377,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:380,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:382,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:385,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: 390
      start: 373
    functionDepth: 7
    functionLinenumber: 373
    functionLinenumberEnd: 390
    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:397,1
    - Dst: atoi
      Src: /src/haproxy/addons/51degrees/51d.c:401,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:403,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: 409
      start: 392
    functionDepth: 5
    functionLinenumber: 392
    functionLinenumberEnd: 409
    functionName: _51d_drift
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:416,1
    - Dst: atoi
      Src: /src/haproxy/addons/51degrees/51d.c:420,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:422,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: 428
      start: 411
    functionDepth: 5
    functionLinenumber: 411
    functionLinenumberEnd: 428
    functionName: _51d_difference
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - memprintf
    - atoi
    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:434,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:437,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:439,1
    - Dst: memprintf
      Src: /src/haproxy/addons/51degrees/51d.c:442,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: 447
      start: 430
    functionDepth: 7
    functionLinenumber: 430
    functionLinenumberEnd: 447
    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:455,1
    - Dst: fiftyoneDegreesResultsHashCreate
      Src: /src/haproxy/addons/51degrees/51d.c:461,1
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:466,1
    - Dst: fiftyoneDegreesDataSetRelease
      Src: /src/haproxy/addons/51degrees/51d.c:476,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 478
    functionName: _51d_init_internal
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - fiftyoneDegreesDataSetRelease
    - fiftyoneDegreesDataSetGet
    - malloc
    - fiftyoneDegreesResultsHashCreate
    linkageType: ''
    returnType: int
    signature: int _51d_init_internal()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: smp_prefetch_htx
      Src: /src/haproxy/addons/51degrees/51d.c:495,1
    - Dst: ALREADY_CHECKED
      Src: /src/haproxy/addons/51degrees/51d.c:496,1
    - Dst: fiftyoneDegreesEvidenceCreate
      Src: /src/haproxy/addons/51degrees/51d.c:501,1
    - Dst: ist2
      Src: /src/haproxy/addons/51degrees/51d.c:507,1
    - Dst: http_find_header
      Src: /src/haproxy/addons/51degrees/51d.c:510,1
    - Dst: unlikely
      Src: /src/haproxy/addons/51degrees/51d.c:513,1
    - Dst: memcpy
      Src: /src/haproxy/addons/51degrees/51d.c:516,1
    - Dst: fiftyoneDegreesEvidenceAddString
      Src: /src/haproxy/addons/51degrees/51d.c:519,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - smp
    argTypes:
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 528
    functionName: _51d_get_evidence
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - http_find_header
    - unlikely
    - smp_prefetch_htx
    - fiftyoneDegreesEvidenceCreate
    - ist2
    - ALREADY_CHECKED
    - fiftyoneDegreesEvidenceAddString
    - memcpy
    linkageType: ''
    returnType: fiftyoneDegreesEvidenceKeyValuePairArray
    signature: fiftyoneDegreesEvidenceKeyValuePairArray * _51d_get_evidence(struct
      sample *smp)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_trash_chunk
      Src: /src/haproxy/addons/51degrees/51d.c:554,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:566,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/51degrees/51d.c:575,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:578,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/51degrees/51d.c:579,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:582,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/51degrees/51d.c:583,1
    - Dst: fiftyoneDegreesGetSignatureRank
      Src: /src/haproxy/addons/51degrees/51d.c:583,1
    - Dst: fiftyoneDegreesGetPropertyName
      Src: /src/haproxy/addons/51degrees/51d.c:588,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:589,1
    - Dst: fiftyoneDegreesSetValues
      Src: /src/haproxy/addons/51degrees/51d.c:591,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/51degrees/51d.c:592,1
    - Dst: fiftyoneDegreesGetValueName
      Src: /src/haproxy/addons/51degrees/51d.c:592,1
    - Dst: strcmp
      Src: /src/haproxy/addons/51degrees/51d.c:602,1
    - Dst: fiftyoneDegreesGetValueFromOffsets
      Src: /src/haproxy/addons/51degrees/51d.c:603,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/51degrees/51d.c:605,1
    - Dst: fiftyoneDegreesResultsHashGetValuesString
      Src: /src/haproxy/addons/51degrees/51d.c:613,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/51degrees/51d.c:621,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/51degrees/51d.c:624,1
    - Dst: chunk_appendf
      Src: /src/haproxy/addons/51degrees/51d.c:627,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 69
    argCount: 2
    argNames:
    - args
    - smp
    argTypes:
    - struct arg*
    - struct sample*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 638
    functionName: _51d_process_match
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - get_trash_chunk
    - strcmp
    - chunk_appendf
    - fiftyoneDegreesGetPropertyName
    - fiftyoneDegreesGetSignatureRank
    - fiftyoneDegreesGetValueFromOffsets
    - fiftyoneDegreesGetValueName
    - fiftyoneDegreesResultsHashGetValuesString
    - fiftyoneDegreesSetValues
    linkageType: ''
    returnType: void
    signature: void _51d_process_match(const struct arg *args, 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: 653
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 653
    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:672,1
    - Dst: fiftyoneDegreesWorksetPoolGet
      Src: /src/haproxy/addons/51degrees/51d.c:685,1
    - Dst: _51d_set_headers
      Src: /src/haproxy/addons/51degrees/51d.c:690,1
    - Dst: HA_SPIN_LOCK
      Src: /src/haproxy/addons/51degrees/51d.c:694,1
    - Dst: lru64_get
      Src: /src/haproxy/addons/51degrees/51d.c:696,1
    - Dst: _51d_req_hash
      Src: /src/haproxy/addons/51degrees/51d.c:696,1
    - Dst: fiftyoneDegreesWorksetPoolRelease
      Src: /src/haproxy/addons/51degrees/51d.c:700,1
    - Dst: _51d_retrieve_cache_entry
      Src: /src/haproxy/addons/51degrees/51d.c:701,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/51degrees/51d.c:702,1
    - Dst: _51d_set_smp
      Src: /src/haproxy/addons/51degrees/51d.c:704,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/51degrees/51d.c:707,1
    - Dst: fiftyoneDegreesMatchForHttpHeaders
      Src: /src/haproxy/addons/51degrees/51d.c:710,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:712,1
    - Dst: fiftyoneDegreesCreateDeviceOffsets
      Src: /src/haproxy/addons/51degrees/51d.c:718,1
    - Dst: _51d_init_device_offsets
      Src: /src/haproxy/addons/51degrees/51d.c:719,1
    - Dst: _51d_set_device_offsets
      Src: /src/haproxy/addons/51degrees/51d.c:727,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:728,1
    - Dst: fiftyoneDegreesFreeDeviceOffsets
      Src: /src/haproxy/addons/51degrees/51d.c:731,1
    - Dst: fiftyoneDegreesWorksetPoolRelease
      Src: /src/haproxy/addons/51degrees/51d.c:737,1
    - Dst: _51d_insert_cache_entry
      Src: /src/haproxy/addons/51degrees/51d.c:739,1
    - Dst: _51d_get_evidence
      Src: /src/haproxy/addons/51degrees/51d.c:743,1
    - Dst: fiftyoneDegreesResultsHashFromEvidence
      Src: /src/haproxy/addons/51degrees/51d.c:747,1
    - Dst: fiftyoneDegreesEvidenceFree
      Src: /src/haproxy/addons/51degrees/51d.c:749,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:754,1
    - Dst: _51d_set_smp
      Src: /src/haproxy/addons/51degrees/51d.c:757,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: 759
      start: 655
    functionDepth: 6
    functionLinenumber: 655
    functionLinenumberEnd: 759
    functionName: _51d_fetch
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - _51d_set_headers
    - fiftyoneDegreesResultsHashFromEvidence
    - HA_SPIN_LOCK
    - fiftyoneDegreesMatchForHttpHeaders
    - _51d_set_smp
    - _51d_process_match
    - _51d_retrieve_cache_entry
    - fiftyoneDegreesEvidenceFree
    - HA_SPIN_UNLOCK
    - lru64_get
    - _51d_set_device_offsets
    - _51d_get_evidence
    - fiftyoneDegreesWorksetPoolRelease
    - fiftyoneDegreesFreeDeviceOffsets
    - smp_prefetch_htx
    - fiftyoneDegreesCreateDeviceOffsets
    - _51d_init_device_offsets
    - _51d_insert_cache_entry
    - fiftyoneDegreesWorksetPoolGet
    - _51d_req_hash
    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:780,1
    - Dst: lru64_get
      Src: /src/haproxy/addons/51degrees/51d.c:781,1
    - Dst: XXH3
      Src: /src/haproxy/addons/51degrees/51d.c:781,1
    - Dst: _51d_retrieve_cache_entry
      Src: /src/haproxy/addons/51degrees/51d.c:784,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/51degrees/51d.c:785,1
    - Dst: HA_SPIN_UNLOCK
      Src: /src/haproxy/addons/51degrees/51d.c:788,1
    - Dst: fiftyoneDegreesWorksetPoolGet
      Src: /src/haproxy/addons/51degrees/51d.c:792,1
    - Dst: smp_dup
      Src: /src/haproxy/addons/51degrees/51d.c:798,1
    - Dst: fiftyoneDegreesMatch
      Src: /src/haproxy/addons/51degrees/51d.c:806,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:807,1
    - Dst: fiftyoneDegreesCreateDeviceOffsets
      Src: /src/haproxy/addons/51degrees/51d.c:811,1
    - Dst: _51d_init_device_offsets
      Src: /src/haproxy/addons/51degrees/51d.c:812,1
    - Dst: fiftyoneDegreesGetDeviceOffset
      Src: /src/haproxy/addons/51degrees/51d.c:817,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:820,1
    - Dst: fiftyoneDegreesWorksetPoolRelease
      Src: /src/haproxy/addons/51degrees/51d.c:824,1
    - Dst: _51d_insert_cache_entry
      Src: /src/haproxy/addons/51degrees/51d.c:826,1
    - Dst: fiftyoneDegreesFreeDeviceOffsets
      Src: /src/haproxy/addons/51degrees/51d.c:831,1
    - Dst: fiftyoneDegreesResultsHashFromUserAgent
      Src: /src/haproxy/addons/51degrees/51d.c:836,1
    - Dst: _51d_process_match
      Src: /src/haproxy/addons/51degrees/51d.c:841,1
    - Dst: _51d_set_smp
      Src: /src/haproxy/addons/51degrees/51d.c:844,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - args
    - smp
    - private
    argTypes:
    - struct arg*
    - struct sample*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 761
    functionDepth: 6
    functionLinenumber: 761
    functionLinenumberEnd: 846
    functionName: _51d_conv
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - _51d_process_match
    - _51d_retrieve_cache_entry
    - _51d_set_smp
    - fiftyoneDegreesFreeDeviceOffsets
    - fiftyoneDegreesWorksetPoolGet
    - smp_dup
    - fiftyoneDegreesCreateDeviceOffsets
    - fiftyoneDegreesWorksetPoolRelease
    - _51d_insert_cache_entry
    - _51d_init_device_offsets
    - HA_SPIN_LOCK
    - fiftyoneDegreesResultsHashFromUserAgent
    - HA_SPIN_UNLOCK
    - XXH3
    - fiftyoneDegreesMatch
    - lru64_get
    - fiftyoneDegreesGetDeviceOffset
    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:855,1
    - Dst: fiftyoneDegreesGetString
      Src: /src/haproxy/addons/51degrees/51d.c:857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 862
    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:870,1
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:872,1
    - Dst: _51d_init_device_offsets
      Src: /src/haproxy/addons/51degrees/51d.c:874,1
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:876,1
    - Dst: malloc
      Src: /src/haproxy/addons/51degrees/51d.c:877,1
    - Dst: fiftyoneDegreesGetHttpHeaderNameOffset
      Src: /src/haproxy/addons/51degrees/51d.c:879,1
    - Dst: fiftyoneDegreesGetHttpHeaderNamePointer
      Src: /src/haproxy/addons/51degrees/51d.c:880,1
    - Dst: strlen
      Src: /src/haproxy/addons/51degrees/51d.c:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 884
    functionName: _51d_init_http_headers
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - fiftyoneDegreesGetHttpHeaderCount
    - _51d_init_device_offsets
    - strlen
    - malloc
    - fiftyoneDegreesGetHttpHeaderNameOffset
    - fiftyoneDegreesGetHttpHeaderNamePointer
    linkageType: ''
    returnType: void
    signature: void _51d_init_http_headers()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:910,1
    - Dst: LIST_ISEMPTY
      Src: /src/haproxy/addons/51degrees/51d.c:914,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/51degrees/51d.c:916,1
    - Dst: calloc
      Src: /src/haproxy/addons/51degrees/51d.c:918,1
    - Dst: list_for_each_entry
      Src: /src/haproxy/addons/51degrees/51d.c:921,1
    - Dst: fiftyoneDegreesInitWithPropertyArray
      Src: /src/haproxy/addons/51degrees/51d.c:926,1
    - Dst: get_trash_chunk
      Src: /src/haproxy/addons/51degrees/51d.c:928,1
    - Dst: chunk_reset
      Src: /src/haproxy/addons/51degrees/51d.c:929,1
    - Dst: fiftyoneDegreesWorksetPoolCreate
      Src: /src/haproxy/addons/51degrees/51d.c:934,1
    - Dst: _51d_init_http_headers
      Src: /src/haproxy/addons/51degrees/51d.c:936,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:939,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:943,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:946,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:951,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:954,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:958,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:961,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:964,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:968,1
    - Dst: chunk_printf
      Src: /src/haproxy/addons/51degrees/51d.c:971,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:976,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:979,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:982,1
    - Dst: ha_random
      Src: /src/haproxy/addons/51degrees/51d.c:985,1
    - Dst: lru64_new
      Src: /src/haproxy/addons/51degrees/51d.c:987,1
    - Dst: fiftyoneDegreesFileReadToByteArray
      Src: /src/haproxy/addons/51degrees/51d.c:1020,1
    - Dst: fiftyoneDegreesHashInitManagerFromMemory
      Src: /src/haproxy/addons/51degrees/51d.c:1024,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1033,1
    - Dst: fiftyoneDegreesStatusGetMessage
      Src: /src/haproxy/addons/51degrees/51d.c:1038,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:1040,1
    - Dst: ha_alert
      Src: /src/haproxy/addons/51degrees/51d.c:1043,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 890
    functionDepth: 9
    functionLinenumber: 890
    functionLinenumberEnd: 1049
    functionName: init_51degrees
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - fiftyoneDegreesInitWithPropertyArray
    - _51d_init_http_headers
    - list_for_each_entry
    - get_trash_chunk
    - fiftyoneDegreesFileReadToByteArray
    - chunk_printf
    - fiftyoneDegreesStatusGetMessage
    - fiftyoneDegreesWorksetPoolCreate
    - free
    - lru64_new
    - fiftyoneDegreesHashInitManagerFromMemory
    - ha_alert
    - LIST_ISEMPTY
    - calloc
    - ha_random
    - chunk_reset
    linkageType: ''
    returnType: int
    signature: int init_51degrees(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1056,1
    - Dst: fiftyoneDegreesWorksetPoolFree
      Src: /src/haproxy/addons/51degrees/51d.c:1059,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1063,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1065,1
    - Dst: fiftyoneDegreesDataSetFree
      Src: /src/haproxy/addons/51degrees/51d.c:1067,1
    - Dst: ha_free
      Src: /src/haproxy/addons/51degrees/51d.c:1070,1
    - Dst: list_for_each_entry_safe
      Src: /src/haproxy/addons/51degrees/51d.c:1071,1
    - Dst: LIST_DELETE
      Src: /src/haproxy/addons/51degrees/51d.c:1072,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1073,1
    - Dst: lru64_destroy
      Src: /src/haproxy/addons/51degrees/51d.c:1077,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1051
    functionDepth: 4
    functionLinenumber: 1051
    functionLinenumberEnd: 1079
    functionName: deinit_51degrees
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - LIST_DELETE
    - fiftyoneDegreesDataSetFree
    - list_for_each_entry_safe
    - ha_free
    - free
    - fiftyoneDegreesWorksetPoolFree
    - lru64_destroy
    linkageType: ''
    returnType: void
    signature: void deinit_51degrees(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/haproxy/addons/51degrees/51d.c:1090,1
    - Dst: _51d_init_internal
      Src: /src/haproxy/addons/51degrees/51d.c:1096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1082
    functionDepth: 2
    functionLinenumber: 1082
    functionLinenumberEnd: 1100
    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:1107,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1113,1
    - Dst: free
      Src: /src/haproxy/addons/51degrees/51d.c:1114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1102
    functionDepth: 3
    functionLinenumber: 1102
    functionLinenumberEnd: 1120
    functionName: deinit_51degrees_per_thread
    functionSourceFile: /src/haproxy/addons/51degrees/51d.c
    functionUses: 0
    functionsReached:
    - free
    - fiftyoneDegreesResultsHashFree
    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: 78
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 78
    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: 1
    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: 1
    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: 1
    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: 1
    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: 1
    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: 1
    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:
    - inet_ntop
    - in6_bswap
    - 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:
    - is_set
    - printf
    - a_plus_b
    - a_eq_b
    - hmask
    - a_minus_b
    - get_ipv6_addr
    - a_and_b
    - a_le_b
    - a_gt_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: 10
    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:
    - in6_bswap
    - usage
    - convert_range
    - exit
    - fgets
    - fprintf
    - strlen
    - inet_pton
    - a_le_b
    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:
    - ntohl
    - inet_ntoa
    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: 11
    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:
    - usage
    - ntohl
    - convert_range
    - exit
    - fgets
    - fprintf
    - strlen
    - inet_pton
    - htonl
    - strtoul
    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:
    - isalnum
    - vfprintf
    - fprintf
    - format
    - va_start
    - va_end
    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:
    - tvb_memcpy
    - hexdump
    - fprintf
    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:
    - get_token_len
    - tvb_get_ptr
    - tvb_find_line_end
    - strlen
    - tvb_strncaseeql
    - proto_tree_add_item
    - tvb_captured_length
    - col_set_str
    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:
    - intdecode
    - tvb_memcpy
    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:
    - tvb_memcpy
    - ntohl
    - proto_tree_add_int_format_value
    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:
    - add_enc_field_to_happp_tree
    - wmem_alloc
    - find_conversation
    - proto_tree_add_item
    - wmem_file_scope
    - conversation_add_proto_data
    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:
    - add_int_field_to_happp_tree
    - conversation_get_proto_data
    - add_enc_field_to_happp_tree
    - tvb_get_ipv4
    - find_conversation
    - proto_tree_add_item
    - proto_tree_add_ipv4
    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_int_field_to_happp_tree
    - add_enc_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_update_msg
    - dissect_happp_stkt_define_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:
    - intdecode
    - tvb_memcpy
    - dissect_happp_stk_msg
    - proto_tree_add_uint64_format_value
    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:
    - control_class_index_from_byte
    - col_append_str
    - tvb_reported_length
    - dissect_happp_msg
    - proto_tree_add_uint_format_value
    - dissect_happp_handshake_pdu
    - col_info_append_class
    - proto_tree_add_item
    - init_class_def_tab
    - class_str_from_byte
    - proto_item_add_subtree
    - tvb_get_guint8
    - tvb_captured_length
    - col_set_str
    - msg_type_str_func
    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:
    - tcp_dissect_pdus
    - tvb_captured_length
    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_protocol
    - proto_register_subtree_array
    - proto_register_field_array
    - array_length
    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:
    - dissect_happp_tcp
    - find_or_create_conversation
    - strlen
    - tvb_get_guint8
    - tvb_captured_length
    - tvb_strneql
    - conversation_set_dissector
    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:
    - has_zero64
    - has_zero32
    - memchr
    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:
    - printf
    - fgets2
    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: 12
    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:
    - usage
    - exit
    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:
    - printf
    - usage
    - exit
    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
    - eb32i_insert
    - container_of
    - fprintf
    - quantify
    - calloc
    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
    - eb32i_insert
    - exit
    - container_of
    - fprintf
    - calloc
    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
    - likely
    - localtime
    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:
    - SKIP_CHAR
    - unlikely
    - exit
    - SEP
    - die
    - putchar
    - eb_last
    - fls_auto
    - field_stop
    - help
    - strcmp
    - ebmb_first
    - printf
    - container_of
    - eb32_next
    - eb_next
    - fprintf
    - filter_extract_capture
    - atol
    - field_start
    - truncated_line
    - eb_prev
    - str2ic
    - line_filter
    - eb64_insert
    - eb_delete
    - fgets2
    - eb_first
    - eb32_first
    - convert_date_to_timestamp
    - filter_count_ip
    - free
    - ebmb_next
    - strchr
    - posix_fadvise
    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:
    - truncated_line
    - unlikely
    - fwrite
    - putchar
    - puts
    - 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:
    - truncated_line
    - unlikely
    - convert_date
    - insert_value
    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:
    - truncated_line
    - str2ic
    - unlikely
    - insert_value
    - 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:
    - truncated_line
    - insert_value
    - unlikely
    - field_start
    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:
    - truncated_line
    - insert_value
    - unlikely
    - field_start
    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:
    - truncated_line
    - SKIP_CHAR
    - ebst_insert
    - str2ic
    - unlikely
    - exit
    - container_of
    - fprintf
    - SEP
    - ebst_lookup_len
    - field_start
    - field_stop
    - calloc
    - memcpy
    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:
    - truncated_line
    - SKIP_CHAR
    - strdup
    - str2ic
    - unlikely
    - exit
    - ebis_insert
    - container_of
    - SEP
    - fprintf
    - free
    - field_start
    - calloc
    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:
    - truncated_line
    - SKIP_CHAR
    - strdup
    - str2ic
    - unlikely
    - ebis_insert
    - container_of
    - SEP
    - field_start
    - field_stop
    - calloc
    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:
    - truncated_line
    - SKIP_CHAR
    - str2ic
    - unlikely
    - SEP
    - fprintf
    - insert_timer
    - insert_value
    - field_start
    - field_stop
    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:
    - vfprintf
    - exit
    - va_end
    - va_start
    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:
    - strdup
    - XXH64
    - printf
    - atoi
    - strlen
    - realloc
    - inet_pton
    - htonl
    - die
    - memcpy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
Fuzzer filename: /src/fuzz_cfg_parser.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- execinfo.h
- haproxy/quic_frame.h
- haproxy/server.h
- getopt.h
- vtc_h2_stattbl.h
- errno.h
- hash.h
- haproxy/global.h
- openssl/param_build.h
- haproxy/http-t.h
- haproxy/api.h
- haproxy/mux_spop-t.h
- haproxy/signal-t.h
- haproxy/quic_loss-t.h
- haproxy/sc_strm.h
- haproxy/ncbmbuf.h
- cmds.h
- haproxy/proto_udp.h
- vre.h
- import/mt_list.h
- haproxy/quic_conn-t.h
- import/ebpttree.h
- math.h
- emmintrin.h
- debug.h
- malloc/malloc.h
- stdalign.h
- netlink/cli/qdisc.h
- hpack.h
- haproxy/tcpcheck.h
- openssl/chacha.h
- haproxy/hpack-dec.h
- haproxy/quic_sock.h
- haproxy/uri_auth-t.h
- haproxy/proto_sockpair.h
- openssl/hkdf.h
- netlink/cli/link.h
- haproxy/mqtt.h
- sys/types.h
- vcli.h
- openssl/provider.h
- haproxy/vars-t.h
- haproxy/tinfo-t.h
- netinet/ip.h
- haproxy/quic_fctl-t.h
- haproxy/protocol.h
- haproxy/mux_quic-t.h
- vlu.h
- haproxy/regex.h
- netlink/cli/utils.h
- haproxy/action-t.h
- haproxy/task-t.h
- util.h
- assert.h
- haproxy/tools-t.h
- haproxy/pipe-t.h
- linux/capability.h
- haproxy/stconn.h
- haproxy/jwt.h
- arm_sve.h
- epan/conversation.h
- haproxy/h3_stats-t.h
- haproxy/openssl-compat.h
- haproxy/proto_uxst.h
- haproxy/dns.h
- openssl/crypto.h
- pthread_np.h
- haproxy/hpack-huff.h
- haproxy/protobuf-t.h
- haproxy/dynbuf-t.h
- haproxy/task.h
- haproxy/ssl_sock-t.h
- regex.h
- haproxy/arg.h
- haproxy/sample.h
- haproxy/uri_auth.h
- haproxy/payload.h
- printf.h
- haproxy/applet-t.h
- openssl/evp.h
- ceb32_tree.h
- haproxy/quic_loss.h
- haproxy/fix.h
- haproxy/fix-t.h
- vfil.h
- haproxy/compression-t.h
- haproxy/resolvers-t.h
- haproxy/quic_cc-t.h
- haproxy/signal.h
- haproxy/ncbuf-t.h
- haproxy/lb_ss.h
- teken_subr.h
- haproxy/lb_chash.h
- termios.h
- haproxy/quic_cid.h
- haproxy/fcgi.h
- eb32tree.h
- haproxy/list.h
- hash/hash.h
- epan/prefs.h
- fcntl.h
- haproxy/cpu_topo-t.h
- ebmbtree.h
- libunwind.h
- linux/tls.h
- import/cebtree-prv.h
- haproxy/lb_ss-t.h
- fnmatch.h
- vav.h
- haproxy/stconn-t.h
- haproxy/namespace.h
- haproxy/ssl_ckch-t.h
- haproxy/obj_type-t.h
- lauxlib.h
- haproxy/session-t.h
- haproxy/ring.h
- tbl/h2_settings.h
- ebtree.h
- haproxy/spoe-t.h
- haproxy/htx-t.h
- import/eb64tree.h
- teken_wcwidth.h
- haproxy/h2.h
- haproxy/check-t.h
- haproxy/cfgcond-t.h
- haproxy/time-t.h
- haproxy/cli-t.h
- haproxy/quic_utils.h
- pcre2posix.h
- import/eb32sctree.h
- haproxy/qmux_trace.h
- haproxy/proxy-t.h
- netinet/tcp.h
- import/cebs_tree.h
- haproxy/quic_tls-t.h
- mt_list.h
- haproxy/http_ext.h
- haproxy/window_filter.h
- haproxy/quic_rules.h
- arm_neon.h
- haproxy/istbuf.h
- haproxy/sock.h
- haproxy/ssl_sock.h
- haproxy/cpu_topo.h
- haproxy/quic_ssl-t.h
- vapi/vsc.h
- import/ebtree-t.h
- haproxy/pipe.h
- haproxy/xref-t.h
- haproxy/quic_tls.h
- haproxy/stats.h
- setjmp.h
- _ceb_blk.c
- haproxy/hash.h
- haproxy/activity-t.h
- haproxy/quic_rx.h
- sched.h
- import/eb32tree.h
- haproxy/ticks.h
- import/ebtree.h
- haproxy/initcall.h
- malloc.h
- haproxy/auth.h
- haproxy/stats-proxy.h
- sys/event.h
- netinet/udp.h
- haproxy/stats-html.h
- netinet/ip6.h
- vss.h
- arpa/inet.h
- haproxy/dns_ring.h
- openssl/engine.h
- openssl/bn.h
- epan/tvbuff.h
- haproxy/mux_h2-t.h
- dirent.h
- haproxy/fd-t.h
- haproxy/log-t.h
- ../src/qpack-tbl.c
- haproxy/buf.h
- vtim.h
- sys/auxv.h
- haproxy/quic_cc.h
- miniobj.h
- haproxy/stats-t.h
- haproxy/stream.h
- haproxy/compat.h
- haproxy/init-t.h
- haproxy/clock.h
- sys/utsname.h
- netinet/in.h
- elf.h
- haproxy/base64.h
- haproxy/sink.h
- haproxy/arg-t.h
- import/cebtree.h
- haproxy/http_htx-t.h
- signal.h
- haproxy/cli.h
- time.h
- haproxy/trace.h
- haproxy/mailers.h
- haproxy/map-t.h
- haproxy/ncbuf_common-t.h
- haproxy/jws.h
- haproxy/server-t.h
- vdef.h
- haproxy/ring-t.h
- import/ceb64_tree.h
- openssl/kdf.h
- haproxy/linuxcap.h
- vre_pcre2.h
- haproxy/listener.h
- haproxy/compiler.h
- haproxy/dns_ring-t.h
- zlib.h
- haproxy/quic_frame-t.h
- haproxy/trace-t.h
- ../src/hpack-dec.c
- dac.h
- haproxy/pool-os.h
- ebpttree.h
- string.h
- crypt.h
- haproxy/quic_enc.h
- haproxy/proxy.h
- haproxy/queue.h
- haproxy/quic_retry.h
- haproxy/dgram.h
- openssl/hmac.h
- haproxy/port_range-t.h
- haproxy/sock-t.h
- netlink/cache.h
- haproxy/action.h
- openssl/ssl.h
- haproxy/peers.h
- epan/dissectors/packet-tcp.h
- haproxy/channel-t.h
- haproxy/qpack-t.h
- haproxy/freq_ctr-t.h
- haproxy/h3_stats.h
- import/ebsttree.h
- haproxy/namespace-t.h
- promex/promex.h
- vend.h
- haproxy/dict-t.h
- haproxy/jwt-t.h
- netinet/in_systm.h
- haproxy/bug.h
- haproxy/acme-t.h
- haproxy/uri_normalizer-t.h
- stdlib.h
- teken_subr_compat.h
- haproxy/vecpair.h
- mach/mach_time.h
- sys/ioctl.h
- unistd.h
- vct.h
- wurfl/wurfl.h
- netdb.h
- cebtree.h
- haproxy/ssl_ocsp.h
- openssl/rsa.h
- conf.h
- haproxy/proto_rhttp.h
- haproxy/systemd.h
- haproxy/hpack-tbl.h
- haproxy/listener-t.h
- locale.h
- haproxy/http-hdr.h
- haproxy/mux_quic.h
- config.h
- lualib.h
- tbl/h2_frames.h
- haproxy/lb_fwlc.h
- mach/thread_policy.h
- haproxy/quic_utils-t.h
- epan/strutil.h
- limits.h
- sys/cpuset.h
- cebis_tree.h
- haproxy/htx.h
- haproxy/http.h
- haproxy/pool.h
- haproxy/quic_retransmit.h
- cebl_tree.h
- haproxy/proto_quic.h
- dlfcn.h
- zconf.h
- mmintrin.h
- haproxy/qpack-tbl-t.h
- haproxy/qpack-tbl.h
- pcre2.h
- haproxy/stats-json.h
- haproxy/filters.h
- haproxy/quic_tp-t.h
- openssl/decoder.h
- haproxy/quic_token.h
- openssl/x509v3.h
- haproxy/http_ana-t.h
- haproxy/ssl_utils.h
- vas.h
- haproxy/ncbmbuf-t.h
- haproxy/auth-t.h
- openssl/x509.h
- import/cebis_tree.h
- haproxy/qpack-dec.h
- sys/personality.h
- haproxy/channel.h
- haproxy/errors.h
- haproxy/dgram-t.h
- haproxy/time.h
- openssl/ocsp.h
- vrnd.h
- haproxy/ssl_gencert.h
- haproxy/lb_fas.h
- haproxy/vars.h
- vsub.h
- mach/mach_types.h
- sys/prctl.h
- sys/file.h
- event.h
- haproxy/quic_openssl_compat-t.h
- haproxy/http_fetch.h
- vtcp.h
- linux/netfilter_ipv6.h
- haproxy/list-t.h
- haproxy/mworker-t.h
- tbl/vsig_list.h
- haproxy/guid-t.h
- sys/filio.h
- import/ceb32_tree.h
- haproxy/fd.h
- haproxy/backend.h
- haproxy/lb_map.h
- haproxy/mworker.h
- haproxy/xxhash.h
- lua.h
- haproxy/mux_fcgi-t.h
- cebib_tree.h
- float.h
- haproxy/flt_http_comp.h
- ceb64_tree.h
- vsa.h
- vjsn.h
- haproxy/http_ext-t.h
- haproxy/event_hdl-t.h
- haproxy/queue-t.h
- haproxy/ssl_crtlist.h
- haproxy/quic_tx-t.h
- vars.h
- haproxy/extcheck.h
- sys/param.h
- pool.h
- sys/statvfs.h
- sys/epoll.h
- stdatomic.h
- import/sha1.h
- sys/select.h
- include.h
- haproxy/obj_type.h
- haproxy/show_flags-t.h
- vtc_h2_priv.h
- haproxy/http_rules.h
- haproxy/global-t.h
- haproxy/cfgcond.h
- haproxy/shctx-t.h
- altivec.h
- ../src/hpack-tbl.c
- haproxy/lb_fwrr.h
- haproxy/h3.h
- haproxy/intops.h
- haproxy/hpack-tbl-t.h
- haproxy/quic_tp.h
- haproxy/hlua.h
- ctype.h
- cebs_tree.h
- haproxy/fcgi-app.h
- haproxy/quic_rx-t.h
- haproxy/atomic.h
- vapi/vsig.h
- ebimtree.h
- wolfssl/options.h
- haproxy/quic_cli-t.h
- haproxy/quic_ack-t.h
- sys/un.h
- haproxy/fcgi-app-t.h
- vudp.h
- haproxy/ssl_ckch.h
- haproxy/capture.h
- haproxy/compression.h
- haproxy/hq_interop.h
- vtc_log.h
- vfl.h
- pcreposix.h
- 51Degrees.h
- cebtree-prv.h
- ../src/hpack-huff.c
- haproxy/lb_chash-t.h
- import/ebmbtree.h
- haproxy/sink-t.h
- sys/resource.h
- vus.h
- haproxy/stress.h
- pthread.h
- haproxy/version.h
- vbh.h
- haproxy/qpack-enc.h
- haproxy/spoe.h
- vqueue.h
- openssl/rand.h
- netlink/cli/tc.h
- haproxy/log.h
- haproxy/counters.h
- haproxy/event_hdl.h
- haproxy/cfgdiag.h
- haproxy/dns-t.h
- haproxy/lb_map-t.h
- haproxy/acl.h
- haproxy/capture-t.h
- import/slz-tables.h
- vgz.h
- haproxy/api-t.h
- haproxy/ssl_trace.h
- teken.h
- haproxy/chunk.h
- stdio.h
- haproxy/check.h
- http.h
- vnum.h
- haproxy/quic_stats.h
- syslog.h
- haproxy/quic_fctl.h
- haproxy/quic_pacing-t.h
- haproxy/tools.h
- tbl/h2_error.h
- haproxy/quic_ssl.h
- openssl/dh.h
- ceba_tree.h
- sys/_cpuset.h
- epan/to_str.h
- vapi/vsl.h
- teken_scs.h
- haproxy/http_client-t.h
- haproxy/dynbuf.h
- _ceb_addr.c
- haproxy/backend-t.h
- haproxy/freq_ctr.h
- haproxy/acl-t.h
- intrin.h
- pcre.h
- define.h
- vtc_h2_dectbl.h
- s390intrin.h
- mach/thread_act.h
- haproxy/counters-t.h
- haproxy/http_ana.h
- haproxy/pattern-t.h
- import/slz.h
- haproxy/dict.h
- haproxy/debug.h
- haproxy/lb_fwlc-t.h
- haproxy/http_htx.h
- openssl/async.h
- sys/time.h
- import/lru.h
- haproxy/stats-file.h
- haproxy/quic_stream-t.h
- haproxy/cfgparse.h
- haproxy/ssl_crtlist-t.h
- haproxy/thread-t.h
- parser.h
- haproxy/quic_openssl_compat.h
- sys/mman.h
- haproxy/quic_trace-t.h
- sys/vfs.h
- hash/fiftyone.h
- import/ebistree.h
- import/plock.h
- haproxy/qmux_http.h
- haproxy/lb_fwrr-t.h
- haproxy/applet.h
- haproxy/acme.h
- haproxy/quic_conn.h
- sys/stat.h
- ../src/qpack-dec.c
- haproxy/activity.h
- haproxy/thread.h
- _ceb_str.c
- haproxy/stats-file-t.h
- haproxy/proto_tcp.h
- poll.h
- inttypes.h
- linux/types.h
- haproxy/frontend.h
- haproxy/sample-t.h
- haproxy/sock_unix.h
- haproxy/stick_table-t.h
- openssl/base.h
- openssl/core_names.h
- sys/uio.h
- haproxy/quic_tune.h
- haproxy/net_helper.h
- _ceb_int.c
- haproxy/stick_table.h
- haproxy/quic_tx.h
- net/if.h
- group.h
- haproxy/hpack-enc.h
- haproxy/defaults.h
- haproxy/stats-html-t.h
- eb64tree.h
- haproxy/http_client.h
- haproxy/quic_cc_hystart.h
- haproxy/session.h
- haproxy/shctx.h
- haproxy/h1_htx.h
- vsb.h
- haproxy/sock_inet.h
- vbt.h
- haproxy/h1.h
- openssl/err.h
- teken_state.h
- haproxy/tinfo.h
- vpf.h
- haproxy/limits.h
- haproxy/proto_rhttp-t.h
- haproxy/mux_h1-t.h
- sys/procctl.h
- haproxy/lb_fas-t.h
- haproxy/hlua_fcn.h
- haproxy/peers-t.h
- stdint.h
- haproxy/tcpcheck-t.h
- haproxy/quic_trace.h
- haproxy/map.h
- haproxy/quic_stream.h
- haproxy/ssl_ocsp-t.h
- haproxy/hlua-t.h
- haproxy/tcp_rules.h
- haproxy/init.h
- haproxy/pool-t.h
- cli.h
- haproxy/quic_cid-t.h
- haproxy/quic_pacing.h
- sys/exec_elf.h
- haproxy/port_range.h
- haproxy/receiver-t.h
- sys/socket.h
- haproxy/sample_data-t.h
- haproxy/uri_normalizer.h
- ws_version.h
- vtc.h
- malloc_np.h
- fiftyone.h
- haproxy/quic_ack.h
- import/xxhash.h
- haproxy/filters-t.h
- strings.h
- haproxy/cpuset.h
- haproxy/ncbuf.h
- stropts.h
- haproxy/protocol-t.h
- vapi/vsm.h
- filter.h
- pwd.h
- netlink/route/qdisc/plug.h
- scope.h
- haproxy/connection-t.h
- haproxy/resolvers.h
- haproxy/quic_cc_drs.h
- haproxy/mailers-t.h
- cebb_tree.h
- haproxy/cpuset-t.h
- haproxy/xref.h
- haproxy/protobuf.h
- haproxy/buf-t.h
- haproxy/quic_sock-t.h
- link.h
- linux/netfilter_ipv4.h
- stdbool.h
- port.h
- haproxy/connection.h
- atomic-ops.h
- grp.h
- stddef.h
- epan/packet.h
- vev.h
- haproxy/quic_tune-t.h
- haproxy/quic_stats-t.h
- haproxy/stream-t.h
- ../../src/hpack-tbl.c
- vtc_http.h
- immintrin.h
- import/ebimtree.h
- haproxy/http-hdr-t.h
- haproxy/guid.h
- stdarg.h
- sys/wait.h
- syscall.h
- opentracing.h
- import/ist.h
- haproxy/regex-t.h
- haproxy/mqtt-t.h
- sys/sysctl.h
- linux/magic.h
- import/mjson.h
- haproxy/pattern.h
- opentracing-c-wrapper/include.h
report: name
sources:
- 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: []
    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: 917
        line_start: 914
        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: 965
        line_start: 961
        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: 970
        line_start: 967
        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_done
      - name: hpk_err
      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_never
      - name: hpk_not
      - name: hpk_idx
      - 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: 46
        line_start: 45
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x01\t"
    - item_type: preproc_def
      name: TF_UNDERLINE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x02\t"
    - item_type: preproc_def
      name: TF_BLINK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x04\t"
    - item_type: preproc_def
      name: TF_REVERSE
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x08\t"
    - item_type: preproc_def
      name: TF_CJK_RIGHT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/VTest2/src/teken.h
      type_or_value: "0x10\t"
    - item_type: preproc_def
      name: TC_BLACK
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TC_RED
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/VTest2/src/teken.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TC_GREEN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/VTest2/src/teken.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TC_BROWN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/VTest2/src/teken.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TC_BLUE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/VTest2/src/teken.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TC_MAGENTA
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/VTest2/src/teken.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TC_CYAN
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/VTest2/src/teken.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TC_WHITE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/VTest2/src/teken.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TC_NCOLORS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/VTest2/src/teken.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TC_LIGHT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/VTest2/src/teken.h
      type_or_value: "8\t"
    - item_type: preproc_def
      name: TP_SHOWCURSOR
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TP_KEYPADAPP
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/VTest2/src/teken.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TP_AUTOREPEAT
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/VTest2/src/teken.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TP_SWITCHVT
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/VTest2/src/teken.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TP_132COLS
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/VTest2/src/teken.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TP_SETBELLPD
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/VTest2/src/teken.h
      type_or_value: '5'
    - item_type: preproc_def
      name: TP_MOUSE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/VTest2/src/teken.h
      type_or_value: '6'
    - item_type: preproc_def
      name: TP_SETBORDER
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/VTest2/src/teken.h
      type_or_value: '7'
    - item_type: preproc_def
      name: TP_SETLOCALCURSOR
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/VTest2/src/teken.h
      type_or_value: '8'
    - item_type: preproc_def
      name: TP_SETGLOBALCURSOR
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/VTest2/src/teken.h
      type_or_value: '9'
    - item_type: preproc_def
      name: T_NUMSIZE
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/VTest2/src/teken.h
      type_or_value: '8'
    - item_type: preproc_def
      name: T_NUMCOL
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/VTest2/src/teken.h
      type_or_value: '160'
    - item_type: preproc_def
      name: TKEY_UP
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: TKEY_DOWN
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: TKEY_LEFT
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: TKEY_RIGHT
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: TKEY_HOME
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: TKEY_END
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: TKEY_INSERT
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x06'
    - item_type: preproc_def
      name: TKEY_DELETE
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x07'
    - item_type: preproc_def
      name: TKEY_PAGE_UP
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x08'
    - item_type: preproc_def
      name: TKEY_PAGE_DOWN
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x09'
    - item_type: preproc_def
      name: TKEY_F1
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0a'
    - item_type: preproc_def
      name: TKEY_F2
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0b'
    - item_type: preproc_def
      name: TKEY_F3
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0c'
    - item_type: preproc_def
      name: TKEY_F4
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0d'
    - item_type: preproc_def
      name: TKEY_F5
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0e'
    - item_type: preproc_def
      name: TKEY_F6
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x0f'
    - item_type: preproc_def
      name: TKEY_F7
      pos:
        line_end: 204
        line_start: 203
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: TKEY_F8
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: TKEY_F9
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x12'
    - item_type: preproc_def
      name: TKEY_F10
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x13'
    - item_type: preproc_def
      name: TKEY_F11
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/VTest2/src/teken.h
      type_or_value: '0x14'
    - item_type: preproc_def
      name: TKEY_F12
      pos:
        line_end: 209
        line_start: 208
        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: 65
        line_start: 62
        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: 69
        line_start: 66
        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: 74
        line_start: 70
        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: 78
        line_start: 75
        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: 122
        line_start: 112
        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: 164
        line_start: 130
        source_file: /src/VTest2/src/teken.h
    typedefs:
    - item_type: typedef
      name: teken_char_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/VTest2/src/teken.h
      type: uint32_t
    - item_type: typedef
      name: teken_unit_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/VTest2/src/teken.h
      type: unsigned short
    - item_type: typedef
      name: teken_format_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/VTest2/src/teken.h
      type: unsigned char
    - item_type: typedef
      name: teken_color_t
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/VTest2/src/teken.h
      type: unsigned char
    - item_type: typedef
      name: teken_t
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/VTest2/src/teken.h
      type: __teken
    - item_type: typedef
      name: teken_state_t(teken_t *, teken_char_t)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_bell_t(void *)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_cursor_t(void *, const teken_pos_t *)
      pos:
        line_end: 89
        line_start: 89
        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: 91
        line_start: 90
        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: 93
        line_start: 92
        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: 94
        line_start: 94
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_pre_input_t(void *)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_post_input_t(void *)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_param_t(void *, int, unsigned int)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/VTest2/src/teken.h
      type: void
    - item_type: typedef
      name: tf_respond_t(void *, const void *, size_t)
      pos:
        line_end: 110
        line_start: 110
        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: 124
        line_start: 124
        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: EXTENSION_MAGIC
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/VTest2/src/vtc.c
      type_or_value: '0x69e788db'
    - item_type: preproc_def
      name: MACRO_MAGIC
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/VTest2/src/vtc.c
      type_or_value: '0x803423e3'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: (extension)
        type: VTAILQ_ENTRY
      - name: '*name'
        type: char
      item_type: struct
      name: extension
      pos:
        line_end: 143
        line_start: 138
        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: 198
        line_start: 191
        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: 47
        line_start: 46
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0001\t"
    - item_type: preproc_def
      name: TS_INSERT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0002\t"
    - item_type: preproc_def
      name: TS_AUTOWRAP
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0004\t"
    - item_type: preproc_def
      name: TS_ORIGIN
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0008\t"
    - item_type: preproc_def
      name: TS_WRAPPED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0010\t"
    - item_type: preproc_def
      name: TS_8BIT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0020\t"
    - item_type: preproc_def
      name: TS_CONS25
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0040\t"
    - item_type: preproc_def
      name: TS_INSTRING
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0080\t"
    - item_type: preproc_def
      name: TS_CURSORKEYS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/VTest2/src/teken.c
      type_or_value: "0x0100\t"
    - item_type: preproc_def
      name: BLANK
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/VTest2/src/teken.c
      type_or_value: ''' '''
    - item_type: preproc_def
      name: k
      pos:
        line_end: 477
        line_start: 476
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_BLACK
    - item_type: preproc_def
      name: b
      pos:
        line_end: 478
        line_start: 477
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_BLUE
    - item_type: preproc_def
      name: y
      pos:
        line_end: 479
        line_start: 478
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_BROWN
    - item_type: preproc_def
      name: c
      pos:
        line_end: 480
        line_start: 479
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_CYAN
    - item_type: preproc_def
      name: g
      pos:
        line_end: 481
        line_start: 480
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_GREEN
    - item_type: preproc_def
      name: m
      pos:
        line_end: 482
        line_start: 481
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_MAGENTA
    - item_type: preproc_def
      name: r
      pos:
        line_end: 483
        line_start: 482
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_RED
    - item_type: preproc_def
      name: w
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/VTest2/src/teken.c
      type_or_value: TC_WHITE
    - item_type: preproc_def
      name: K
      pos:
        line_end: 485
        line_start: 484
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_BLACK | TC_LIGHT)
    - item_type: preproc_def
      name: B
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_BLUE | TC_LIGHT)
    - item_type: preproc_def
      name: Y
      pos:
        line_end: 487
        line_start: 486
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_BROWN | TC_LIGHT)
    - item_type: preproc_def
      name: C
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_CYAN | TC_LIGHT)
    - item_type: preproc_def
      name: G
      pos:
        line_end: 489
        line_start: 488
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_GREEN | TC_LIGHT)
    - item_type: preproc_def
      name: M
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_MAGENTA | TC_LIGHT)
    - item_type: preproc_def
      name: R
      pos:
        line_end: 491
        line_start: 490
        source_file: /src/VTest2/src/teken.c
      type_or_value: (TC_RED | TC_LIGHT)
    - item_type: preproc_def
      name: W
      pos:
        line_end: 492
        line_start: 491
        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_SETTINGS
  - 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_KV
  - 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: 1417
        line_start: 1416
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_tx11obj
    - item_type: preproc_def
      name: cmd_txresp
      pos:
        line_end: 1418
        line_start: 1417
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_tx11obj
    - item_type: preproc_def
      name: cmd_txpush
      pos:
        line_end: 1419
        line_start: 1418
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_tx11obj
    - item_type: preproc_def
      name: cmd_txcont
      pos:
        line_end: 1420
        line_start: 1419
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_tx11obj
    - item_type: preproc_def
      name: cmd_rxreq
      pos:
        line_end: 2317
        line_start: 2316
        source_file: /src/VTest2/src/vtc_http2.c
      type_or_value: cmd_rxmsg
    - item_type: preproc_def
      name: cmd_rxresp
      pos:
        line_end: 2318
        line_start: 2317
        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:
  - VTC_CHECK_NAME
  - CMD_GLOBAL
  - CMD_TOP
  source_file: /src/VTest2/src/vtc.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CMD_ARGS
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/VTest2/src/vtc.h
      type_or_value: char * const *av, void *priv, struct vtclog *vl
    - item_type: preproc_def
      name: CMDS_MAGIC
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/VTest2/src/vtc.h
      type_or_value: '0x9ccc797d'
    - item_type: preproc_def
      name: CMDS_F_NONE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/VTest2/src/vtc.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: CMDS_F_GLOBAL
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/VTest2/src/vtc.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: CMDS_F_SHUT
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/VTest2/src/vtc.h
      type_or_value: '0x2'
    structs:
    - fields:
      - name: magic
        type: unsigned
      - name: '*name'
        type: char
      - name: '*cmd'
        type: cmd_f
      - name: flags
        type: unsigned
      - name: (cmds)
        type: VTAILQ_ENTRY
      item_type: struct
      name: cmds
      pos:
        line_end: 74
        line_start: 63
        source_file: /src/VTest2/src/vtc.h
    typedefs:
    - item_type: typedef
      name: cmd_f(CMD_ARGS)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/VTest2/src/vtc.h
      type: void
    - item_type: typedef
      name: sess_conn_f(void *priv, struct vtclog *)
      pos:
        line_end: 105
        line_start: 105
        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: 106
        line_start: 106
        source_file: /src/VTest2/src/vtc.h
      type: void
    - item_type: typedef
      name: '* macro_f(int, char *const *, const char **)'
      pos:
        line_end: 154
        line_start: 154
        source_file: /src/VTest2/src/vtc.h
      type: char
    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
  source_file: /src/VTest2/src/teken_wcwidth.h
  types:
    enum: []
    preproc_defs: []
    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_SKIP
      - name: LEM_FAIL
      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_POLL_DONE
      - name: TUNNEL_PAUSED
      - name: TUNNEL_RUNNING
      - name: TUNNEL_SPEC_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:
  - 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_SOCK
      - name: BARRIER_COND
      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:
  - 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
  - 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: 181
        line_start: 180
        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_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: 171
        line_start: 170
        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: 176
        line_start: 168
        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_MISSING
      - name: VAS_INCOMPLETE
      - name: VAS_ASSERT
      - name: VAS_VCL
      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
  - Tstrcmp
  - Tforeach
  - LIKELY
  - UNLIKELY
  - __DEQUALIFY
  - __containerof
  - __containerof
  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: 588
        line_start: 587
        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: 589
        line_start: 588
        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'
    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_TOOFEW
        value: '104'
      - name: CLIS_UNIMPL
        value: '102'
      - 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: 198
        line_start: 197
        source_file: /src/VTest2/lib/vtcp.c
      type_or_value: IPPROTO_TCP
    - item_type: preproc_def
      name: VTO_PRIV_MAGIC
      pos:
        line_end: 371
        line_start: 370
        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: 374
        line_start: 368
        source_file: /src/VTest2/lib/vtcp.c
    - fields:
      - name: depth
        type: int
      - name: '**errp'
        type: char
      item_type: struct
      name: helper
      pos:
        line_end: 506
        line_start: 503
        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: []
  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: tail
        type: size_t
      - name: head
        type: size_t
      - name: area[0]
        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:
  - 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
  - check_server_cookies
  - 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: 47
        line_start: 45
        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
  - 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: []
- 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:
  - map_set_server_status_down
  - map_set_server_status_up
  - recalc_server_map
  - 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_flt_init_per_thread
  - comp_flt_deinit_per_thread
  - comp_strm_init
  - comp_strm_deinit
  - comp_prepare_compress_request
  - comp_http_headers
  - comp_http_post_analyze
  - comp_http_payload
  - comp_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
  - parse_compression_options
  - parse_http_comp_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[2]'
        type: struct comp_ctx
      - name: '*comp_algo[2]'
        type: struct comp_algo
      - name: flags
        type: unsigned int
      item_type: struct
      name: comp_state
      pos:
        line_end: 41
        line_start: 33
        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_install_mux_fe
  - 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
  - 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:
  - 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
  - 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
    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_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
  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_lstnr_dgram_dispatch
  - quic_rxbuf_purge_dgrams
  - quic_recv
  - quic_lstnr_sock_fd_iocb
  - quic_conn_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: 373
        line_start: 364
        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: 738
        line_start: 729
        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_store
  - qc_lstnr_params_init
  - qc_srv_params_init
  source_file: /src/haproxy/src/quic_tp.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_MAX_UDP_PAYLOAD_SIZE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/haproxy/src/quic_tp.c
      type_or_value: '2048'
    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:
  - quic_close
  - quic_conn_subscribe
  - quic_conn_unsubscribe
  - qc_conn_init
  - qc_xprt_start
  - qc_get_ssl_sock_ctx
  - qc_xprt_dump_info
  - __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:
  - 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
  - alloc_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
  - new_quic_cid
  - 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_cid_tree
  - quic_deallocate_global_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: 37
        line_start: 36
        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_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_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_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: 213
        line_start: 212
        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
      item_type: struct
      name: h1c
      pos:
        line_end: 60
        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: 79
        line_start: 63
        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: 85
        line_start: 82
        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: 91
        line_start: 88
        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: 268
        line_start: 256
        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:
  - 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_parse_handshake_done_frame
  - quic_frame_type_is_known
  - qf_parser
  - qf_builder
  - qc_parse_frm
  - qc_build_frm
  - 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: 1032
        line_start: 1027
        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: 1073
        line_start: 1068
        source_file: /src/haproxy/src/quic_frame.c
    typedefs: []
    union: []
- function_names:
  - 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
  - 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_server_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: 64
        line_start: 63
        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: 1230
        line_start: 1229
        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
  - 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
  - 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
    - item_type: preproc_def
      name: QPACK_EFL_BITMASK
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/haproxy/src/qpack-dec.c
      type_or_value: '0xf0'
    - item_type: preproc_def
      name: QPACK_LFL_WPBNM
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/src/qpack-dec.c
      type_or_value: 0x00 // Literal field line with post-base name reference
    - item_type: preproc_def
      name: QPACK_IFL_WPBI
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/src/qpack-dec.c
      type_or_value: 0x10 // Indexed field line with post-based index
    - item_type: preproc_def
      name: QPACK_LFL_WLN_BIT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/src/qpack-dec.c
      type_or_value: 0x20 // Literal field line with literal name
    - item_type: preproc_def
      name: QPACK_LFL_WNR_BIT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/src/qpack-dec.c
      type_or_value: 0x40 // Literal field line with name reference
    - item_type: preproc_def
      name: QPACK_IFL_BIT
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/haproxy/src/qpack-dec.c
      type_or_value: 0x80 // Indexed field line
    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: 741
        line_start: 738
        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
  - listeners_setenv
  - cli_socket_setenv
  - cli_has_level
  - pcli_has_level
  - cli_get_severity_output
  - cli_process_cmdline
  - cli_output_msg
  - cli_init
  - 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_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: 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: show_one
        type: int
      - name: show_mask
        type: uint
      item_type: struct
      name: show_fd_ctx
      pos:
        line_end: 111
        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: 117
        line_start: 114
        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: 138
        line_start: 138
        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_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
  source_file: /src/haproxy/src/hlua.c
  types:
    enum:
    - enumerators:
      - name: HLUA_LOG_LOGGERS_ON
        value: '0x00000001'
      - name: HLUA_LOG_STDERR_ON
        value: '0x00000010'
      - name: HLUA_LOG_STDERR_AUTO
        value: '0x00000020'
      - name: HLUA_LOG_STDERR_MASK
        value: '0x00000030'
      item_type: enum
      name: hlua_log_opt
      pos:
        line_end: 82
        line_start: 74
        source_file: /src/haproxy/src/hlua.c
    preproc_defs:
    - item_type: preproc_def
      name: HLUA_BOOL_SAMPLE_CONVERSION_UNK
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x0'
    - item_type: preproc_def
      name: HLUA_BOOL_SAMPLE_CONVERSION_NORMAL
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x1'
    - item_type: preproc_def
      name: HLUA_BOOL_SAMPLE_CONVERSION_BUG
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/src/hlua.c
      type_or_value: 0X2
    - item_type: preproc_def
      name: APPLET_DONE
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x01 '
    - item_type: preproc_def
      name: APPLET_HDR_SENT
      pos:
        line_end: 384
        line_start: 383
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x04 '
    - item_type: preproc_def
      name: APPLET_HTTP11
      pos:
        line_end: 386
        line_start: 385
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x20 '
    - item_type: preproc_def
      name: APPLET_RSP_SENT
      pos:
        line_end: 387
        line_start: 386
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x40 '
    - item_type: preproc_def
      name: HLUA_FLT_CB_FINAL
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HLUA_FLT_CB_RETVAL
      pos:
        line_end: 395
        line_start: 394
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: HLUA_FLT_CB_ARG_CHN
      pos:
        line_end: 396
        line_start: 395
        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: 397
        line_start: 396
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x00000008'
    - item_type: preproc_def
      name: HLUA_FLT_CTX_FL_PAYLOAD
      pos:
        line_end: 399
        line_start: 398
        source_file: /src/haproxy/src/hlua.c
      type_or_value: '0x00000001'
    - item_type: preproc_def
      name: HLSR_READ_LINE
      pos:
        line_end: 2856
        line_start: 2855
        source_file: /src/haproxy/src/hlua.c
      type_or_value: (-1)
    - item_type: preproc_def
      name: HLSR_READ_ALL
      pos:
        line_end: 2857
        line_start: 2856
        source_file: /src/haproxy/src/hlua.c
      type_or_value: (-2)
    - item_type: preproc_def
      name: SOCKET_INFO_MAX_LEN
      pos:
        line_end: 3289
        line_start: 3288
        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: 405
        line_start: 400
        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: 411
        line_start: 407
        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: 420
        line_start: 413
        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: 432
        line_start: 423
        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: 439
        line_start: 435
        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: 449
        line_start: 442
        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: 456
        line_start: 452
        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: 676
        line_start: 673
        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: 689
        line_start: 681
        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: 715
        line_start: 711
        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_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
  - bind_parse_quic_cc_algo
  - bind_parse_quic_socket
  - 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_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_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_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_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: 1590
        line_start: 1589
        source_file: /src/haproxy/src/ssl_sock.c
      type_or_value: '18'
    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: 251
        line_start: 241
        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: 668
        line_start: 665
        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: 754
        line_start: 751
        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: 762
        line_start: 759
        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: 6153
        line_start: 6146
        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: 6161
        line_start: 6154
        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: 7740
        line_start: 7737
        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: 345
        line_start: 342
        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_alloc_rxbufs_listener
  - 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_PROBE_BW_REFILL
      - name: BBR_ST_PROBE_BW_CRUISE
      - name: BBR_ST_PROBE_BW_DOWN
      - name: BBR_ST_DRAIN
      - 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_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
  - 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: 540
        line_start: 537
        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: 931
        line_start: 926
        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: 1809
        line_start: 1807
        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_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
  - ha_quic_send_alert
  - 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:
  - 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_delete
  - pat_ref_delete
  - pat_ref_gen_find_elt
  - pat_ref_find_elt
  - pat_ref_set_elt
  - pat_ref_set_by_id
  - 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_prune
  - pattern_lookup_expr
  - pattern_new_expr
  - pat_ref_read_from_file_smp
  - pat_ref_read_from_file
  - pattern_read_from_file
  - 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
  - h2c_update_timeout
  - 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
  - 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_max_concurrent_streams
  - h2_parse_max_total_streams
  - 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: 301
        line_start: 300
        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: 464
        line_start: 463
        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: 467
        line_start: 466
        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
      item_type: struct
      name: h2c
      pos:
        line_end: 103
        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: 133
        line_start: 109
        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: 141
        line_start: 136
        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: 371
        line_start: 355
        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:
  - 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
  - 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: 55
        line_start: 54
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: SHTABLE_F_TEACH_STAGE2
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: PEER_RESYNC_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_RECONNECT_TIMEOUT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/src/peers.c
      type_or_value: '5000 '
    - item_type: preproc_def
      name: PEER_LOCAL_RECONNECT_TIMEOUT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/src/peers.c
      type_or_value: '500 '
    - item_type: preproc_def
      name: PEER_HEARTBEAT_TIMEOUT
      pos:
        line_end: 62
        line_start: 61
        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: 65
        line_start: 64
        source_file: /src/haproxy/src/peers.c
      type_or_value: '200'
    - item_type: preproc_def
      name: PEERS_SHOW_F_DICT
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: PEER_MSG_STKT_UPDATE
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x80'
    - item_type: preproc_def
      name: PEER_MSG_STKT_INCUPDATE
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x81'
    - item_type: preproc_def
      name: PEER_MSG_STKT_DEFINE
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x82'
    - item_type: preproc_def
      name: PEER_MSG_STKT_SWITCH
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x83'
    - item_type: preproc_def
      name: PEER_MSG_STKT_ACK
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x84'
    - item_type: preproc_def
      name: PEER_MSG_STKT_UPDATE_TIMED
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x85'
    - item_type: preproc_def
      name: PEER_MSG_STKT_INCUPDATE_TIMED
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0x86'
    - item_type: preproc_def
      name: PEER_MSG_STKT_BIT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/haproxy/src/peers.c
      type_or_value: '7'
    - item_type: preproc_def
      name: PEER_MSG_STKT_BIT_MASK
      pos:
        line_end: 186
        line_start: 185
        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: 189
        line_start: 188
        source_file: /src/haproxy/src/peers.c
      type_or_value: '5'
    - item_type: preproc_def
      name: PEER_ENC_2BYTES_MIN
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0xf0 '
    - item_type: preproc_def
      name: PEER_ENC_3BYTES_MIN
      pos:
        line_end: 194
        line_start: 193
        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: 196
        line_start: 195
        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: 198
        line_start: 197
        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: 200
        line_start: 199
        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: 202
        line_start: 201
        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: 204
        line_start: 203
        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: 206
        line_start: 205
        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: 208
        line_start: 207
        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: 211
        line_start: 210
        source_file: /src/haproxy/src/peers.c
      type_or_value: '7'
    - item_type: preproc_def
      name: PEER_ENC_STOP_BYTE
      pos:
        line_end: 213
        line_start: 212
        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: 215
        line_start: 214
        source_file: /src/haproxy/src/peers.c
      type_or_value: '4'
    - item_type: preproc_def
      name: PEER_MSG_HEADER_LEN
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/haproxy/src/peers.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PEER_STKT_CACHE_MAX_ENTRIES
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/haproxy/src/peers.c
      type_or_value: '128'
    - item_type: preproc_def
      name: PEER_SESS_SC_CONNECTCODE
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/haproxy/src/peers.c
      type_or_value: '100 '
    - item_type: preproc_def
      name: PEER_SESS_SC_CONNECTEDCODE
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/haproxy/src/peers.c
      type_or_value: '110 '
    - item_type: preproc_def
      name: PEER_SESS_SC_SUCCESSCODE
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/haproxy/src/peers.c
      type_or_value: '200 '
    - item_type: preproc_def
      name: PEER_SESS_SC_TRYAGAIN
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/haproxy/src/peers.c
      type_or_value: '300 '
    - item_type: preproc_def
      name: PEER_SESS_SC_ERRPROTO
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/haproxy/src/peers.c
      type_or_value: '501 '
    - item_type: preproc_def
      name: PEER_SESS_SC_ERRVERSION
      pos:
        line_end: 253
        line_start: 252
        source_file: /src/haproxy/src/peers.c
      type_or_value: '502 '
    - item_type: preproc_def
      name: PEER_SESS_SC_ERRHOST
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/haproxy/src/peers.c
      type_or_value: '503 '
    - item_type: preproc_def
      name: PEER_SESS_SC_ERRPEER
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/haproxy/src/peers.c
      type_or_value: '504 '
    - item_type: preproc_def
      name: PEER_SESSION_PROTO_NAME
      pos:
        line_end: 257
        line_start: 256
        source_file: /src/haproxy/src/peers.c
      type_or_value: '"HAProxyS"'
    - item_type: preproc_def
      name: PEER_MAJOR_VER
      pos:
        line_end: 258
        line_start: 257
        source_file: /src/haproxy/src/peers.c
      type_or_value: '2'
    - item_type: preproc_def
      name: PEER_MINOR_VER
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/haproxy/src/peers.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PEER_DWNGRD_MINOR_VER
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/haproxy/src/peers.c
      type_or_value: '0'
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 339
        line_start: 338
        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: 169
        line_start: 142
        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: 4006
        line_start: 3996
        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: 1852
        line_start: 1851
        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: 1951
        line_start: 1949
        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: 2158
        line_start: 2151
        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: 2361
        line_start: 2357
        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
  - sched_activity_entry
  - cli_io_handler_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
      item_type: struct
      name: show_prof_ctx
      pos:
        line_end: 33
        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: 40
        line_start: 36
        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:
  - 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_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: 11
        line_start: 10
        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: 14
        line_start: 13
        source_file: /src/haproxy/src/quic_retry.c
      type_or_value: '16 '
    - item_type: preproc_def
      name: QUIC_RETRY_TOKEN_MAXLEN
      pos:
        line_end: 15
        line_start: 14
        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:
  - ss_set_server_status_down
  - ss_set_server_status_up
  - recalc_server_ss
  - 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_check_errors
  - post_check_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: 120
        line_start: 119
        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: 121
        line_start: 120
        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: 122
        line_start: 121
        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: 123
        line_start: 122
        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: 124
        line_start: 123
        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: 126
        line_start: 125
        source_file: /src/haproxy/src/http_htx.c
      type_or_value: '0x000F'
    - item_type: preproc_def
      name: HTTP_FIND_FL_FULL
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/haproxy/src/http_htx.c
      type_or_value: '0x0010'
    structs:
    - fields:
      - name: type
        type: char
      - name: info
        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} errorfile;                        /*
          describe an \"errorfile\" directive */\n\t\tstruct {\n\t\t\tchar *name;
          \                /* the http-errors section name */\n\t\t\tchar status[HTTP_ERR_SIZE];
          /* list of status to import (0: ignore, 1: implicit import, 2: explicit
          import) */\n\t\t} errorfiles;                       /* describe an \"errorfiles\"
          directive */\n\t}"
      - name: '*file'
        type: char
      - name: line
        type: int
      - name: list
        type: struct list
      item_type: struct
      name: conf_errors
      pos:
        line_end: 59
        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: 288
        line_start: 286
        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: 100
        line_start: 99
        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
  - 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
  - dl_dump_libs_cb
  - dump_libs
  - dump_libs
  - parse_dotted_uints
  - varint_bytes
  - ha_random64
  - 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
  - hash_anon
  - hash_ipanon
  - make_word_fingerprint
  - word_fingerprint_distance
  - 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
  source_file: /src/haproxy/src/tools.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NB_L_HASH_WORD
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/src/tools.c
      type_or_value: '15'
    - item_type: preproc_def
      name: TM_YEAR_BASE
      pos:
        line_end: 3932
        line_start: 3931
        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: 131
        line_start: 128
        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: 5530
        line_start: 5527
        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: 5770
        line_start: 5767
        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: 6963
        line_start: 6959
        source_file: /src/haproxy/src/tools.c
    typedefs: []
    union: []
- 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_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_SENDING_MSGS
      - name: SPOE_CTX_ST_ENCODING_MSGS
      - name: SPOE_CTX_ST_READY
      - name: SPOE_CTX_ST_WAITING_ACK
      - 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_BE
      - name: SPOE_EV_ON_TCP_REQ_FE
      - 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_INTERRUPT
      - name: SPOE_CTX_ERR_TOO_BIG
      - name: SPOE_CTX_ERR_RES
      - name: SPOE_CTX_ERR_TOUT
      - 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_detach_endp
  - sc_detach_app
  - sc_destroy
  - sc_reset_endp
  - sc_applet_create
  - sc_cond_forward_shut
  - sc_is_fastfwd_supported
  - sc_app_abort
  - sc_app_shut
  - sc_app_chk_rcv
  - sc_app_chk_snd
  - sc_app_abort_conn
  - sc_app_shut_conn
  - sc_app_chk_rcv_conn
  - sc_app_chk_snd_conn
  - sc_app_abort_applet
  - sc_app_shut_applet
  - sc_app_chk_rcv_applet
  - sc_app_chk_snd_applet
  - 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
  - identity_init
  - identity_add_data
  - identity_flush
  - identity_finish
  - identity_end
  - rfc1952_init
  - rfc1951_init
  - rfc1950_init
  - rfc195x_add_data
  - rfc195x_flush_or_finish
  - rfc195x_flush
  - rfc195x_finish
  - rfc195x_end
  - alloc_zlib
  - free_zlib
  - gzip_init
  - raw_def_init
  - deflate_init
  - deflate_add_data
  - deflate_flush_or_finish
  - deflate_flush
  - deflate_finish
  - 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_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_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: 6010
        line_start: 6007
        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: 6017
        line_start: 6013
        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: 4355
        line_start: 4352
        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: 7101
        line_start: 7097
        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_proxy_tcpcheck
  - deinit_proxy_tcpcheck
  - deinit_tcpchecks
  - add_tcpcheck_expect_str
  - add_tcpcheck_send_strs
  - 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_mysql_check_opt
  - proxy_parse_ldap_check_opt
  - proxy_parse_spop_check_opt
  - proxy_parse_httpchk_req
  - proxy_parse_httpchk_opt
  - proxy_parse_tcp_check_opt
  source_file: /src/haproxy/src/tcpcheck.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 69
        line_start: 68
        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_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_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: 42
        line_start: 41
        source_file: /src/haproxy/src/quic_cli.c
      type_or_value: '0x1 '
    structs:
    - fields:
      - name: epoch
        type: unsigned int
      - 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: 39
        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
  - create_sbuf_pool
  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_GOING_UP
      - name: SRV_STATS_STATE_UP_GOING_DOWN
      - name: SRV_STATS_STATE_DOWN_AGENT
      - name: SRV_STATS_STATE_UP
      - 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: 726
        line_start: 712
        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:
  - 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_chose_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:
    - item_type: preproc_def
      name: QPACK_LFL_WLN_BIT
      pos:
        line_end: 268
        line_start: 267
        source_file: /src/haproxy/src/qpack-enc.c
      type_or_value: 0x20 // Literal field line with literal name
    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_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_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_EVP_PKEY_gen
  - acme_start_task
  - cli_acme_renew_parse
  - cli_acme_chall_ready_parse
  - cli_acme_status_io_handler
  - cli_acme_ps
  - __acme_init
  source_file: /src/haproxy/src/acme.c
  types:
    enum:
    - enumerators:
      - name: ACME_RET_OK
        value: '0'
      - name: ACME_RET_FAIL
        value: '2'
      - name: ACME_RET_RETRY
        value: '1'
      item_type: enum
      name: acme_ret
      pos:
        line_end: 153
        line_start: 149
        source_file: /src/haproxy/src/acme.c
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 39
        line_start: 38
        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
  - sess_build_logline_orig
  - list_for_each_entry
  - 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_parse_act
  source_file: /src/haproxy/src/log.c
  types:
    enum:
    - enumerators:
      - name: LOG_FMT_ORIGIN
      - name: LOG_FMT_BACKENDPORT
      - name: LOG_FMT_FRONTENDIP
      - name: LOG_FMT_DATELOCAL
      - name: LOG_FMT_TS
      - name: LOG_FMT_SERVER
      - name: LOG_FMT_BYTES_UP
      - name: LOG_FMT_Ta
      - name: LOG_FMT_TC
      - name: LOG_FMT_TD
      - name: LOG_FMT_CSERVER
      - name: LOG_FMT_HDRRESPONSLIST
      - name: LOG_FMT_SSL_VERSION
      - name: LOG_FMT_ACTCONN
      - name: LOG_FMT_SSL_CIPHER
      - name: LOG_FMT_SRVQUEUE
      - name: LOG_FMT_HTTP_VERSION
      - name: LOG_FMT_BACKENDIP
      - name: LOG_FMT_FRONTENDPORT
      - name: LOG_FMT_DATE
      - name: LOG_FMT_DATEGMT
      - name: LOG_FMT_PID
      - name: LOG_FMT_FRONTEND
      - name: LOG_FMT_LOGCNT
      - name: LOG_FMT_COUNTER
      - name: LOG_FMT_FRONTEND_XPRT
      - name: LOG_FMT_BYTES
      - name: LOG_FMT_HDRRESPONS
      - name: LOG_FMT_TERMSTATE
      - name: LOG_FMT_HTTP_PATH
      - name: LOG_FMT_REQ
      - name: LOG_FMT_BCKQUEUE
      - name: LOG_FMT_TT
      - name: LOG_FMT_GLOBAL
      - name: LOG_FMT_CLIENTIP
      - name: LOG_FMT_SERVERPORT
      - name: LOG_FMT_SERVERIP
      - name: LOG_FMT_TQ
      - name: LOG_FMT_Tr
      - name: LOG_FMT_tr
      - name: LOG_FMT_trl
      - name: LOG_FMT_TU
      - name: LOG_FMT_CCLIENT
      - name: LOG_FMT_HOSTNAME
      - name: LOG_FMT_HTTP_PATH_ONLY
      - name: LOG_FMT_FECONN
      - name: LOG_FMT_RETRIES
      - name: LOG_FMT_HDRREQUESTLIST
      - name: LOG_FMT_CLIENTPORT
      - name: LOG_FMT_MS
      - name: LOG_FMT_BACKEND
      - name: LOG_FMT_Th
      - name: LOG_FMT_TW
      - name: LOG_FMT_TR
      - name: LOG_FMT_STATUS
      - name: LOG_FMT_TERMSTATE_CK
      - name: LOG_FMT_SRVCONN
      - name: LOG_FMT_HDRREQUEST
      - name: LOG_FMT_HTTP_METHOD
      - name: LOG_FMT_BECONN
      - name: LOG_FMT_HTTP_QUERY
      - name: LOG_FMT_trg
      - name: LOG_FMT_UNIQUEID
      - name: LOG_FMT_Ti
      - name: LOG_FMT_HTTP_URI
      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_ULTOA
      - name: LF_INT_UTOA_PAD_4
      - name: LF_INT_LLTOA
      item_type: enum
      name: lf_int_hdl
      pos:
        line_end: 2641
        line_start: 2636
        source_file: /src/haproxy/src/log.c
    preproc_defs:
    - item_type: preproc_def
      name: if
      pos:
        line_end: 3581
        line_start: 3575
        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: 400
        line_start: 397
        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: 1997
        line_start: 1990
        source_file: /src/haproxy/src/log.c
    - fields:
      - name: '*sess'
        type: struct session
      - name: '*stream'
        type: struct stream
      - name: origin
        type: struct log_orig
      item_type: struct
      name: process_send_log_ctx
      pos:
        line_end: 2916
        line_start: 2912
        source_file: /src/haproxy/src/log.c
    typedefs: []
    union: []
- function_names:
  - 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
  - init_peers_frontend
  - bind_conf_uniq_alloc
  - cfg_peers_add_peer
  - cfg_parse_peers
  - cfg_parse_mailers
  - cfg_parse_netns
  - cfg_parse_users
  - 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_CONFIG
      - name: DEFAULT_PATH_PARENT
      - name: DEFAULT_PATH_ORIGIN
      item_type: enum
      name: default_path_mode
      pos:
        line_end: 125
        line_start: 120
        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:
  - 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_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_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_UTF8P
      - name: IT_UTF8S
      - name: IT_UTF8PS
      - name: IT_UTF8
      item_type: enum
      name: input_type
      pos:
        line_end: 2656
        line_start: 2650
        source_file: /src/haproxy/src/sample.c
    preproc_defs:
    - item_type: preproc_def
      name: GRPC_MSG_COMPRESS_FLAG_SZ
      pos:
        line_end: 4040
        line_start: 4039
        source_file: /src/haproxy/src/sample.c
      type_or_value: '1 '
    - item_type: preproc_def
      name: GRPC_MSG_LENGTH_SZ
      pos:
        line_end: 4041
        line_start: 4040
        source_file: /src/haproxy/src/sample.c
      type_or_value: '4 '
    - item_type: preproc_def
      name: GRPC_MSG_HEADER_SZ
      pos:
        line_end: 4042
        line_start: 4041
        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: 4409
        line_start: 4408
        source_file: /src/haproxy/src/sample.c
      type_or_value: ((1LL << 53) - 1)
    - item_type: preproc_def
      name: JSON_INT_MIN
      pos:
        line_end: 4410
        line_start: 4409
        source_file: /src/haproxy/src/sample.c
      type_or_value: (-JSON_INT_MAX)
    structs: []
    typedefs: []
    union: []
- function_names:
  - RESUME_FILTER_LOOP
  - BREAK_EXECUTION
  - flt_register_keywords
  - flt_find_kw
  - flt_dump_kws
  - list_filters
  - parse_filter
  - 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_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
  - RESUME_FILTER_LOOP
  - FLT_OFF
  - flt_pre_analyze
  - RESUME_FILTER_LOOP
  - flt_post_analyze
  - flt_analyze_http_headers
  - RESUME_FILTER_LOOP
  - flt_end_analyze
  - RESUME_FILTER_LOOP
  - 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'
    - item_type: preproc_def
      name: RESUME_FILTER_END
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/haproxy/src/filters.c
      type_or_value: "}\t\t\t\t\t\t\\\n\t} while(0)"
    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: 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: 369
        line_start: 356
        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_signals
  - mworker_broadcast_signal
  - mworker_reexec
  - mworker_reload
  - mworker_catch_sighup
  - mworker_catch_sigterm
  - mworker_on_new_child_failure
  - mworker_catch_sigchld
  - mworker_accept_wrapper
  - mworker_sockpair_register_per_thread
  - mworker_cleanlisteners
  - mworker_cleanup_proc
  - 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
      item_type: struct
      name: cli_showproc_ctx
      pos:
        line_end: 783
        line_start: 781
        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_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
  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_USED
      item_type: enum
      name: sticktable_field
      pos:
        line_end: 58
        line_start: 53
        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: 5411
        line_start: 5396
        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: 1693
        line_start: 1690
        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: 76
        line_start: 71
        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: 101
        line_start: 93
        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: 114
        line_start: 104
        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:
  - qcs_http_rcv_buf
  - qcs_http_handle_standalone_fin
  - qcs_http_snd_buf
  source_file: /src/haproxy/src/qmux_http.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
  - quic_set_app_ops
  - qc_check_close_on_released_mux
  - qc_conn_finalize
  - quic_conn_closed_err_count_inc
  - qc_h3_request_reject
  - 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:
  - qmux_trace_frm
  - qmux_trace
  - qmux_trace_fill_ctx
  - qcc_app_st_to_str
  - qmux_dump_qcc_info
  - qmux_dump_qcs_info
  source_file: /src/haproxy/src/qmux_trace.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - thread_harmless_till_end
  - thread_isolate
  - thread_isolate_full
  - thread_release
  - 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_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: 319
        line_start: 313
        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
  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: 469
        line_start: 465
        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: 817
        line_start: 817
        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: 935
        line_start: 929
        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
  - 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_generate_unique_id
  - 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_client_timeout
  - smp_fetch_cur_server_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: 141
        line_start: 140
        source_file: /src/haproxy/src/stream.c
      type_or_value: '&trace_strm'
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_SUSP
      pos:
        line_end: 3323
        line_start: 3322
        source_file: /src/haproxy/src/stream.c
      type_or_value: '0x00000001   '
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_DUMP_URI
      pos:
        line_end: 3324
        line_start: 3323
        source_file: /src/haproxy/src/stream.c
      type_or_value: '0x00000002   '
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_SERVER
      pos:
        line_end: 3325
        line_start: 3324
        source_file: /src/haproxy/src/stream.c
      type_or_value: '0x00000004   '
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_BACKEND
      pos:
        line_end: 3326
        line_start: 3325
        source_file: /src/haproxy/src/stream.c
      type_or_value: '0x00000008   '
    - item_type: preproc_def
      name: CLI_SHOWSESS_F_FRONTEND
      pos:
        line_end: 3327
        line_start: 3326
        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: 3338
        line_start: 3328
        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_gcm
  - sample_conv_aes_gcm_init
  - sample_conv_aes_gcm_update
  - sample_conv_aes_gcm_final
  - sample_conv_aes_gcm
  - 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_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_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: []
    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
  - 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
  - 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
  - main
  source_file: /src/haproxy/src/haproxy.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_START_RETRIES
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/haproxy/src/haproxy.c
      type_or_value: '200'
    - item_type: preproc_def
      name: VERSION_MAX_ELTS
      pos:
        line_end: 415
        line_start: 414
        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: 291
        line_start: 287
        source_file: /src/haproxy/src/haproxy.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
  - 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_rm_sc
  - qcc_rm_hreq
  - qcc_is_dead
  - qcc_may_expire
  - 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_prep_bytes
  - qmux_ctrl_send
  - qcc_bufwnd_full
  - qmux_ctrl_room
  - qcc_notify_buf
  - qcc_set_error
  - _qcc_report_glitch
  - qcc_fctl_avail_streams
  - 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_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_app_init
  - qcc_io_send
  - qcc_wait_for_hs
  - qcc_io_recv
  - qmux_avail_streams
  - qmux_used_streams
  - qcc_purge_streams
  - qcc_shutdown
  - qcc_wake_streams
  - qcc_io_process
  - qcc_release
  - qcc_io_cb
  - qcc_pacing_task
  - qcc_timeout_task
  - _qcc_init
  - qmux_init
  - qmux_destroy
  - qmux_strm_attach
  - qmux_strm_detach
  - qmux_strm_rcv_buf
  - qmux_strm_snd_buf
  - qmux_strm_nego_ff
  - qmux_strm_done_ff
  - qmux_strm_resume_ff
  - qmux_strm_subscribe
  - qmux_strm_unsubscribe
  - qmux_wake
  - qmux_strm_shut
  - qmux_ctl
  - qmux_sctl
  - qmux_strm_show_sd
  - qcc_show_quic
  source_file: /src/haproxy/src/mux_quic.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_MAX_STREAMS_MAX_ID
      pos:
        line_end: 2279
        line_start: 2278
        source_file: /src/haproxy/src/mux_quic.c
      type_or_value: (1ULL<<60)
    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
  - wake_srv_chk
  - 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: 140
        line_start: 139
        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: 305
        line_start: 301
        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: 310
        line_start: 307
        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_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_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:
  - 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_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_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
  source_file: /src/haproxy/src/h3.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TRACE_SOURCE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/src/h3.c
      type_or_value: '&trace_h3'
    - item_type: preproc_def
      name: h3_debug_printf
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/src/h3.c
      type_or_value: fprintf
    - item_type: preproc_def
      name: h3_debug_hexdump
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/haproxy/src/h3.c
      type_or_value: debug_hexdump
    - item_type: preproc_def
      name: H3_CF_SETTINGS_SENT
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: H3_CF_SETTINGS_RECV
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: H3_CF_UNI_CTRL_SET
      pos:
        line_end: 123
        line_start: 122
        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: 124
        line_start: 123
        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: 125
        line_start: 124
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000010  '
    - item_type: preproc_def
      name: H3_CF_GOAWAY_SENT
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000020  '
    - item_type: preproc_def
      name: H3_SF_UNI_INIT
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: H3_SF_UNI_NO_H3
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: H3_SF_HAVE_CLEN
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: H3_SF_SENT_INTERIM
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/haproxy/src/h3.c
      type_or_value: '0x00000008  '
    - item_type: preproc_def
      name: H3_SF_RECV_INTERIM
      pos:
        line_end: 157
        line_start: 156
        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_goaway
        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: 148
        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: 171
        line_start: 158
        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:
  - 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_rnd16
  - 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_parse_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: 216
        line_start: 212
        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_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:
  - 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_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
  - parse_http_set_header
  - http_action_replace_header
  - parse_http_replace_header
  - http_action_del_header
  - parse_http_del_header
  - 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
  - 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_parse_cmd
  - trace_parse_cmd
  - 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: []
    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_drain
  - htx_add_data_atonce
  - htx_replace_blk_value
  - 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
  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
  - cpu_policy_first_usable_node
  - 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_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'
    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: 47
        line_start: 30
        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
      item_type: struct
      name: trace_config
      pos:
        line_end: 39
        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_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_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: 2295
        line_start: 2289
        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_ORIGIN
        value: (1 << 2)
      - name: VARY_LAST
      - name: VARY_REFERER
        value: (1 << 1)
      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_DEFLATE
        value: (1 << 1)
      - name: VARY_ENCODING_BR
        value: (1 << 2)
      - name: VARY_ENCODING_COMPRESS
        value: (1 << 3)
      - name: VARY_ENCODING_AES128GCM
        value: (1 << 4)
      - 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: 1459
        line_start: 1458
        source_file: /src/haproxy/src/cache.c
      type_or_value: '0  '
    - item_type: preproc_def
      name: HTX_CACHE_HEADER
      pos:
        line_end: 1460
        line_start: 1459
        source_file: /src/haproxy/src/cache.c
      type_or_value: '1  '
    - item_type: preproc_def
      name: HTX_CACHE_DATA
      pos:
        line_end: 1461
        line_start: 1460
        source_file: /src/haproxy/src/cache.c
      type_or_value: '2  '
    - item_type: preproc_def
      name: HTX_CACHE_EOM
      pos:
        line_end: 1462
        line_start: 1461
        source_file: /src/haproxy/src/cache.c
      type_or_value: '3  '
    - item_type: preproc_def
      name: HTX_CACHE_END
      pos:
        line_end: 1463
        line_start: 1462
        source_file: /src/haproxy/src/cache.c
      type_or_value: '4  '
    - item_type: preproc_def
      name: ACCEPT_ENCODING_MAX_ENTRIES
      pos:
        line_end: 2671
        line_start: 2670
        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
  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
  - free_proxy
  - proxy_cap_str
  - proxy_mode_str
  - 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_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_preset_defaults
  - proxy_free_defaults
  - proxy_destroy_defaults
  - proxy_destroy_all_unref_defaults
  - proxy_unref_or_destroy_defaults
  - proxy_ref_defaults
  - proxy_unref_defaults
  - setup_new_proxy
  - alloc_new_proxy
  - 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_disable_frontend
  - cli_parse_enable_frontend
  - 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: 79
        line_start: 70
        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: 3363
        line_start: 3356
        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
  - __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
  - cli_release_commit_cert
  - ckch_inst_rebuild
  - __ssl_sock_load_new_ckch_instance
  - __ckch_inst_free_locked
  - ckch_store_replace
  - cli_io_handler_commit_cert
  - cli_parse_commit_cert
  - cli_parse_set_cert
  - cli_parse_abort_cert
  - 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_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: 96
        line_start: 95
        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: 97
        line_start: 96
        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: 50
        line_start: 46
        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: 58
        line_start: 54
        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: 66
        line_start: 62
        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: 74
        line_start: 69
        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: 81
        line_start: 77
        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: 88
        line_start: 84
        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: 93
        line_start: 91
        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: 106
        line_start: 99
        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: 112
        line_start: 109
        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}"
      item_type: struct
      name: commit_cert_ctx
      pos:
        line_end: 128
        line_start: 115
        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: 146
        line_start: 131
        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: struct sockaddr_storage
      - 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_SET
      - name: PR_EMAIL_ALERT_RESOLVED
      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_HDR
        value: '2'
      - name: HTX_BLK_EOH
        value: '3'
      - name: HTX_BLK_RES_SL
        value: '1'
      - 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: 213
        line_start: 203
        source_file: /src/haproxy/include/haproxy/htx-t.h
    preproc_defs:
    - item_type: preproc_def
      name: HTX_SL_F_NONE
      pos:
        line_end: 129
        line_start: 128
        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: 130
        line_start: 129
        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: 131
        line_start: 130
        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: 132
        line_start: 131
        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: 133
        line_start: 132
        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: 134
        line_start: 133
        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: 135
        line_start: 134
        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: 136
        line_start: 135
        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: 137
        line_start: 136
        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: 138
        line_start: 137
        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: 139
        line_start: 138
        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: 140
        line_start: 139
        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: 141
        line_start: 140
        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: 142
        line_start: 141
        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: 143
        line_start: 142
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: HTX_BUF_OVERHEAD
      pos:
        line_end: 171
        line_start: 170
        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: 176
        line_start: 175
        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: 177
        line_start: 176
        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: 178
        line_start: 177
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: HTX_FL_FRAGMENTED
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/haproxy/include/haproxy/htx-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: HTX_FL_EOM
      pos:
        line_end: 183
        line_start: 180
        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: 219
        line_start: 216
        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: 225
        line_start: 222
        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: 250
        line_start: 230
        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: 273
        line_start: 253
        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_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: []
    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: DYNBUF_NBQ
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/tinfo-t.h
      type_or_value: '4'
    structs:
    - fields:
      - name: grps
        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: threads_enabled
        type: ulong
      - name: base
        type: uint
      - name: count
        type: uint
      - name: tgid_bit
        type: ulong
      - name: __pad[0]
        type: char
      - name: __end[0]
        type: char
      item_type: struct
      name: tgroup_info
      pos:
        line_end: 89
        line_start: 80
        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: __pad[0]
        type: char
      - name: __end[0]
        type: char
      item_type: struct
      name: tgroup_ctx
      pos:
        line_end: 106
        line_start: 94
        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: __end[0]
        type: char
      item_type: struct
      name: thread_info
      pos:
        line_end: 127
        line_start: 113
        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
        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: 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
      item_type: struct
      name: thread_ctx
      pos:
        line_end: 202
        line_start: 134
        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: MAX_TGROUPS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_THREADS_PER_GROUP
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: __WORDSIZE
    - item_type: preproc_def
      name: MAX_THREADS
      pos:
        line_end: 56
        line_start: 55
        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: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: BUFSIZE_SMALL
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: RESERVED_BUFS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MAXREWRITE
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: REQURI_LEN
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: CAPTURE_LEN
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_SYSLOG_LEN
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: STARTUP_LOG_SIZE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: LINESIZE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_CFG_SIZE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10485760'
    - item_type: preproc_def
      name: MAX_LINES_TO_READ
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_LINE_ARGS
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '64'
    - item_type: preproc_def
      name: CRT_LINESIZE
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: MAX_CRT_ARGS
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: MAX_CLI_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: MAX_CFG_RECURSION
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_MATCH
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10'
    - item_type: preproc_def
      name: MAX_HTTP_HDR
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '101'
    - item_type: preproc_def
      name: MAX_HDR_HISTORY
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10'
    - item_type: preproc_def
      name: TRACE_MAX_MSG
      pos:
        line_end: 156
        line_start: 155
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: MAX_SESS_STKCTR
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: STKTABLE_EXTRA_DATA_TYPES
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STKTABLE_FILTER_LEN
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_READ_POLL_LOOPS
      pos:
        line_end: 177
        line_start: 176
        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: 186
        line_start: 185
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (7*1448)
    - item_type: preproc_def
      name: MIN_SPLICE_FORWARD
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: MAX_POLL_EVENTS
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '200'
    - item_type: preproc_def
      name: MAX_RULES_AT_ONCE
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '50'
    - item_type: preproc_def
      name: TV_ETERNITY
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (~0UL)
    - item_type: preproc_def
      name: TV_ETERNITY_MS
      pos:
        line_end: 217
        line_start: 216
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: BOOT_TIME_WRAP_SEC
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '20'
    - item_type: preproc_def
      name: MAX_DELAY_MS
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '60000'
    - item_type: preproc_def
      name: MAX_ACCEPT
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: RUNQUEUE_DEPTH
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '280'
    - item_type: preproc_def
      name: COOKIE_DELIM
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '''~'''
    - item_type: preproc_def
      name: COOKIE_DELIM_DATE
      pos:
        line_end: 265
        line_start: 264
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '''|'''
    - item_type: preproc_def
      name: ACL_MAX_RECURSE
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: CONN_RETRIES
      pos:
        line_end: 274
        line_start: 273
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: CHK_CONNTIME
      pos:
        line_end: 276
        line_start: 275
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: DEF_CHKINTR
      pos:
        line_end: 277
        line_start: 276
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: DEF_MAILALERTTIME
      pos:
        line_end: 278
        line_start: 277
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10000'
    - item_type: preproc_def
      name: DEF_FALLTIME
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DEF_RISETIME
      pos:
        line_end: 280
        line_start: 279
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2'
    - item_type: preproc_def
      name: DEF_AGENT_FALLTIME
      pos:
        line_end: 281
        line_start: 280
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEF_AGENT_RISETIME
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEF_CHECK_PATH
      pos:
        line_end: 283
        line_start: 282
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '""'
    - item_type: preproc_def
      name: DEF_HANA_ONERR
      pos:
        line_end: 286
        line_start: 285
        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: 287
        line_start: 286
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10'
    - item_type: preproc_def
      name: DEF_XFORWARDFOR_HDR
      pos:
        line_end: 290
        line_start: 289
        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: 293
        line_start: 292
        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: 299
        line_start: 298
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '100'
    - item_type: preproc_def
      name: DEFAULT_MAXCONN
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: SYSTEM_MAXCONN
    - item_type: preproc_def
      name: DEFAULT_MAXCONN
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '100'
    - item_type: preproc_def
      name: DEFAULT_MAXFD
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1048576'
    - item_type: preproc_def
      name: MASTER_MAXCONN
      pos:
        line_end: 343
        line_start: 342
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '100'
    - item_type: preproc_def
      name: SRV_CHK_INTER_THRES
      pos:
        line_end: 353
        line_start: 352
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: INET6_CONNECTIVITY_CACHE_TIME
      pos:
        line_end: 358
        line_start: 357
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '30000'
    - item_type: preproc_def
      name: STATS_VERSION_STRING
      pos:
        line_end: 366
        line_start: 365
        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: 373
        line_start: 372
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: STATS_DEFAULT_URI
      pos:
        line_end: 378
        line_start: 377
        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: 380
        line_start: 379
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '"/haproxy?stats"'
    - item_type: preproc_def
      name: STATS_DEFAULT_REALM
      pos:
        line_end: 385
        line_start: 384
        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: 387
        line_start: 386
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '"HAProxy Statistics"'
    - item_type: preproc_def
      name: MAX_SIGNAL
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '256'
    - item_type: preproc_def
      name: MAX_HOSTNAME_LEN
      pos:
        line_end: 400
        line_start: 399
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: MAXHOSTNAMELEN
    - item_type: preproc_def
      name: MAX_HOSTNAME_LEN
      pos:
        line_end: 402
        line_start: 401
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '64'
    - item_type: preproc_def
      name: HCHK_DESC_LEN
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '128'
    - item_type: preproc_def
      name: CONNECT_DEFAULT_CIPHERS
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: CONNECT_DEFAULT_CIPHERSUITES
      pos:
        line_end: 418
        line_start: 417
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: LISTEN_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: LISTEN_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: ECDHE_DEFAULT_CURVE
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '"prime256v1"'
    - item_type: preproc_def
      name: SSLCACHESIZE
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '20000'
    - item_type: preproc_def
      name: SSL_DEFAULT_DH_PARAM
      pos:
        line_end: 443
        line_start: 442
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: SSL_SESSION_MAX_COST
      pos:
        line_end: 448
        line_start: 447
        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: 453
        line_start: 452
        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: 457
        line_start: 456
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: STREAM_MAX_COST
      pos:
        line_end: 466
        line_start: 461
        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: 471
        line_start: 470
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0.97'
    - item_type: preproc_def
      name: HAPROXY_MEMMAX
      pos:
        line_end: 476
        line_start: 475
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DEFAULT_MAXZLIBMEM
      pos:
        line_end: 485
        line_start: 484
        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: 500
        line_start: 499
        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: 504
        line_start: 503
        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: 510
        line_start: 509
        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: 512
        line_start: 511
        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: 514
        line_start: 513
        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: 516
        line_start: 515
        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: 518
        line_start: 517
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: CONFIG_HAP_POOL_BUCKETS
      pos:
        line_end: 522
        line_start: 521
        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: 525
        line_start: 524
        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: 536
        line_start: 535
        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: 541
        line_start: 540
        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: 545
        line_start: 544
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '300'
    - item_type: preproc_def
      name: TLS_TICKETS_NO
      pos:
        line_end: 550
        line_start: 549
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: DEFAULT_PAT_LRU_SIZE
      pos:
        line_end: 560
        line_start: 559
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10000'
    - item_type: preproc_def
      name: MAX_POLLERS
      pos:
        line_end: 565
        line_start: 564
        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: 569
        line_start: 568
        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: 574
        line_start: 573
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '8'
    - item_type: preproc_def
      name: CACHE_TREE_NUM
      pos:
        line_end: 576
        line_start: 575
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RING_WAIT_QUEUES
      pos:
        line_end: 585
        line_start: 584
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '16'
    - item_type: preproc_def
      name: RING_WAIT_QUEUES
      pos:
        line_end: 587
        line_start: 586
        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: 589
        line_start: 588
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: RING_DFLT_QUEUES
      pos:
        line_end: 597
        line_start: 596
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MEMPROF_HASH_BITS
      pos:
        line_end: 604
        line_start: 603
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '10'
    - item_type: preproc_def
      name: MEMPROF_HASH_BUCKETS
      pos:
        line_end: 606
        line_start: 605
        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: 610
        line_start: 609
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEBUG_THREAD
      pos:
        line_end: 616
        line_start: 615
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEBUG_THREAD
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '0'
    - item_type: preproc_def
      name: DEBUG_COUNTERS
      pos:
        line_end: 624
        line_start: 623
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: DEBUG_MEMORY_POOLS
      pos:
        line_end: 628
        line_start: 627
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MAX_SELF_USE_QUEUE
      pos:
        line_end: 632
        line_start: 631
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '9'
    - item_type: preproc_def
      name: FWLC_LISTS_NB
      pos:
        line_end: 647
        line_start: 646
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '4'
    - item_type: preproc_def
      name: FWLC_MIN_FREE_ENTRIES
      pos:
        line_end: 661
        line_start: 660
        source_file: /src/haproxy/include/haproxy/defaults.h
      type_or_value: '500'
    - item_type: preproc_def
      name: QUIC_MAX_TX_MEM
      pos:
        line_end: 670
        line_start: 669
        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: 674
        line_start: 673
        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:
  - 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_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_UNSET_PARAM
      - name: FCGI_RULE_PASS_HDR
      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:
  - 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_DENY
      - name: HTTP_RULE_RES_STOP
      - name: HTTP_RULE_RES_YIELD
      - name: HTTP_RULE_RES_FYIELD
      - 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: 199
        line_start: 189
        source_file: /src/haproxy/include/haproxy/http_ana-t.h
    - enumerators:
      - name: HTTP_MSG_RQBEFORE
        value: '0'
      - name: HTTP_MSG_DATA
        value: '3'
      - name: HTTP_MSG_BODY
        value: '2'
      - name: HTTP_MSG_RPBEFORE
        value: '1'
      - name: HTTP_MSG_ENDING
        value: '4'
      - 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: 221
        line_start: 204
        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: flags
        type: unsigned int
      - name: '*chn'
        type: struct channel
      item_type: struct
      name: http_msg
      pos:
        line_end: 232
        line_start: 227
        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: 257
        line_start: 238
        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: []
    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
      item_type: struct
      name: quic_connection_id
      pos:
        line_end: 41
        line_start: 31
        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
  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: shards[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: commitupdate
        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: 242
        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: 249
        line_start: 244
        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: 257
        line_start: 254
        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: 265
        line_start: 262
        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: 274
        line_start: 268
        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
      item_type: struct
      name: quic_counters
      pos:
        line_end: 101
        line_start: 57
        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: '*counters'
        type: struct dns_counters
      - name: list
        type: struct list
      item_type: struct
      name: dns_nameserver
      pos:
        line_end: 157
        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: 183
        line_start: 160
        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.3"'
    - 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: 346
        line_start: 345
        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
      item_type: struct
      name: global_ssl
      pos:
        line_end: 338
        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: 355
        line_start: 349
        source_file: /src/haproxy/include/haproxy/ssl_sock-t.h
    typedefs:
    - item_type: typedef
      name: "(*ssl_sock_msg_callback_func)(struct connection *conn,\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: PCLI_F_BIDIR
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x08000 '
    - item_type: preproc_def
      name: PCLI_F_PROMPT
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x10000'
    - item_type: preproc_def
      name: PCLI_F_PAYLOAD
      pos:
        line_end: 139
        line_start: 138
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x20000'
    - item_type: preproc_def
      name: PCLI_F_RELOAD
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/haproxy/include/haproxy/stream-t.h
      type_or_value: '0x40000 '
    - item_type: preproc_def
      name: PCLI_F_TIMED
      pos:
        line_end: 141
        line_start: 140
        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: bytes_in
        type: long long
      - name: bytes_out
        type: long long
      item_type: struct
      name: strm_logs
      pos:
        line_end: 229
        line_start: 213
        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: struct http_txn
      - 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: pcli_next_pid
        type: int
      - name: pcli_flags
        type: int
      - name: pcli_payload_pat[8]
        type: char
      - 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: 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: 346
        line_start: 231
        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
  - 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: 50
        line_start: 46
        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
    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_RFC5424
      - name: LOG_FORMAT_PRIO
      - name: LOG_FORMAT_RFC3164
      - name: LOG_FORMAT_LOCAL
      - 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_TIME
      - name: LOG_META_HOST
      - name: LOG_META_TAG
      - name: LOG_META_PID
      - 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_BACKEND
      - name: LOG_TARGET_BUFFER
      - name: LOG_TARGET_FD
      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_SESS_KILL
      - name: LOG_ORIG_SESS_ERROR
      - name: LOG_ORIG_TXN_REQUEST
      - name: LOG_ORIG_TXN_ACCEPT
      - 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
  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_OBFS
        value: '1'
      - name: FORWARDED_HEADER_PORT
        value: '2'
      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_BY
        value: '0x02'
      - name: FORWARDED_HEADER_PROTO
        value: '0x08'
      - name: FORWARDED_HEADER_HOST
        value: '0x04'
      - 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: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/arg-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ARGF_REG_GLOB
      pos:
        line_end: 99
        line_start: 98
        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: 133
        line_start: 122
        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: 149
        line_start: 140
        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: 120
        line_start: 106
        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\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[8];
          \   /* Payload pattern */\n\t\tchar *payload;          /* Pointer on the
          payload. NULL if no payload */\n\t\tuint32_t anon_key;      /* the key to
          anonymise with the hash in cli */\n\t\t/* XXX 4 unused bytes here */\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}"
      - 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\tvoid *shadow;                    /* shadow of svcctx
          above, do not use! */\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_set_sess_last
  - srv_willbe_usable
  - srv_currently_usable
  - srv_lb_commit_status
  - srv_lb_status_changed
  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: 42
        line_start: 41
        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: 43
        line_start: 42
        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: 44
        line_start: 43
        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: 47
        line_start: 46
        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: 50
        line_start: 49
        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: 54
        line_start: 53
        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: 57
        line_start: 56
        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: 63
        line_start: 62
        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: 66
        line_start: 65
        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: 67
        line_start: 66
        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: 68
        line_start: 67
        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: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '1      '
    - item_type: preproc_def
      name: DNS_RTYPE_A
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '1       '
    - item_type: preproc_def
      name: DNS_RTYPE_CNAME
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/haproxy/include/haproxy/resolvers-t.h
      type_or_value: '5       '
    - 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: int32_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: '*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: 214
        line_start: 208
        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
      item_type: struct
      name: filter
      pos:
        line_end: 235
        line_start: 225
        source_file: /src/haproxy/include/haproxy/filters-t.h
    - fields:
      - name: filters
        type: struct list
      - name: '*current[2]'
        type: struct filter
      - name: flags
        type: unsigned short
      - name: nb_req_data_filters
        type: unsigned char
      - name: nb_rsp_data_filters
        type: unsigned char
      - name: offset[2]
        type: unsigned long long
      item_type: struct
      name: strm_flt
      pos:
        line_end: 250
        line_start: 240
        source_file: /src/haproxy/include/haproxy/filters-t.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/haproxy/include/haproxy/qmux_http.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    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
  - 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_handshake
      - name: ssl_encryption_application
      - name: ssl_encryption_early_data
      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: HA_OPENSSL_VERSION_NUMBER
      pos:
        line_end: 90
        line_start: 89
        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: 92
        line_start: 91
        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: 96
        line_start: 95
        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: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: SSLeay
    - item_type: preproc_def
      name: MAC_CTX
      pos:
        line_end: 178
        line_start: 177
        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: 179
        line_start: 178
        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: 180
        line_start: 179
        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: 181
        line_start: 180
        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: 186
        line_start: 185
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: HMAC_CTX
    - item_type: preproc_def
      name: HASSL_DH
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: DH
    - item_type: preproc_def
      name: HASSL_DH_free
      pos:
        line_end: 188
        line_start: 187
        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: 189
        line_start: 188
        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: 362
        line_start: 361
        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: 383
        line_start: 382
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: const
    - item_type: preproc_def
      name: TLSEXT_signature_anonymous
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TLSEXT_signature_rsa
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TLSEXT_signature_dsa
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TLSEXT_signature_ecdsa
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '3'
    - item_type: preproc_def
      name: X509_getm_notBefore
      pos:
        line_end: 420
        line_start: 419
        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: 421
        line_start: 420
        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: 425
        line_start: 424
        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: 429
        line_start: 428
        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: 433
        line_start: 432
        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: 438
        line_start: 437
        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: 440
        line_start: 439
        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: 444
        line_start: 443
        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: 451
        line_start: 450
        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: 457
        line_start: 456
        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: 461
        line_start: 460
        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: 465
        line_start: 464
        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: 470
        line_start: 469
        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: 474
        line_start: 473
        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: 478
        line_start: 477
        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: 482
        line_start: 481
        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: 486
        line_start: 485
        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: 490
        line_start: 489
        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: 494
        line_start: 493
        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: 498
        line_start: 497
        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: 502
        line_start: 501
        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: 533
        line_start: 532
        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: 534
        line_start: 533
        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: 544
        line_start: 543
        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: 548
        line_start: 547
        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: 568
        line_start: 567
        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: 571
        line_start: 570
        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: 574
        line_start: 573
        source_file: /src/haproxy/include/haproxy/openssl-compat.h
      type_or_value: '75'
    structs: []
    typedefs:
    - item_type: typedef
      name: OCSP_CERTID
      pos:
        line_end: 194
        line_start: 194
        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: 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:
  - 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: 33
        line_start: 32
        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: 34
        line_start: 33
        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: 35
        line_start: 34
        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: 36
        line_start: 35
        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: 37
        line_start: 36
        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: 38
        line_start: 37
        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: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL <<  6)
    - item_type: preproc_def
      name: CHK_EV_HCHK
      pos:
        line_end: 41
        line_start: 39
        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: 43
        line_start: 42
        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: 44
        line_start: 43
        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: 45
        line_start: 44
        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: 46
        line_start: 45
        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: 47
        line_start: 46
        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: 48
        line_start: 47
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 12)
    - item_type: preproc_def
      name: CHK_EV_TCPCHK
      pos:
        line_end: 50
        line_start: 48
        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: 52
        line_start: 51
        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: 53
        line_start: 52
        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: 54
        line_start: 53
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 15)
    - item_type: preproc_def
      name: CHK_EV_RX
      pos:
        line_end: 55
        line_start: 54
        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: 57
        line_start: 56
        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: 58
        line_start: 57
        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: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/check.h
      type_or_value: (1ULL << 18)
    - item_type: preproc_def
      name: CHK_EV_TX
      pos:
        line_end: 60
        line_start: 59
        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_RUNNING
      - name: SPOP_CS_CLOSING
      - name: SPOP_CS_ERROR
      - name: SPOP_CS_AGENT_HELLO
      - 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_HLOC
      - name: SPOP_SS_HREM
      - name: SPOP_SS_ERROR
      - 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:
  - 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: LISTENER_LOCK
      - name: PATREF_LOCK
      - name: LUA_LOCK
      - name: TLSKEYS_REF_LOCK
      - name: DICT_LOCK
      - name: CACHE_LOCK
      - name: DEBUG2_LOCK
      - name: DEBUG5_LOCK
      - name: IDLE_CONNS_LOCK
      - name: OTHER_LOCK
      - name: TASK_RQ_LOCK
      - name: PROXY_LOCK
      - name: LBPRM_LOCK
      - name: APPLETS_LOCK
      - name: SSL_LOCK
      - name: SSL_GEN_CERTS_LOCK
      - name: NOTIF_LOCK
      - name: SPOE_APPLET_LOCK
      - name: DNS_LOCK
      - name: PIPES_LOCK
      - name: SSL_SERVER_LOCK
      - name: RING_LOCK
      - name: TASK_WQ_LOCK
      - name: STK_SESS_LOCK
      - name: PEER_LOCK
      - name: COMP_POOL_LOCK
      - name: PID_LIST_LOCK
      - name: AUTH_LOCK
      - name: SNI_LOCK
      - name: SFT_LOCK
      - name: QC_CID_LOCK
      - name: GUID_LOCK
      - name: DEBUG1_LOCK
      - name: DEBUG3_LOCK
      - name: SERVER_LOCK
      - name: SIGNALS_LOCK
      - name: STK_TABLE_LOCK
      - name: STK_TABLE_UPDT_LOCK
      - name: PATEXP_LOCK
      - name: VARS_LOCK
      - name: SHCTX_LOCK
      - name: PROTO_LOCK
      - name: QUEUE_LOCK
      - name: OCSP_LOCK
      - name: DEBUG4_LOCK
      - name: LOCK_LABELS
      - name: CKCH_LOCK
      item_type: enum
      name: lock_label
      pos:
        line_end: 229
        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_empty
  - 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_P
      - name: FCGI_CS_RECORD_H
      - name: FCGI_CS_SETTINGS
      - name: FCGI_CS_RECORD_D
      - 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_ERROR
      - name: FCGI_SS_OPEN
      - name: FCGI_SS_HREM
      - name: FCGI_SS_HLOC
      - 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_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_STOP_GROUP
      - name: PBUF_TYPE_64BIT
      - name: PBUF_TYPE_START_GROUP
      - 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_INT32
      - name: PBUF_T_VARINT_UINT64
      - name: PBUF_T_VARINT_INT64
      - name: PBUF_T_VARINT_UINT32
      - 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_STARTING
      - name: SRV_ST_RUNNING
      - 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_CMAINT
        value: '0x04'
      - name: SRV_ADMF_FDRAIN
        value: '0x08'
      - name: SRV_ADMF_IDRAIN
        value: '0x10'
      - 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_IP
        value: '4'
      - name: SRV_IADDR_NONE
        value: '1'
      - name: SRV_IADDR_LIBC
        value: '2'
      - name: SRV_IADDR_LAST
        value: '3'
      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_FULLY_DOWN
        value: '0'
      - name: SRV_INIT_STATE_DOWN
      - name: SRV_INIT_STATE_UP
      - name: SRV_INIT_STATE_FULLY_UP
      item_type: enum
      name: srv_init_state
      pos:
        line_end: 117
        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: 214
        line_start: 211
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_ADM_STCHGC_NONE
        value: '0'
      - name: SRV_ADM_STCHGC_DNS_NOIP
      - name: SRV_ADM_STCHGC_DNS_NOENT
      - name: SRV_ADM_STCHGC_DNS_NX
      - 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: 227
        line_start: 217
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_OP_STCHGC_NONE
        value: '0'
      - name: SRV_OP_STCHGC_AGENT
      - name: SRV_OP_STCHGC_HEALTH
      - name: SRV_OP_STCHGC_CLI
      - 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: 238
        line_start: 230
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SRV_HASH_KEY_ID
        value: '0'
      - name: SRV_HASH_KEY_ADDR_PORT
      - name: SRV_HASH_KEY_ADDR
      item_type: enum
      name: srv_hash_key
      pos:
        line_end: 253
        line_start: 249
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SSL_RENEGOTIATE_DFLT
        value: '0'
      - name: SSL_RENEGOTIATE_ON
      - name: SSL_RENEGOTIATE_OFF
      item_type: enum
      name: renegotiate_mode
      pos:
        line_end: 317
        line_start: 313
        source_file: /src/haproxy/include/haproxy/server-t.h
    - enumerators:
      - name: SERVER_INETADDR_UPDATER_BY_NONE
        value: '0'
      - name: SERVER_INETADDR_UPDATER_BY_DNS_CACHE
      - name: SERVER_INETADDR_UPDATER_BY_CLI
      - name: SERVER_INETADDR_UPDATER_BY_DNS_AR
      - name: SERVER_INETADDR_UPDATER_BY_LUA
      - name: SERVER_INETADDR_UPDATER_BY_DNS_RESOLVER
      item_type: enum
      name: server_inetaddr_updater_by
      pos:
        line_end: 705
        line_start: 695
        source_file: /src/haproxy/include/haproxy/server-t.h
    preproc_defs:
    - item_type: preproc_def
      name: SRV_STATE_FILE_VERSION
      pos:
        line_end: 121
        line_start: 120
        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: 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_MAX
      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_FIELD_NAMES
      pos:
        line_end: 149
        line_start: 123
        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: 151
        line_start: 150
        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: 152
        line_start: 151
        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: 153
        line_start: 152
        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: 154
        line_start: 153
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '2000'
    - item_type: preproc_def
      name: SRV_F_BACKUP
      pos:
        line_end: 157
        line_start: 156
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0001        '
    - item_type: preproc_def
      name: SRV_F_MAPPORTS
      pos:
        line_end: 158
        line_start: 157
        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: 159
        line_start: 158
        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: 160
        line_start: 159
        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: 161
        line_start: 160
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0010        '
    - item_type: preproc_def
      name: SRV_F_RHTTP
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0020        '
    - item_type: preproc_def
      name: SRV_F_AGENTPORT
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0040        '
    - item_type: preproc_def
      name: SRV_F_AGENTADDR
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0080        '
    - item_type: preproc_def
      name: SRV_F_COOKIESET
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0100        '
    - item_type: preproc_def
      name: SRV_F_FASTOPEN
      pos:
        line_end: 166
        line_start: 165
        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: 167
        line_start: 166
        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: 168
        line_start: 167
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0800       '
    - item_type: preproc_def
      name: SRV_F_DYNAMIC
      pos:
        line_end: 169
        line_start: 168
        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: 170
        line_start: 169
        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: 171
        line_start: 170
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x4000      '
    - item_type: preproc_def
      name: SRV_F_DELETED
      pos:
        line_end: 172
        line_start: 171
        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: 173
        line_start: 172
        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: 174
        line_start: 173
        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: 175
        line_start: 174
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x40000    '
    - item_type: preproc_def
      name: SRV_PP_V1
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0001   '
    - item_type: preproc_def
      name: SRV_PP_V2
      pos:
        line_end: 179
        line_start: 178
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0002   '
    - item_type: preproc_def
      name: SRV_PP_ENABLED
      pos:
        line_end: 180
        line_start: 179
        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: 181
        line_start: 180
        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: 182
        line_start: 181
        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: 183
        line_start: 182
        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: 184
        line_start: 183
        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: 185
        line_start: 184
        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: 186
        line_start: 185
        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: 187
        line_start: 186
        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: 188
        line_start: 187
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x0200   '
    - item_type: preproc_def
      name: SRV_STATUS_OK
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0   '
    - item_type: preproc_def
      name: SRV_STATUS_INTERNAL
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '1   '
    - item_type: preproc_def
      name: SRV_STATUS_NOSRV
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '2   '
    - item_type: preproc_def
      name: SRV_STATUS_FULL
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '3   '
    - item_type: preproc_def
      name: SRV_STATUS_QUEUED
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '4   '
    - item_type: preproc_def
      name: SRV_UWGHT_RANGE
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '256'
    - item_type: preproc_def
      name: SRV_UWGHT_MAX
      pos:
        line_end: 199
        line_start: 198
        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: 200
        line_start: 199
        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: 201
        line_start: 200
        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: 204
        line_start: 203
        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: 205
        line_start: 204
        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: 206
        line_start: 205
        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: 207
        line_start: 206
        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: 208
        line_start: 207
        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: 209
        line_start: 208
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x800  '
    - item_type: preproc_def
      name: MAX_ALPN_SIZE
      pos:
        line_end: 320
        line_start: 319
        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: 718
        line_start: 715
        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: 722
        line_start: 719
        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: 726
        line_start: 723
        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: 730
        line_start: 727
        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: 734
        line_start: 731
        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: 799
        line_start: 798
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x01    '
    - item_type: preproc_def
      name: SRV_PARSE_TEMPLATE
      pos:
        line_end: 800
        line_start: 799
        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: 801
        line_start: 800
        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: 802
        line_start: 801
        source_file: /src/haproxy/include/haproxy/server-t.h
      type_or_value: '0x08    '
    - item_type: preproc_def
      name: SRV_PARSE_DYNAMIC
      pos:
        line_end: 803
        line_start: 802
        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: 804
        line_start: 803
        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: 246
        line_start: 240
        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: 262
        line_start: 259
        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: 278
        line_start: 265
        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: '*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: 293
        line_start: 281
        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: 310
        line_start: 305
        source_file: /src/haproxy/include/haproxy/server-t.h
    - fields:
      - name: nego_alpn[MAX_ALPN_SIZE]
        type: char
      item_type: struct
      name: path_parameters
      pos:
        line_end: 323
        line_start: 321
        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: queueslength
        type: unsigned 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: 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\tchar
          *sni; /* 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: 545
        line_start: 326
        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: 583
        line_start: 548
        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: 598
        line_start: 586
        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: 636
        line_start: 606
        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: 656
        line_start: 644
        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: 675
        line_start: 664
        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: 690
        line_start: 680
        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: 714
        line_start: 706
        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: 759
        line_start: 748
        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: 768
        line_start: 764
        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: 784
        line_start: 778
        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: 796
        line_start: 792
        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
  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_random32
  - ha_random
  - statistical_prng
  - statistical_prng_range
  - ptr_hash
  - ptr2_hash
  - update_char_fingerprint
  - warn_if_lower
  - CASE_ERR
  - errname
  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: 1157
        line_start: 1154
        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_FAIL
      - name: CLI_WAIT_ERR_EXP
      - name: CLI_WAIT_ERR_INTR
      item_type: enum
      name: cli_wait_err
      pos:
        line_end: 97
        line_start: 92
        source_file: /src/haproxy/include/haproxy/cli-t.h
    - enumerators:
      - name: CLI_WAIT_COND_NONE
      - name: CLI_WAIT_COND_SRV_UNUSED
      item_type: enum
      name: cli_wait_cond
      pos:
        line_end: 102
        line_start: 99
        source_file: /src/haproxy/include/haproxy/cli-t.h
    preproc_defs:
    - item_type: preproc_def
      name: ACCESS_LVL_NONE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: ACCESS_LVL_USER
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: ACCESS_LVL_OPER
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: ACCESS_LVL_ADMIN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: ACCESS_LVL_MASK
      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_FD_LISTENERS
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: ACCESS_MASTER
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: ACCESS_MASTER_ONLY
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0010  '
    - item_type: preproc_def
      name: ACCESS_EXPERT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0020  '
    - item_type: preproc_def
      name: ACCESS_EXPERIMENTAL
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '0x0040'
    - item_type: preproc_def
      name: ACCESS_MCLI_DEBUG
      pos:
        line_end: 39
        line_start: 38
        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: 40
        line_start: 39
        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: 41
        line_start: 40
        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: 44
        line_start: 43
        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: 45
        line_start: 44
        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: 46
        line_start: 45
        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: 47
        line_start: 46
        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: 48
        line_start: 47
        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: 49
        line_start: 48
        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: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '(1 << 6) '
    - item_type: preproc_def
      name: CLI_PREFIX_KW_NB
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/cli-t.h
      type_or_value: '5'
    - item_type: preproc_def
      name: CLI_MAX_MATCHES
      pos:
        line_end: 53
        line_start: 52
        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: 54
        line_start: 53
        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: 85
        line_start: 81
        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: 110
        line_start: 104
        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
      item_type: struct
      name: cli_kw
      pos:
        line_end: 121
        line_start: 112
        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: 126
        line_start: 123
        source_file: /src/haproxy/include/haproxy/cli-t.h
    typedefs: []
    union: []
- function_names:
  - EXTRA_COUNTERS
  - EXTRA_COUNTERS_GET
  - EXTRA_COUNTERS_REGISTER
  - EXTRA_COUNTERS_ADD
  - EXTRA_COUNTERS_ALLOC
  - EXTRA_COUNTERS_INIT
  - EXTRA_COUNTERS_FREE
  source_file: /src/haproxy/include/haproxy/stats-t.h
  types:
    enum:
    - enumerators:
      - name: STAT_STATE_INIT
        value: '0'
      - name: STAT_STATE_INFO
      - name: STAT_STATE_HEAD
      - name: STAT_STATE_LIST
      - name: STAT_STATE_END
      - name: STAT_STATE_FIN
      item_type: enum
      name: stat_state
      pos:
        line_end: 118
        line_start: 111
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: STAT_ST_INIT
        value: '0'
      - name: STAT_ST_LIST
      - name: STAT_ST_HEAD
      - name: STAT_ST_FIN
      - name: STAT_ST_INFO
      - name: STAT_ST_END
      item_type: enum
      name: obsolete_stat_state
      pos:
        line_end: 130
        line_start: 123
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: FF_EMPTY
        value: '0x00000000'
      - name: FF_S32
        value: '0x00000001'
      - name: FF_U64
        value: '0x00000004'
      - name: FF_U32
        value: '0x00000002'
      - name: FF_S64
        value: '0x00000003'
      - name: FF_STR
        value: '0x00000005'
      - name: FF_FLT
        value: '0x00000006'
      - name: FF_MASK
        value: '0x000000FF'
      item_type: enum
      name: field_format
      pos:
        line_end: 219
        line_start: 210
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: FO_METRIC
        value: '0x00000000'
      - name: FO_CONFIG
        value: '0x00000300'
      - name: FO_KEY
        value: '0x00000200'
      - name: FO_STATUS
        value: '0x00000100'
      - name: FO_PRODUCT
        value: '0x00000400'
      - name: FO_MASK
        value: '0x0000FF00'
      item_type: enum
      name: field_origin
      pos:
        line_end: 228
        line_start: 221
        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_AVG
        value: '0x000B0000'
      - name: FN_MASK
        value: '0x00FF0000'
      - name: FN_OUTPUT
        value: '0x000A0000'
      item_type: enum
      name: field_nature
      pos:
        line_end: 244
        line_start: 230
        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: 252
        line_start: 246
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: ST_I_INF_MAXSOCK
      - name: ST_I_INF_SESS_RATE_LIMIT
      - name: ST_I_INF_CURR_STRM
      - name: ST_I_INF_MAX_ZLIB_MEM_USAGE
      - name: ST_I_INF_FAILED_RESOLUTIONS
      - name: ST_I_INF_JOBS
      - name: ST_I_INF_MEMMAX_BYTES
      - 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_MAX
      - name: ST_I_INF_POOL_FAILED
      - name: ST_I_INF_MAX_CONN_RATE
      - name: ST_I_INF_COMPRESS_BPS_RATE_LIM
      - name: ST_I_INF_DROPPED_LOGS
      - name: ST_I_INF_BOOTTIME_MS
      - name: ST_I_INF_DESCRIPTION
      - name: ST_I_INF_CUM_LOG_MSGS
      - name: ST_I_INF_NBTHREAD
      - name: ST_I_INF_CUM_REQ
      - name: ST_I_INF_SSL_FRONTEND_KEY_RATE
      - name: ST_I_INF_RELEASE_DATE
      - name: ST_I_INF_CUM_CONN
      - name: ST_I_INF_MAX_SSL_RATE
      - name: ST_I_INF_NODE
      - name: ST_I_INF_DEBUG_COMMANDS_ISSUED
      - name: ST_I_INF_PATTERNS_FREED
      - name: ST_I_INF_NAME
      - name: ST_I_INF_MEMMAX_MB
      - name: ST_I_INF_PIPES_FREE
      - name: ST_I_INF_SSL_CACHE_MISSES
      - name: ST_I_INF_CONNECTED_PEERS
      - name: ST_I_INF_TAINTED
      - name: ST_I_INF_HARD_MAXCONN
      - name: ST_I_INF_SSL_RATE
      - name: ST_I_INF_RUN_QUEUE
      - name: ST_I_INF_TOTAL_SPLICED_BYTES_OUT
      - name: ST_I_INF_WARN_BLOCKED
      - name: ST_I_INF_LISTENERS
      - name: ST_I_INF_POOL_USED_BYTES
      - name: ST_I_INF_SSL_BACKEND_MAX_KEY_RATE
      - name: ST_I_INF_UPTIME
      - name: ST_I_INF_MAXPIPES
      - name: ST_I_INF_PID
      - name: ST_I_INF_CUM_SSL_CONNS
      - name: ST_I_INF_SSL_BACKEND_KEY_RATE
      - name: ST_I_INF_POOL_ALLOC_BYTES
      - name: ST_I_INF_UNSTOPPABLE_JOBS
      - name: ST_I_INF_ULIMIT_N
      - name: ST_I_INF_SESS_RATE
      - name: ST_I_INF_ZLIB_MEM_USAGE
      - name: ST_I_INF_BUSY_POLLING
      - name: ST_I_INF_NICED_TASKS
      - name: ST_I_INF_STOPPING
      - name: ST_I_INF_BUILD_INFO
      - 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_MAXCONN_REACHED
      - name: ST_I_INF_COMPRESS_BPS_OUT
      - name: ST_I_INF_POOL_USED_MB
      - name: ST_I_INF_CONN_RATE_LIMIT
      - name: ST_I_INF_POOL_ALLOC_MB
      - name: ST_I_INF_CONN_RATE
      - name: ST_I_INF_COMPRESS_BPS_IN
      - name: ST_I_INF_WARNINGS
      - name: ST_I_INF_CURR_CONN
      - name: ST_I_INF_SSL_RATE_LIMIT
      - name: ST_I_INF_IDLE_PCT
      - name: ST_I_INF_BYTES_OUT_RATE
      - name: ST_I_INF_PATTERNS_ADDED
      - name: ST_I_INF_ACTIVE_PEERS
      - name: ST_I_INF_START_TIME_SEC
      - name: ST_I_INF_UPTIME_SEC
      - name: ST_I_INF_PIPES_USED
      - name: ST_I_INF_SSL_CACHE_LOOKUPS
      - name: ST_I_INF_TOTAL_BYTES_OUT
      - name: ST_I_INF_TASKS
      - name: ST_I_INF_VERSION
      - name: ST_I_INF_MAXCONN
      - name: ST_I_INF_MAX_SESS_RATE
      - name: ST_I_INF_CUM_STRM
      item_type: enum
      name: stat_idx_info
      pos:
        line_end: 344
        line_start: 259
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: ST_I_PX_WRETR
      - name: ST_I_PX_THROTTLE
      - name: ST_I_PX_HANAFAIL
      - name: ST_I_PX_TTIME
      - name: ST_I_PX_MODE
      - name: ST_I_PX_CT_MAX
      - name: ST_I_PX_H3SESS
      - name: ST_I_PX_COMP_OUT
      - name: ST_I_PX_CHECK_FALL
      - name: ST_I_PX_SLIM
      - name: ST_I_PX_BCK
      - name: ST_I_PX_CHECK_STATUS
      - name: ST_I_PX_DSES
      - name: ST_I_PX_NEED_CONN_EST
      - name: ST_I_PX_HRSP_5XX
      - name: ST_I_PX_ECON
      - name: ST_I_PX_IID
      - name: ST_I_PX_ADDR
      - name: ST_I_PX_CTIME
      - name: ST_I_PX_SRV_ILIM
      - name: ST_I_PX_H1SESS
      - name: ST_I_PX_AGENT_DESC
      - name: ST_I_PX_SCUR
      - name: ST_I_PX_WEIGHT
      - name: ST_I_PX_RATE_LIM
      - name: ST_I_PX_SRV_ABRT
      - name: ST_I_PX_INTERCEPTED
      - name: ST_I_PX_SAFE_CONN_CUR
      - name: ST_I_PX_PROTO
      - name: ST_I_PX_QMAX
      - name: ST_I_PX_STATUS
      - name: ST_I_PX_RATE
      - name: ST_I_PX_CLI_ABRT
      - name: ST_I_PX_CHECK_DESC
      - name: ST_I_PX_CONN_TOT
      - name: ST_I_PX_IDLE_CONN_CUR
      - name: ST_I_PX_H3REQ
      - name: ST_I_PX_DREQ
      - name: ST_I_PX_DOWNTIME
      - name: ST_I_PX_HRSP_2XX
      - name: ST_I_PX_LAST_CHK
      - name: ST_I_PX_AGENT_HEALTH
      - name: ST_I_PX_CACHE_LOOKUPS
      - name: ST_I_PX_AGG_CHECK_STATUS
      - name: ST_I_PX_SVNAME
      - name: ST_I_PX_TRACKED
      - name: ST_I_PX_AGENT_CODE
      - name: ST_I_PX_REQ_RATE_MAX
      - name: ST_I_PX_CONN_RATE
      - name: ST_I_PX_TT_MAX
      - name: ST_I_PX_H1REQ
      - name: ST_I_PX_AGENT_RISE
      - name: ST_I_PX_COMP_RSP
      - name: ST_I_PX_BIN
      - name: ST_I_PX_CHKDOWN
      - name: ST_I_PX_CHECK_DURATION
      - name: ST_I_PX_CONNECT
      - name: ST_I_PX_AGG_SRV_STATUS
      - name: ST_I_PX_STOT
      - name: ST_I_PX_CHKFAIL
      - name: ST_I_PX_CHECK_CODE
      - name: ST_I_PX_COMP_BYP
      - name: ST_I_PX_CHECK_HEALTH
      - name: ST_I_PX_WREW
      - name: ST_I_PX_UWEIGHT
      - name: ST_I_PX_ERESP
      - name: ST_I_PX_SID
      - name: ST_I_PX_RTIME
      - name: ST_I_PX_COOKIE
      - name: ST_I_PX_HRSP_OTHER
      - name: ST_I_PX_QT_MAX
      - name: ST_I_PX_H2SESS
      - name: ST_I_PX_CHECK_RISE
      - name: ST_I_PX_SMAX
      - name: ST_I_PX_ACT
      - name: ST_I_PX_RATE_MAX
      - name: ST_I_PX_COMP_IN
      - name: ST_I_PX_DCON
      - name: ST_I_PX_USED_CONN_CUR
      - name: ST_I_PX_PRIV_IDLE_CUR
      - name: ST_I_PX_HRSP_4XX
      - name: ST_I_PX_QTIME
      - name: ST_I_PX_EREQ
      - name: ST_I_PX_PID
      - name: ST_I_PX_SRV_ICUR
      - name: ST_I_PX_SESS_OTHER
      - name: ST_I_PX_PXNAME
      - name: ST_I_PX_DRESP
      - name: ST_I_PX_QLIMIT
      - name: ST_I_PX_LAST_AGT
      - name: ST_I_PX_HRSP_3XX
      - name: ST_I_PX_CACHE_HITS
      - name: ST_I_PX_SRID
      - name: ST_I_PX_QCUR
      - name: ST_I_PX_TYPE
      - name: ST_I_PX_AGENT_DURATION
      - name: ST_I_PX_REQ_TOT
      - name: ST_I_PX_CONN_RATE_MAX
      - name: ST_I_PX_EINT
      - name: ST_I_PX_H2REQ
      - name: ST_I_PX_MAX
      - name: ST_I_PX_AGENT_FALL
      - name: ST_I_PX_LASTSESS
      - name: ST_I_PX_BOUT
      - name: ST_I_PX_LASTCHG
      - name: ST_I_PX_HRSP_1XX
      - name: ST_I_PX_REUSE
      - name: ST_I_PX_AGG_SRV_CHECK_STATUS
      - name: ST_I_PX_REQ_RATE
      - name: ST_I_PX_ALGO
      - name: ST_I_PX_AGENT_STATUS
      - name: ST_I_PX_WREDIS
      - name: ST_I_PX_LBTOT
      - name: ST_I_PX_RT_MAX
      - name: ST_I_PX_REQ_OTHER
      item_type: enum
      name: stat_idx_px
      pos:
        line_end: 494
        line_start: 376
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: COUNTERS_FE
        value: '0'
      - name: COUNTERS_RSLV
      - name: COUNTERS_LI
      - name: COUNTERS_SV
      - name: COUNTERS_BE
      - name: COUNTERS_OFF_END
      item_type: enum
      name: counters_type
      pos:
        line_end: 522
        line_start: 514
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: STATS_DOMAIN_PROXY
        value: '0'
      - name: STATS_DOMAIN_MASK
        value: '0xff'
      - name: STATS_DOMAIN_COUNT
      - name: STATS_DOMAIN_RESOLVERS
      item_type: enum
      name: stats_domain
      pos:
        line_end: 555
        line_start: 549
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - enumerators:
      - name: STATS_PX_CAP_FE
        value: '0x01'
      - name: STATS_PX_CAP_LI
        value: '0x08'
      - name: STATS_PX_CAP_SRV
        value: '0x04'
      - name: STATS_PX_CAP_BE
        value: '0x02'
      - name: STATS_PX_CAP_MASK
        value: '0xff'
      item_type: enum
      name: stats_domain_px_cap
      pos:
        line_end: 565
        line_start: 558
        source_file: /src/haproxy/include/haproxy/stats-t.h
    preproc_defs:
    - item_type: preproc_def
      name: STAT_F_FMT_HTML
      pos:
        line_end: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 33
        line_start: 32
        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: 34
        line_start: 33
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000010    '
    - item_type: preproc_def
      name: STAT_F_ADMIN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000020    '
    - item_type: preproc_def
      name: STAT_F_CHUNKED
      pos:
        line_end: 36
        line_start: 35
        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: 37
        line_start: 36
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000080    '
    - item_type: preproc_def
      name: STAT_F_HIDEVER
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000100    '
    - item_type: preproc_def
      name: STAT_F_SHNODE
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000200    '
    - item_type: preproc_def
      name: STAT_F_SHDESC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00000400    '
    - item_type: preproc_def
      name: STAT_F_SHLGNDS
      pos:
        line_end: 42
        line_start: 41
        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: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00001000    '
    - item_type: preproc_def
      name: STAT_F_SHMODULES
      pos:
        line_end: 44
        line_start: 43
        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: 45
        line_start: 44
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00004000    '
    - item_type: preproc_def
      name: STAT_F_CONVDONE
      pos:
        line_end: 46
        line_start: 45
        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: 47
        line_start: 46
        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: 48
        line_start: 47
        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: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x00800000    '
    - item_type: preproc_def
      name: STAT_F_STARTED
      pos:
        line_end: 51
        line_start: 50
        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: 53
        line_start: 52
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0x0000000f'
    - item_type: preproc_def
      name: STATS_TYPE_FE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STATS_TYPE_BE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STATS_TYPE_SV
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: STATS_TYPE_SO
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '3'
    - item_type: preproc_def
      name: STATS_DOMAIN
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/stats-t.h
      type_or_value: '(0)               '
    - item_type: preproc_def
      name: STATS_PX_CAP
      pos:
        line_end: 61
        line_start: 60
        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: 348
        line_start: 347
        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: 349
        line_start: 348
        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: 350
        line_start: 349
        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: 569
        line_start: 568
        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: 570
        line_start: 569
        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: 571
        line_start: 570
        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: 572
        line_start: 571
        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: 573
        line_start: 572
        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: 574
        line_start: 573
        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: 575
        line_start: 574
        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: 576
        line_start: 575
        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: 577
        line_start: 576
        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: 366
        line_start: 352
        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: 500
        line_start: 497
        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: 512
        line_start: 502
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - fields:
      - name: list
        type: struct list
      - name: '*name'
        type: char
      - name: (*fill_stats)(void *data, 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: 540
        line_start: 525
        source_file: /src/haproxy/include/haproxy/stats-t.h
    - fields:
      - name: '*data'
        type: char
      - name: size
        type: size_t
      - name: type
        type: enum counters_type
      item_type: struct
      name: extra_counters
      pos:
        line_end: 546
        line_start: 542
        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: srv_watch
        type: struct watcher
      - name: state
        type: enum stat_state
      item_type: struct
      name: show_stat_ctx
      pos:
        line_end: 594
        line_start: 579
        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_SETTINGS
        value: '0x04'
      - name: H2_FT_RST_STREAM
        value: '0x03'
      - name: H2_FT_PRIORITY
        value: '0x02'
      - name: H2_FT_HEADERS
        value: '0x01'
      - 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_PROTOCOL_ERROR
        value: '0x1'
      - name: H2_ERR_SETTINGS_TIMEOUT
        value: '0x4'
      - name: H2_ERR_INTERNAL_ERROR
        value: '0x2'
      - 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_INADEQUATE_SECURITY
        value: '0xc'
      - name: H2_ERR_HTTP_1_1_REQUIRED
        value: '0xd'
      - name: H2_ERR_ENHANCE_YOUR_CALM
        value: '0xb'
      - 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
    - item_type: preproc_def
      name: H2_MAX_STREAM_ID
      pos:
        line_end: 187
        line_start: 186
        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: 188
        line_start: 187
        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: 189
        line_start: 188
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '1'
    - item_type: preproc_def
      name: H2_DIR_RES
      pos:
        line_end: 190
        line_start: 189
        source_file: /src/haproxy/include/haproxy/h2.h
      type_or_value: '2'
    - item_type: preproc_def
      name: H2_DIR_BOTH
      pos:
        line_end: 191
        line_start: 190
        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: 202
        line_start: 196
        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_PROC
      - name: SCOPE_TXN
      - name: SCOPE_RES
      - name: SCOPE_REQ
      - 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
    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
      item_type: struct
      name: var_desc
      pos:
        line_end: 65
        line_start: 61
        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: data
        type: struct sample_data
      item_type: struct
      name: var
      pos:
        line_end: 73
        line_start: 67
        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_DRAINING
      - name: H1_CS_RUNNING
      - name: H1_CS_UPGRADING
      - name: H1_CS_EMBRYONIC
      - 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: []
    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/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: head
        type: struct list
      - name: '*ceb_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: 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: 121
        line_start: 105
        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: 137
        line_start: 127
        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: 148
        line_start: 142
        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: 185
        line_start: 157
        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: 193
        line_start: 188
        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: 214
        line_start: 200
        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: 223
        line_start: 220
        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: 237
        line_start: 228
        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: 175
        line_start: 172
        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: 133
        line_start: 131
        source_file: /src/haproxy/include/haproxy/task-t.h
      type_or_value: "struct {\t\t\t\t\t\t\t\\\n\t\tunsigned 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
      - name: expire
        type: int
      - name: nice
        type: short
      item_type: struct
      name: task
      pos:
        line_end: 156
        line_start: 144
        source_file: /src/haproxy/include/haproxy/task-t.h
    - fields:
      - name: list
        type: struct list
      item_type: struct
      name: tasklet
      pos:
        line_end: 167
        line_start: 159
        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: 185
        line_start: 182
        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_PASSED
      - name: CHK_RES_FAILED
      - name: CHK_RES_NEUTRAL
      item_type: enum
      name: chk_result
      pos:
        line_end: 45
        line_start: 39
        source_file: /src/haproxy/include/haproxy/check-t.h
    - enumerators:
      - name: HCHK_STATUS_UNKNOWN
        value: '0'
      - name: HCHK_STATUS_INI
      - name: HCHK_STATUS_CHECKED
      - name: HCHK_STATUS_L4OK
      - name: HCHK_STATUS_L4CON
      - name: HCHK_STATUS_L7OKCD
      - name: HCHK_STATUS_L7RSP
      - name: HCHK_STATUS_PROCTOUT
      - name: HCHK_STATUS_SIZE
      - name: HCHK_STATUS_SOCKERR
      - name: HCHK_STATUS_L6TOUT
      - name: HCHK_STATUS_L6RSP
      - name: HCHK_STATUS_L57DATA
      - name: HCHK_STATUS_L7STS
      - name: HCHK_STATUS_PROCOK
      - name: HCHK_STATUS_START
      - name: HCHK_STATUS_L4TOUT
      - name: HCHK_STATUS_HANA
      - name: HCHK_STATUS_L6OK
      - name: HCHK_STATUS_L7TOUT
      - name: HCHK_STATUS_L7OKD
      - name: HCHK_STATUS_PROCERR
      item_type: enum
      name: healthcheck_status
      pos:
        line_end: 106
        line_start: 71
        source_file: /src/haproxy/include/haproxy/check-t.h
    preproc_defs:
    - item_type: preproc_def
      name: CHK_ST_INPROGRESS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: CHK_ST_CONFIGURED
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0002  '
    - item_type: preproc_def
      name: CHK_ST_ENABLED
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: CHK_ST_PAUSED
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0008  '
    - item_type: preproc_def
      name: CHK_ST_AGENT
      pos:
        line_end: 53
        line_start: 52
        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: 54
        line_start: 53
        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: 55
        line_start: 54
        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: 56
        line_start: 55
        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: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0100  '
    - item_type: preproc_def
      name: CHK_ST_PURGE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0200  '
    - item_type: preproc_def
      name: CHK_ST_FASTINTER
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0400  '
    - item_type: preproc_def
      name: CHK_ST_READY
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x0800  '
    - item_type: preproc_def
      name: CHK_ST_SLEEPING
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/check-t.h
      type_or_value: '0x1000  '
    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_rules'
        type: struct tcpcheck_rules
      - 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: '*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
      item_type: struct
      name: check
      pos:
        line_end: 197
        line_start: 158
        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:
  - 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
  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_MATCH_PREFIX
        value: '0x2'
      - name: KWF_DISCOVERY
        value: '0x4'
      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_TCP
        value: 1 << 0
      - name: PROTO_MODE_SPOP
        value: 1 << 2
      - name: PROTO_MODE_HTTP
        value: 1 << 1
      - name: PROTO_MODE_ANY
        value: PROTO_MODE_TCP | PROTO_MODE_HTTP | PROTO_MODE_SPOP
      item_type: enum
      name: proto_proxy_mode
      pos:
        line_end: 367
        line_start: 361
        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_FE
        value: '1'
      - name: PROTO_SIDE_BOTH
        value: PROTO_SIDE_FE | PROTO_SIDE_BE
      item_type: enum
      name: proto_proxy_side
      pos:
        line_end: 374
        line_start: 369
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: MUX_CTL_STATUS
      - name: MUX_CTL_GET_GLITCHES
      - name: MUX_CTL_EXIT_STATUS
      - name: MUX_CTL_SUBS_RECV
      - name: MUX_CTL_REVERSE_CONN
      - name: MUX_CTL_GET_NBSTRM
      - name: MUX_CTL_GET_MAXSTRM
      - name: MUX_CTL_TEVTS
      item_type: enum
      name: mux_ctl_type
      pos:
        line_end: 386
        line_start: 377
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: MUX_SCTL_SID
      - name: MUX_SCTL_TEVTS
      - name: MUX_SCTL_DBG_STR
      item_type: enum
      name: mux_sctl_type
      pos:
        line_end: 393
        line_start: 389
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: MUX_ES_SUCCESS
      - name: MUX_ES_NOTIMPL_ERR
      - name: MUX_ES_INTERNAL_ERR
      - name: MUX_ES_INVALID_ERR
      - name: MUX_ES_TOUT_ERR
      - name: MUX_ES_UNKNOWN
      item_type: enum
      name: mux_exit_status
      pos:
        line_end: 412
        line_start: 405
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: XPRT_CAN_SPLICE
      item_type: enum
      name: xprt_capabilities
      pos:
        line_end: 437
        line_start: 435
        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: 443
        line_start: 439
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: CONN_HASH_PARAMS_TYPE_NAME
        value: '0x1'
      - name: CONN_HASH_PARAMS_TYPE_SRC_PORT
        value: '0x10'
      - 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_PROXY
        value: '0x20'
      - name: CONN_HASH_PARAMS_TYPE_MARK_TOS
        value: '0x40'
      item_type: enum
      name: conn_hash_params_t
      pos:
        line_end: 565
        line_start: 557
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: tevt_loc_fd
        value: '1'
      - name: tevt_loc_se
        value: '5'
      - name: tevt_loc_muxc
        value: '4'
      - name: tevt_loc_xprt
        value: '3'
      - name: tevt_loc_hs
        value: '2'
      - name: tevt_loc_strm
        value: '6'
      item_type: enum
      name: term_event_loc
      pos:
        line_end: 814
        line_start: 807
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: fd_tevt_type_shutw
        value: '1'
      - name: fd_tevt_type_rcv_err
        value: '3'
      - name: fd_tevt_type_shutr
        value: '2'
      - name: fd_tevt_type_snd_err
        value: '4'
      - name: fd_tevt_type_connect_err
        value: '7'
      - 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: 829
        line_start: 817
        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: 836
        line_start: 831
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: xprt_tevt_type_shutw
        value: '1'
      - name: xprt_tevt_type_rcv_err
        value: '3'
      - name: xprt_tevt_type_shutr
        value: '2'
      - name: xprt_tevt_type_snd_err
        value: '4'
      item_type: enum
      name: xprt_term_event_type
      pos:
        line_end: 843
        line_start: 838
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: muxc_tevt_type_shutw
        value: '1'
      - name: muxc_tevt_type_truncated_shutr
        value: '5'
      - name: muxc_tevt_type_snd_err
        value: '4'
      - name: muxc_tevt_type_rcv_err
        value: '3'
      - name: muxc_tevt_type_shutr
        value: '2'
      - 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_other_err
        value: '11'
      - name: muxc_tevt_type_graceful_shut
        value: '12'
      item_type: enum
      name: muxc_term_event_type
      pos:
        line_end: 859
        line_start: 845
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: se_tevt_type_shutw
        value: '1'
      - name: se_tevt_type_eos
        value: '2'
      - name: se_tevt_type_truncated_eos
        value: '5'
      - name: se_tevt_type_snd_err
        value: '4'
      - name: se_tevt_type_rcv_err
        value: '3'
      - 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: 874
        line_start: 861
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - enumerators:
      - name: strm_tevt_type_shutw
        value: '1'
      - name: strm_tevt_type_truncated_eos
        value: '5'
      - name: strm_tevt_type_snd_err
        value: '4'
      - name: strm_tevt_type_rcv_err
        value: '3'
      - name: strm_tevt_type_eos
        value: '2'
      - 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_other_err
        value: '11'
      - name: strm_tevt_type_aborted
        value: '12'
      item_type: enum
      name: strm_term_event_type
      pos:
        line_end: 891
        line_start: 876
        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: 396
        line_start: 395
        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: 397
        line_start: 396
        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: 398
        line_start: 397
        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: 399
        line_start: 398
        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: 400
        line_start: 399
        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: 404
        line_start: 403
        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: 416
        line_start: 415
        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: 567
        line_start: 566
        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: 570
        line_start: 568
        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: 679
        line_start: 678
        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: 680
        line_start: 679
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '12'
    - item_type: preproc_def
      name: PP2_HEADER_LEN
      pos:
        line_end: 681
        line_start: 680
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PP2_CMD_LOCAL
      pos:
        line_end: 684
        line_start: 683
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: PP2_CMD_PROXY
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PP2_CMD_MASK
      pos:
        line_end: 686
        line_start: 685
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: PP2_VERSION
      pos:
        line_end: 688
        line_start: 687
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: PP2_VERSION_MASK
      pos:
        line_end: 689
        line_start: 688
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0xF0'
    - item_type: preproc_def
      name: PP2_TRANS_UNSPEC
      pos:
        line_end: 692
        line_start: 691
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: PP2_TRANS_STREAM
      pos:
        line_end: 693
        line_start: 692
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PP2_TRANS_DGRAM
      pos:
        line_end: 694
        line_start: 693
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PP2_TRANS_MASK
      pos:
        line_end: 695
        line_start: 694
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x0F'
    - item_type: preproc_def
      name: PP2_FAM_UNSPEC
      pos:
        line_end: 697
        line_start: 696
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: PP2_FAM_INET
      pos:
        line_end: 698
        line_start: 697
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: PP2_FAM_INET6
      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_FAM_UNIX
      pos:
        line_end: 700
        line_start: 699
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: PP2_FAM_MASK
      pos:
        line_end: 701
        line_start: 700
        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: 703
        line_start: 702
        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: 704
        line_start: 703
        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: 705
        line_start: 704
        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: 706
        line_start: 705
        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: 708
        line_start: 707
        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: 709
        line_start: 708
        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: 710
        line_start: 709
        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: 711
        line_start: 710
        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: 713
        line_start: 712
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: PP2_TYPE_AUTHORITY
      pos:
        line_end: 714
        line_start: 713
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: PP2_TYPE_CRC32C
      pos:
        line_end: 715
        line_start: 714
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: PP2_TYPE_NOOP
      pos:
        line_end: 716
        line_start: 715
        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: 717
        line_start: 716
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x05'
    - item_type: preproc_def
      name: PP2_TYPE_SSL
      pos:
        line_end: 718
        line_start: 717
        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: 719
        line_start: 718
        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: 720
        line_start: 719
        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: 721
        line_start: 720
        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: 722
        line_start: 721
        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: 723
        line_start: 722
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x25'
    - item_type: preproc_def
      name: PP2_TYPE_NETNS
      pos:
        line_end: 724
        line_start: 723
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x30'
    - item_type: preproc_def
      name: PP2_CLIENT_SSL
      pos:
        line_end: 726
        line_start: 725
        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: 727
        line_start: 726
        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: 728
        line_start: 727
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: PP2_CRC32C_LEN
      pos:
        line_end: 730
        line_start: 729
        source_file: /src/haproxy/include/haproxy/connection-t.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: TLV_HEADER_SIZE
      pos:
        line_end: 732
        line_start: 731
        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: 734
        line_start: 733
        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: 735
        line_start: 734
        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: 736
        line_start: 735
        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: 737
        line_start: 736
        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: 424
        line_start: 418
        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: 482
        line_start: 450
        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: 522
        line_start: 491
        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: 530
        line_start: 527
        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: 535
        line_start: 532
        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: 552
        line_start: 540
        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: 585
        line_start: 578
        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: 598
        line_start: 593
        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: 607
        line_start: 604
        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: term_evts_log
        type: uint32_t
      - name: mark
        type: uint32_t
      - name: tos
        type: uint8_t
      item_type: struct
      name: connection
      pos:
        line_end: 665
        line_start: 616
        source_file: /src/haproxy/include/haproxy/connection-t.h
    - fields:
      - name: token
        type: struct ist
      - name: mode
        type: enum proto_proxy_mode
      - name: side
        type: enum proto_proxy_side
      - name: '*mux'
        type: struct mux_ops
      - name: list
        type: struct list
      item_type: struct
      name: mux_proto_list
      pos:
        line_end: 673
        line_start: 667
        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: 761
        line_start: 738
        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: 768
        line_start: 763
        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: 775
        line_start: 770
        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: 795
        line_start: 791
        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: 433
        line_start: 430
        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: 785
        line_start: 778
        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(64);\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: 327
        line_start: 326
        source_file: /src/haproxy/include/haproxy/thread.h
      type_or_value: '0'
    - item_type: preproc_def
      name: _LK_RD
      pos:
        line_end: 328
        line_start: 327
        source_file: /src/haproxy/include/haproxy/thread.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _LK_SK
      pos:
        line_end: 329
        line_start: 328
        source_file: /src/haproxy/include/haproxy/thread.h
      type_or_value: '2'
    - item_type: preproc_def
      name: _LK_WR
      pos:
        line_end: 330
        line_start: 329
        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:
  - 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/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_PASS
        value: '3'
      - name: ACL_TEST_MISS
        value: '1'
      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
  - DEFVAL
  - DEFNULL
  - DEFZERO
  - _FIRST_ARG
  - 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: 144
        line_start: 141
        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: 68
        line_start: 67
        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: 69
        line_start: 68
        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: 70
        line_start: 69
        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: 71
        line_start: 70
        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: 72
        line_start: 71
        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: 73
        line_start: 72
        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: 74
        line_start: 73
        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: 77
        line_start: 76
        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: 78
        line_start: 77
        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: 79
        line_start: 78
        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: 80
        line_start: 79
        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: 81
        line_start: 80
        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: 82
        line_start: 81
        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: 83
        line_start: 82
        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: 84
        line_start: 83
        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: 87
        line_start: 86
        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: 88
        line_start: 87
        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: 91
        line_start: 90
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: TIME_UNIT_MS
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: TIME_UNIT_S
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: TIME_UNIT_MIN
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0003'
    - item_type: preproc_def
      name: TIME_UNIT_HOUR
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0004'
    - item_type: preproc_def
      name: TIME_UNIT_DAY
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0005'
    - item_type: preproc_def
      name: TIME_UNIT_MASK
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x0007'
    - item_type: preproc_def
      name: SEC
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: MINUTE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: (60 * SEC)
    - item_type: preproc_def
      name: HOUR
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: (60 * MINUTE)
    - item_type: preproc_def
      name: DAY
      pos:
        line_end: 102
        line_start: 101
        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: 105
        line_start: 104
        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: 106
        line_start: 105
        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: 107
        line_start: 106
        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: 108
        line_start: 107
        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: 109
        line_start: 108
        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: 110
        line_start: 109
        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: 111
        line_start: 110
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000040   '
    - item_type: preproc_def
      name: PA_O_DGRAM
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000080   '
    - item_type: preproc_def
      name: PA_O_STREAM
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000100   '
    - item_type: preproc_def
      name: PA_O_XPRT
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000200   '
    - item_type: preproc_def
      name: PA_O_CONNECT
      pos:
        line_end: 115
        line_start: 114
        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: 116
        line_start: 115
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00000800   '
    - item_type: preproc_def
      name: UTF8_CODE_OK
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: UTF8_CODE_OVERLONG
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x10'
    - item_type: preproc_def
      name: UTF8_CODE_INVRANGE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/tools-t.h
      type_or_value: '0x20'
    - item_type: preproc_def
      name: UTF8_CODE_BADSEQ
      pos:
        line_end: 122
        line_start: 121
        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: 151
        line_start: 147
        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: 157
        line_start: 154
        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: 171
        line_start: 159
        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: 177
        line_start: 174
        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: 193
        line_start: 181
        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: 205
        line_start: 202
        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_GAP_SIZE
      - name: NCB_RET_DATA_REJ
      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_COMPARE
      - name: NCB_ADD_OVERWRT
      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_ALLOC
      - name: QC_BUILD_PKT_ERR_BUFROOM
      - name: QC_BUILD_PKT_ERR_ENCRYPT
      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_FATAL
      - name: QUIC_TX_ERR_PACING
      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:
  - _____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: 39
        line_start: 38
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: '0'
    - item_type: preproc_def
      name: comma_for_one1
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: ','
    - item_type: preproc_def
      name: comma_for_zero0
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: ','
    - item_type: preproc_def
      name: comma_for_empty
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: ','
    - item_type: preproc_def
      name: __fallthrough
      pos:
        line_end: 104
        line_start: 103
        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: 106
        line_start: 105
        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: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: '1'
    - item_type: preproc_def
      name: forceinline
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: inline
    - item_type: preproc_def
      name: forceinline
      pos:
        line_end: 145
        line_start: 144
        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: 153
        line_start: 152
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: __attribute__((unused))
    - item_type: preproc_def
      name: USE_OBSOLETE_LINKER
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: '1'
    - item_type: preproc_def
      name: __read_mostly
      pos:
        line_end: 209
        line_start: 208
        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: 214
        line_start: 213
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: '1'
    - item_type: preproc_def
      name: THREAD_LOCAL
      pos:
        line_end: 522
        line_start: 521
        source_file: /src/haproxy/include/haproxy/compiler.h
      type_or_value: __thread
    - item_type: preproc_def
      name: __nonstring
      pos:
        line_end: 564
        line_start: 563
        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_RESOURCES
        value: '0'
      - name: ACME_CHKACCOUNT
      - name: ACME_NEWNONCE
      - name: ACME_NEWACCOUNT
      - name: ACME_NEWORDER
      - name: ACME_AUTH
      - name: ACME_CHALLENGE
      - name: ACME_CHKCHALLENGE
      - name: ACME_FINALIZE
      - name: ACME_CHKORDER
      - name: ACME_END
      - name: ACME_CERTIFICATE
      item_type: enum
      name: acme_st
      pos:
        line_end: 48
        line_start: 35
        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: 53
        line_start: 50
        source_file: /src/haproxy/include/haproxy/acme-t.h
    preproc_defs:
    - item_type: preproc_def
      name: ACME_RETRY
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '5'
    - item_type: preproc_def
      name: ACME_EV_SCHED
      pos:
        line_end: 91
        line_start: 90
        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: 92
        line_start: 91
        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: 93
        line_start: 92
        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: 94
        line_start: 93
        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: 95
        line_start: 94
        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: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '1'
    - item_type: preproc_def
      name: ACME_VERB_MINIMAL
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '2'
    - item_type: preproc_def
      name: ACME_VERB_SIMPLE
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '3'
    - item_type: preproc_def
      name: ACME_VERB_ADVANCED
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/acme-t.h
      type_or_value: '4'
    - item_type: preproc_def
      name: ACME_VERB_COMPLETE
      pos:
        line_end: 101
        line_start: 100
        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: '*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: '*challenge'
        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: 33
        line_start: 10
        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: ready
        type: int
      - name: '*next'
        type: void
      item_type: struct
      name: acme_auth
      pos:
        line_end: 62
        line_start: 55
        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: '*task'
        type: struct task
      - name: el
        type: struct mt_list
      item_type: struct
      name: acme_ctx
      pos:
        line_end: 88
        line_start: 65
        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
  - 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_HANDSHAKE
      - name: QUIC_HS_ST_CLIENT_INITIAL
      - name: QUIC_HS_ST_SERVER_INITIAL
      - name: QUIC_HS_ST_SERVER_HANDSHAKE_FAILED
      - 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_INITIAL
      - name: QUIC_TLS_ENC_LEVEL_HANDSHAKE
      - name: QUIC_TLS_ENC_LEVEL_EARLY_DATA
      - name: QUIC_TLS_ENC_LEVEL_APP
      - 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_01RTT
      - name: QUIC_TLS_PKTNS_HANDSHAKE
      - 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
  - 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: 178
        line_start: 172
        source_file: /src/haproxy/include/haproxy/bug.h
    - enumerators:
      - name: TAINTED_CONFIG_EXP_KW_DECLARED
        value: '0x00000001'
      - name: TAINTED_ACTION_EXP_EXECUTED
        value: '0x00000002'
      - name: TAINTED_CLI_EXPERIMENTAL_MODE
        value: '0x00000008'
      - name: TAINTED_CLI_EXPERT_MODE
        value: '0x00000004'
      - 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_WARN_BLOCKED_TRAFFIC
        value: '0x00002000'
      - name: TAINTED_MEM_TRIMMING_STUCK
        value: '0x00001000'
      - name: TAINTED_LUA_STUCK_SHARED
        value: '0x00000800'
      item_type: enum
      name: tainted_flags
      pos:
        line_end: 468
        line_start: 453
        source_file: /src/haproxy/include/haproxy/bug.h
    preproc_defs:
    - item_type: preproc_def
      name: __asm__
      pos:
        line_end: 58
        line_start: 52
        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: 66
        line_start: 60
        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: 191
        line_start: 183
        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: 444
        line_start: 437
        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: 508
        line_start: 503
        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_insert
  - 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_NONE
      - name: JWS_ALG_HS384
      - 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_PS384
      - name: JWS_ALG_PS256
      - name: JWS_ALG_PS512
      - name: JWS_ALG_ES512
      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_MAX
      - name: JWT_ELT_CLAIMS
      - 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_UNMANAGED_ALG
        value: '-2'
      - name: JWT_VRFY_INVALID_TOKEN
        value: '-3'
      - name: JWT_VRFY_OK
        value: '1'
      - name: JWT_VRFY_UNKNOWN_ALG
        value: '-1'
      - 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_CLT_UNI
      - name: QCS_SRV_UNI
      - name: QCS_SRV_BIDI
      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_INIT
      - name: QCC_APP_ST_SHUT
      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_OPEN
      - name: QC_SS_HLOC
      - name: QC_SS_HREM
      item_type: enum
      name: qcs_state
      pos:
        line_end: 136
        line_start: 130
        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: 197
        line_start: 194
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QC_CF_ERRL
      pos:
        line_end: 238
        line_start: 237
        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: 239
        line_start: 238
        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: 240
        line_start: 239
        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: 241
        line_start: 240
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: QC_CF_ERR_CONN
      pos:
        line_end: 243
        line_start: 242
        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: 244
        line_start: 243
        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: 267
        line_start: 266
        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: 268
        line_start: 267
        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: 269
        line_start: 268
        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: 270
        line_start: 269
        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: 271
        line_start: 270
        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: 272
        line_start: 271
        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: 273
        line_start: 272
        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: 274
        line_start: 273
        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: 275
        line_start: 274
        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: 276
        line_start: 275
        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: 277
        line_start: 276
        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: 278
        line_start: 277
        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: 279
        line_start: 278
        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: 280
        line_start: 279
        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: flags
        type: uint32_t
      - name: app_st
        type: enum qcc_app_st
      - name: glitches
        type: int
      - 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; /* 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
          sent */\n\t\tstruct quic_pacer pacer; /* engine used to pace emission */\n\t\tint
          paced_sent_ctr; /* counter for when emission is interrupted due to pacing
          */\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: 114
        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: 145
        line_start: 141
        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\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: '*stream'
        type: struct qc_stream_desc
      - 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: 191
        line_start: 147
        source_file: /src/haproxy/include/haproxy/mux_quic-t.h
    - fields:
      - 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: (*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
      item_type: struct
      name: qcc_app_ops
      pos:
        line_end: 233
        line_start: 200
        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)
    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: []
    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_RP
      - name: QUIC_CC_ST_CS
      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_NOCC
      - name: QUIC_CC_ALGO_TP_BBR
      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
  source_file: /src/haproxy/include/haproxy/tcpcheck.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - qc_is_back
  - 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: 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: (*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
      item_type: struct
      name: lbprm
      pos:
        line_end: 194
        line_start: 153
        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
      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_O_FOREIGN
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: RX_O_V4V6
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/haproxy/include/haproxy/receiver-t.h
      type_or_value: '0x00000002  '
    - item_type: preproc_def
      name: RX_O_V6ONLY
      pos:
        line_end: 45
        line_start: 44
        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: 57
        line_start: 47
        source_file: /src/haproxy/include/haproxy/receiver-t.h
    - fields:
      - name: nbgroups
        type: uint
      - name: nbthreads
        type: uint
      - name: tgroup_mask
        type: ulong
      - name: '*ref'
        type: struct receiver
      - name: '*members[MAX_TGROUPS]'
        type: struct receiver
      item_type: struct
      name: shard_info
      pos:
        line_end: 68
        line_start: 62
        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: 97
        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_FD
      - name: SINK_TYPE_NEW
      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_FE
      - name: STFILE_DOMAIN_PX_BE
      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: '0'
    - 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: now_offset
        type: llong
      - name: slots[64]
        type: "struct {\n\t\tpid_t pid;\n\t\tint 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: uint8_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:
    - enumerators:
      - name: QUIC_TP_DEC_ERR_NONE
        value: '0'
      - name: QUIC_TP_DEC_ERR_TRUNC
      - name: QUIC_TP_DEC_ERR_INVAL
      item_type: enum
      name: quic_tp_dec_err
      pos:
        line_end: 119
        line_start: 115
        source_file: /src/haproxy/include/haproxy/quic_tp-t.h
    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
    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_shard_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_may_alloc_for_crit
  - __b_get_emergency_buf
  - b_alloc
  - __b_free
  - b_free
  - 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_FF_BLOCKED
        value: '0x00000004'
      - name: IOBUF_FL_INTERIM_FF
        value: '0x00000008'
      - name: IOBUF_FL_NO_FF
        value: '0x00000001'
      - 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_EXACT_SIZE
        value: '0x00000002'
      - name: NEGO_FF_FL_MAY_SPLICE
        value: '0x00000001'
      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_HAVE_NO_DATA
        value: '0x40000000'
      - name: SE_FL_WAIT_DATA
        value: '0x10000000'
      - name: SE_FL_NONE
        value: '0x00000000'
      - name: SE_FL_T_APPLET
        value: '0x00000002'
      - name: SE_FL_ORPHAN
        value: '0x00000020'
      - 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_SHW
        value: SE_FL_SHWN | SE_FL_SHWS
      - name: SE_FL_EOS
        value: '0x00008000'
      - name: SE_FL_ERR_PENDING
        value: '0x00020000'
      - name: SE_FL_WANT_ROOM
        value: '0x00080000'
      - name: SE_FL_WAIT_FOR_HS
        value: '0x04000000'
      - name: SE_FL_WEBSOCKET
        value: '0x00002000'
      - name: SE_FL_WONT_CONSUME
        value: '0x20000000'
      - name: SE_FL_APPLET_NEED_CONN
        value: '0x80000000'
      - name: SE_FL_DETACHED
        value: '0x00000010'
      - name: SE_FL_T_MUX
        value: '0x00000001'
      - name: SE_FL_SHRD
        value: '0x00000100'
      - name: SE_FL_SHWN
        value: '0x00000400'
      - name: SE_FL_NOT_FIRST
        value: '0x00001000'
      - name: SE_FL_ERROR
        value: '0x00010000'
      - name: SE_FL_EOI
        value: '0x00004000'
      - name: SE_FL_RCV_MORE
        value: '0x00040000'
      - 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_KILL_CONN
        value: '0x08000000'
      - name: SE_FL_ENDP_MASK
        value: '0x004ff000'
      item_type: enum
      name: se_flags
      pos:
        line_end: 116
        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_SHR_RESET
        value: '0x00000002'
      - name: SE_SHW_NORMAL
        value: '0x00000004'
      item_type: enum
      name: se_shut_mode
      pos:
        line_end: 124
        line_start: 119
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - enumerators:
      - name: SC_FL_NOLINGER
        value: '0x00000008'
      - name: SC_FL_DONT_WAKE
        value: '0x00000020'
      - name: SC_FL_INDEP_STR
        value: '0x00000040'
      - name: SC_FL_SND_EXP_MORE
        value: '0x00002000'
      - name: SC_FL_SHUT_WANTED
        value: '0x00008000'
      - name: SC_FL_RCV_ONCE
        value: '0x00000400'
      - name: SC_FL_EOS
        value: '0x00040000'
      - name: SC_FL_NO_FASTFWD
        value: '0x00100000'
      - name: SC_FL_NONE
        value: '0x00000000'
      - name: SC_FL_ISBACK
        value: '0x00000001'
      - name: SC_FL_ERROR
        value: '0x00000004'
      - name: SC_FL_WONT_READ
        value: '0x00000080'
      - name: SC_FL_NEED_BUFF
        value: '0x00000100'
      - name: SC_FL_SHUT_DONE
        value: '0x00020000'
      - name: SC_FL_SND_NEVERWAIT
        value: '0x00001000'
      - name: SC_FL_NOHALF
        value: '0x00000010'
      - name: SC_FL_SND_ASAP
        value: '0x00000800'
      - name: SC_FL_ABRT_WANTED
        value: '0x00004000'
      - name: SC_FL_NEED_ROOM
        value: '0x00000200'
      - name: SC_FL_HAVE_BUFF
        value: '0x00080000'
      - name: SC_FL_EOI
        value: '0x00000002'
      - name: SC_FL_ABRT_DONE
        value: '0x00010000'
      item_type: enum
      name: sc_flags
      pos:
        line_end: 209
        line_start: 180
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - enumerators:
      - name: SC_ST_INI
        value: '0'
      - name: SC_ST_QUE
      - name: SC_ST_TAR
      - name: SC_ST_REQ
      - name: SC_ST_ASS
      - 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: 250
        line_start: 238
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - enumerators:
      - name: SC_SB_NONE
        value: '0'
      - name: SC_SB_INI
        value: 1U << SC_ST_INI
      - name: SC_SB_QUE
        value: 1U << SC_ST_QUE
      - name: SC_SB_REQ
        value: 1U << SC_ST_REQ
      - name: SC_SB_TAR
        value: 1U << SC_ST_TAR
      - 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_CLO
        value: 1U << SC_ST_CLO
      - 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_DIS
        value: 1U << SC_ST_DIS
      item_type: enum
      name: sc_state_bit
      pos:
        line_end: 267
        line_start: 253
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    preproc_defs:
    - item_type: preproc_def
      name: SE_ABRT_SRC_SHIFT
      pos:
        line_end: 276
        line_start: 275
        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: 277
        line_start: 276
        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: 279
        line_start: 278
        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: 280
        line_start: 279
        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: 281
        line_start: 280
        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: 282
        line_start: 281
        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: 283
        line_start: 282
        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: 284
        line_start: 283
        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: 288
        line_start: 285
        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: 349
        line_start: 335
        source_file: /src/haproxy/include/haproxy/stconn-t.h
    - fields:
      - name: (*chk_rcv)(struct stconn *)
        type: void
      - name: (*chk_snd)(struct stconn *)
        type: void
      - name: (*abort)(struct stconn *)
        type: void
      - name: (*shutdown)(struct stconn *)
        type: void
      - name: (*wake)(struct stconn *)
        type: int
      - name: name[8]
        type: char
      item_type: struct
      name: sc_app_ops
      pos:
        line_end: 362
        line_start: 355
        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: wait_event
        type: struct wait_event
      - name: '*sedesc'
        type: struct sedesc
      - name: '*app'
        type: enum obj_type
      - name: '*app_ops'
        type: struct sc_app_ops
      - name: '*src'
        type: struct sockaddr_storage
      - name: '*dst'
        type: struct sockaddr_storage
      item_type: struct
      name: stconn
      pos:
        line_end: 385
        line_start: 367
        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_avg
  source_file: /src/haproxy/include/haproxy/freq_ctr.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_SE_RX
      - name: DB_MUX_RX
      - name: DB_UNLIKELY
      - name: DB_CHANNEL
      - 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_handshake
      - name: ssl_encryption_early_data
      - 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_RETRY
      - name: QUIC_PACKET_TYPE_HANDSHAKE
      - name: QUIC_PACKET_TYPE_SHORT
      - name: QUIC_PACKET_TYPE_0RTT
      - name: QUIC_PACKET_TYPE_UNKNOWN
      item_type: enum
      name: quic_pkt_type
      pos:
        line_end: 130
        line_start: 117
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
    - enumerators:
      - name: QC_MUX_NULL
      - name: QC_MUX_RELEASED
      - name: QC_MUX_READY
      item_type: enum
      name: qc_mux_state
      pos:
        line_end: 254
        line_start: 250
        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: 50
        line_start: 49
        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: 51
        line_start: 50
        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: 52
        line_start: 51
        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: 54
        line_start: 53
        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: 55
        line_start: 54
        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: 58
        line_start: 57
        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: 63
        line_start: 62
        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: 67
        line_start: 66
        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: 72
        line_start: 71
        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: 74
        line_start: 73
        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: 79
        line_start: 78
        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: 81
        line_start: 80
        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: 84
        line_start: 83
        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: 85
        line_start: 84
        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: 89
        line_start: 88
        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: 91
        line_start: 90
        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: 93
        line_start: 92
        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: 115
        line_start: 114
        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: 116
        line_start: 115
        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: 134
        line_start: 133
        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: 135
        line_start: 134
        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: 138
        line_start: 137
        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: 156
        line_start: 155
        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: 168
        line_start: 167
        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: 170
        line_start: 169
        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: 175
        line_start: 174
        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: 185
        line_start: 184
        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: 201
        line_start: 200
        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: 229
        line_start: 228
        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: 231
        line_start: 230
        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: 235
        line_start: 234
        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: 238
        line_start: 237
        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: 241
        line_start: 240
        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: 244
        line_start: 243
        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: 282
        line_start: 280
        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: 440
        line_start: 439
        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: 441
        line_start: 440
        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: 442
        line_start: 441
        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: 443
        line_start: 442
        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: 444
        line_start: 443
        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: 445
        line_start: 444
        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: 446
        line_start: 445
        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: 447
        line_start: 446
        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: 448
        line_start: 447
        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: 449
        line_start: 448
        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: 450
        line_start: 449
        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: 451
        line_start: 450
        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: 452
        line_start: 451
        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: 453
        line_start: 452
        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: 454
        line_start: 453
        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: 455
        line_start: 454
        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: 456
        line_start: 455
        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: 457
        line_start: 456
        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: 458
        line_start: 457
        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: 459
        line_start: 458
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
      type_or_value: '(1U << 19) '
    - item_type: preproc_def
      name: QUIC_FL_CONN_TO_KILL
      pos:
        line_end: 461
        line_start: 460
        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: 462
        line_start: 461
        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: 463
        line_start: 462
        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: 465
        line_start: 464
        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: 466
        line_start: 465
        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: 467
        line_start: 466
        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: 468
        line_start: 467
        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: 217
        line_start: 202
        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: 274
        line_start: 257
        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: 301
        line_start: 294
        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: mux_state
        type: enum qc_mux_state
      - 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: '*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: '*app_ops'
        type: struct qcc_app_ops
      - 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: 426
        line_start: 322
        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: 434
        line_start: 429
        source_file: /src/haproxy/include/haproxy/quic_conn-t.h
    typedefs:
    - item_type: typedef
      name: ull
      pos:
        line_end: 47
        line_start: 47
        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_get_data_name
  - sc_waiting_room
  - se_have_more_data
  - se_have_no_more_data
  - sc_will_read
  - sc_wont_read
  - se_need_remote_conn
  - sc_have_buff
  - sc_need_buff
  - sc_used_buff
  - sc_have_room
  - sc_need_room
  - 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/qmux_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/qmux_trace.h
      type_or_value: '&trace_qmux'
    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/qmux_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/qmux_trace.h
    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_TAKE
      - name: NESTED_COND_ELIF_DROP
      - 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_STREQ
      - name: CFG_PRED_STRNEQ
      - name: CFG_PRED_DEFINED
      - name: CFG_PRED_FEATURE
      - 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_ENABLED
      - name: CFG_PRED_SSLLIB_NAME_STARTSWITH
      item_type: enum
      name: cond_predicate
      pos:
        line_end: 57
        line_start: 44
        source_file: /src/haproxy/include/haproxy/cfgcond-t.h
    - enumerators:
      - name: CCTT_NONE
        value: '0'
      - name: CCTT_FALSE
      - name: CCTT_TRUE
      - name: CCTT_PAREN
      - name: CCTT_PRED
      item_type: enum
      name: cfg_cond_term_type
      pos:
        line_end: 66
        line_start: 60
        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: 73
        line_start: 69
        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: 84
        line_start: 76
        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: 93
        line_start: 90
        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: 102
        line_start: 99
        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
  - 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_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_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_MALLOC
      - name: MEMPROF_METH_STRDUP
      - name: MEMPROF_METH_REALLOC
      - name: MEMPROF_METH_CALLOC
      - 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_ALIGNED_ALLOC
      - name: MEMPROF_METH_MEMALIGN
      - name: MEMPROF_METH_PVALLOC
      - name: MEMPROF_METH_METHODS
      - name: MEMPROF_METH_POSIX_MEMALIGN
      item_type: enum
      name: memprof_method
      pos:
        line_end: 55
        line_start: 39
        source_file: /src/haproxy/include/haproxy/activity-t.h
    preproc_defs:
    - item_type: preproc_def
      name: HA_PROF_TASKS_OFF
      pos:
        line_end: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 31
        line_start: 30
        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: 32
        line_start: 31
        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: 33
        line_start: 32
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000003     '
    - item_type: preproc_def
      name: HA_PROF_MEMORY
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/haproxy/include/haproxy/activity-t.h
      type_or_value: '0x00000004     '
    - item_type: preproc_def
      name: MEMPROF_FREE_MASK
      pos:
        line_end: 65
        line_start: 62
        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: 132
        line_start: 131
        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: 133
        line_start: 132
        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
      item_type: struct
      name: memprof_stats
      pos:
        line_end: 84
        line_start: 74
        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: __end[0]
        type: char
      item_type: struct
      name: activity
      pos:
        line_end: 128
        line_start: 92
        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: 148
        line_start: 139
        source_file: /src/haproxy/include/haproxy/activity-t.h
    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_FULL
      - name: LI_PRECONN_ST_ERR
      - name: LI_PRECONN_ST_INIT
      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
  source_file: /src/haproxy/include/haproxy/tinfo.h
  types:
    enum: []
    preproc_defs: []
    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_STRING_LF
      - name: TCPCHK_SEND_BINARY
      - name: TCPCHK_SEND_STRING
      - name: TCPCHK_SEND_BINARY_LF
      - 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_STOP
      - name: TCPCHK_EVAL_CONTINUE
      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_LF
      - name: TCPCHK_EXPECT_STRING_REGEX
      - 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
      - name: TCPCHK_EXPECT_HTTP_BODY_REGEX
      - name: TCPCHK_EXPECT_HTTP_BODY_LF
      - 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_COMMENT
      - name: TCPCHK_ACT_CONNECT
      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_RULES_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_RULES_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_RULES_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_RULES_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_RULES_PGSQL_CHK
      pos:
        line_end: 112
        line_start: 111
        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: 113
        line_start: 112
        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: 114
        line_start: 113
        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: 115
        line_start: 114
        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: 116
        line_start: 115
        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: 117
        line_start: 116
        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: 118
        line_start: 117
        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: 119
        line_start: 118
        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: 120
        line_start: 119
        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: 122
        line_start: 121
        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: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
      type_or_value: '0x00000FF0 '
    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: 135
        line_start: 125
        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: 141
        line_start: 137
        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: 146
        line_start: 143
        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: 168
        line_start: 148
        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: 203
        line_start: 170
        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: 207
        line_start: 205
        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: 220
        line_start: 209
        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: 227
        line_start: 223
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: flags
        type: unsigned int
      - name: '*list'
        type: struct list
      - name: preset_vars
        type: struct list
      item_type: struct
      name: tcpcheck_rules
      pos:
        line_end: 234
        line_start: 230
        source_file: /src/haproxy/include/haproxy/tcpcheck-t.h
    - fields:
      - name: rules
        type: struct list
      - name: node
        type: struct ebpt_node
      item_type: struct
      name: tcpcheck_ruleset
      pos:
        line_end: 240
        line_start: 237
        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_SETTINGS1
      - name: H2_CS_FRAME_H
      - name: H2_CS_FRAME_P
      - 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: 173
        line_start: 163
        source_file: /src/haproxy/include/haproxy/mux_h2-t.h
    - enumerators:
      - name: H2_SS_IDLE
        value: '0'
      - name: H2_SS_RREM
      - name: H2_SS_RLOC
      - name: H2_SS_OPEN
      - name: H2_SS_HREM
      - 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: 186
        line_start: 176
        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_RCVD_RFC8441
      pos:
        line_end: 65
        line_start: 64
        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: 66
        line_start: 65
        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: 67
        line_start: 66
        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: 69
        line_start: 68
        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: 70
        line_start: 69
        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: 71
        line_start: 70
        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: 73
        line_start: 72
        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: 74
        line_start: 73
        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: 103
        line_start: 102
        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: 104
        line_start: 103
        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: 105
        line_start: 104
        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: 107
        line_start: 106
        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: 108
        line_start: 107
        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: 111
        line_start: 110
        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: 112
        line_start: 111
        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: 113
        line_start: 112
        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: 114
        line_start: 113
        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: 115
        line_start: 114
        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: 118
        line_start: 117
        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: 119
        line_start: 118
        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: 120
        line_start: 119
        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: 122
        line_start: 121
        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: 123
        line_start: 122
        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: 124
        line_start: 123
        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: 126
        line_start: 125
        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: 128
        line_start: 127
        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: 129
        line_start: 128
        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: 131
        line_start: 130
        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: 132
        line_start: 131
        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: 134
        line_start: 133
        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: 135
        line_start: 134
        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: 136
        line_start: 135
        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: 191
        line_start: 190
        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_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: 64
        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_REGISTER
      - name: STG_POOL
      - name: STG_LOCK
      - 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: 209
        line_start: 208
        source_file: /src/haproxy/include/haproxy/initcall.h
      type_or_value: asm("")
    - item_type: preproc_def
      name: DECLARE_INIT_STAGES
      pos:
        line_end: 219
        line_start: 218
        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
      item_type: struct
      name: initcall
      pos:
        line_end: 82
        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_TCP_REQ_SES
      - name: ACT_F_HTTP_REQ
      - name: ACT_F_TCP_RES_CNT
      - name: ACT_F_TCP_REQ_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_STOP
      - name: ACT_RET_DONE
      - name: ACT_RET_ERR
      - name: ACT_RET_YIELD
      - 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_FIRST
        value: '0x00000004'
      - name: ACT_OPT_FINAL_EARLY
        value: '0x00000002'
      - 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_ACTION_DENY
      - name: ACT_HTTP_REQ_TARPIT
      - name: ACT_ACTION_ALLOW
      - name: ACT_HTTP_REDIR
      - 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_SERVER
      - name: ACT_TIMEOUT_CLIENT
      - name: ACT_TIMEOUT_TUNNEL
      item_type: enum
      name: act_timeout_name
      pos:
        line_end: 107
        line_start: 103
        source_file: /src/haproxy/include/haproxy/action-t.h
    - enumerators:
      - name: ACT_NORMALIZE_URI_PATH_MERGE_SLASHES
      - name: ACT_NORMALIZE_URI_QUERY_SORT_BY_NAME
      - name: ACT_NORMALIZE_URI_PATH_STRIP_DOTDOT_FULL
      - name: ACT_NORMALIZE_URI_PATH_STRIP_DOT
      - 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: 121
        line_start: 109
        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} 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\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: 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: 209
        line_start: 125
        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
      item_type: struct
      name: action_kw
      pos:
        line_end: 217
        line_start: 211
        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: 222
        line_start: 219
        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_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/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_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_get_blk_type
  - 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: []
    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_INTERNAL_ERROR
        value: '0x102'
      - name: H3_ERR_STREAM_CREATION_ERROR
        value: '0x103'
      - name: H3_ERR_GENERAL_PROTOCOL_ERROR
        value: '0x101'
      - name: H3_ERR_CLOSED_CRITICAL_STREAM
        value: '0x104'
      - 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_REQUEST_CANCELLED
        value: '0x10c'
      - name: H3_ERR_CONNECT_ERROR
        value: '0x10f'
      - name: H3_ERR_REQUEST_INCOMPLETE
        value: '0x10d'
      - name: H3_ERR_VERSION_FALLBACK
        value: '0x110'
      - name: H3_ERR_MISSING_SETTINGS
        value: '0x10a'
      - name: H3_ERR_REQUEST_REJECTED
        value: '0x10b'
      - name: H3_ERR_MESSAGE_ERROR
        value: '0x10e'
      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_CANCEL_PUSH
        value: '0x03'
      - name: H3_FT_SETTINGS
        value: '0x04'
      - name: H3_FT_HEADERS
        value: '0x01'
      - name: H3_FT_DATA
        value: '0x00'
      - 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_PUSH
      - name: H3S_T_QPACK_DEC
      - 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_subsription_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_ENTRIES
      - name: FCGI_PS_CANT_MPX_CONN
        value: '1'
      - name: FCGI_PS_OVERLOADED
        value: '2'
      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_TUNNEL
        value: '31'
      - name: H1_MSG_HDR_L1_LF
        value: '20'
      - name: H1_MSG_TRAILERS
        value: '29'
      - name: H1_MSG_HDR_VAL
        value: '22'
      - 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_RPLINE_END
        value: '15'
      - name: H1_MSG_RPCODE_SP
        value: '13'
      - name: H1_MSG_HDR_NAME
        value: '17'
      - name: H1_MSG_RPVER_SP
        value: '11'
      - name: H1_MSG_HDR_L1_SP
        value: '19'
      - name: H1_MSG_HDR_L1_LWS
        value: '21'
      - name: H1_MSG_CHUNK_SIZE
        value: '26'
      - name: H1_MSG_HDR_L2_LWS
        value: '24'
      - name: H1_MSG_CHUNK_CRLF
        value: '28'
      - name: H1_MSG_RQBEFORE_CR
        value: '1'
      - name: H1_MSG_DONE
        value: '30'
      - name: H1_MSG_HDR_L2_LF
        value: '23'
      - 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_RPVER
        value: '10'
      - name: H1_MSG_RPREASON
        value: '14'
      - name: H1_MSG_HDR_COL
        value: '18'
      - name: H1_MSG_HDR_FIRST
        value: '16'
      - name: H1_MSG_RPCODE
        value: '12'
      - name: H1_MSG_LAST_LF
        value: '25'
      - 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_H2C
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/haproxy/include/haproxy/h1.h
      type_or_value: 0x00040000 // "h2c" or "h2" used as upgrade token
    - 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: 148
        line_start: 145
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    - enumerators:
      - name: PARSE_TYPE_NONE
        value: '0'
      - name: PARSE_TYPE_INT
      - name: PARSE_TYPE_STR
      - name: PARSE_TYPE_ONOFF
      - name: PARSE_TYPE_ARRAY_SUBSTR
      item_type: enum
      name: parse_type_t
      pos:
        line_end: 199
        line_start: 193
        source_file: /src/haproxy/include/haproxy/ssl_ckch-t.h
    preproc_defs:
    - item_type: preproc_def
      name: CKCH_INST_NO_DEFAULT
      pos:
        line_end: 118
        line_start: 117
        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: 119
        line_start: 118
        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: 120
        line_start: 119
        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
      item_type: struct
      name: ckch_data
      pos:
        line_end: 58
        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}"
      item_type: struct
      name: ckch_conf
      pos:
        line_end: 74
        line_start: 61
        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: '*acme_task'
        type: struct task
      - name: node
        type: struct ebmb_node
      - name: path[VAR_ARRAY]
        type: char
      item_type: struct
      name: ckch_store
      pos:
        line_end: 93
        line_start: 85
        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: 106
        line_start: 103
        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: 114
        line_start: 111
        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: 140
        line_start: 126
        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: 160
        line_start: 153
        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: 190
        line_start: 185
        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_data *d, int cli, const
          char *filename, int linenum, char **err)
        type: int
      item_type: struct
      name: ckch_conf_kws
      pos:
        line_end: 206
        line_start: 201
        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_ASSIGNED
      - name: LI_INIT
      - name: LI_LISTEN
      - name: LI_PAUSED
      - 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_FULL
      - name: LI_STATE_COUNT
      - name: LI_STATUS_OPEN
      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: 164
        line_start: 163
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '94'
    - item_type: preproc_def
      name: IGNERR_BF_SIZE
      pos:
        line_end: 165
        line_start: 164
        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: 266
        line_start: 265
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x0001  '
    - item_type: preproc_def
      name: LI_F_SUSPENDED
      pos:
        line_end: 267
        line_start: 266
        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: 268
        line_start: 267
        source_file: /src/haproxy/include/haproxy/listener-t.h
      type_or_value: '0x0004  '
    - item_type: preproc_def
      name: ACCEPT_QUEUE_SIZE
      pos:
        line_end: 303
        line_start: 302
        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: 155
        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: 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: 220
        line_start: 167
        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: 230
        line_start: 223
        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
      item_type: struct
      name: listener
      pos:
        line_end: 262
        line_start: 237
        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: 280
        line_start: 275
        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: 287
        line_start: 283
        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: 299
        line_start: 295
        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: 309
        line_start: 305
        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_STARTING
      - name: PEER_APP_ST_RUNNING
      - 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_ASSIGNED
      - name: PEER_LR_ST_FINISHED
      - name: PEER_LR_ST_PROCESSING
      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
  - qmux_stream_rx_bufsz
  - qcs_id_type
  - quic_stream_is_local
  - quic_stream_is_remote
  - qcs_st_to_str
  - qcs_wait_http_req
  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: 56
        line_start: 55
        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: 58
        line_start: 57
        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: 60
        line_start: 59
        source_file: /src/haproxy/include/haproxy/mux_quic.h
      type_or_value: '0x2'
    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_RUNNING
      - name: TRACE_STATE_WAITING
      item_type: enum
      name: trace_state
      pos:
        line_end: 93
        line_start: 89
        source_file: /src/haproxy/include/haproxy/trace-t.h
    - enumerators:
      - name: TRACE_LEVEL_ERROR
        value: '0'
      - name: TRACE_LEVEL_PROTO
      - name: TRACE_LEVEL_STATE
      - name: TRACE_LEVEL_USER
      - name: TRACE_LEVEL_DATA
      - name: TRACE_LEVEL_DEVELOPER
      item_type: enum
      name: trace_level
      pos:
        line_end: 105
        line_start: 98
        source_file: /src/haproxy/include/haproxy/trace-t.h
    - enumerators:
      - name: TRACE_LOCKON_NOTHING
        value: '0'
      - name: TRACE_LOCKON_BACKEND
      - name: TRACE_LOCKON_FRONTEND
      - name: TRACE_LOCKON_LISTENER
      - name: TRACE_LOCKON_THREAD
      - name: TRACE_LOCKON_SERVER
      - name: TRACE_LOCKON_CONNECTION
      - name: TRACE_LOCKON_SESSION
      - name: TRACE_LOCKON_STREAM
      - name: TRACE_LOCKON_CHECK
      - name: TRACE_LOCKON_QCON
      - name: TRACE_LOCKON_APPCTX
      - name: TRACE_LOCKON_ARG4
      - name: TRACE_LOCKON_ARG1
      - name: TRACE_LOCKON_ARG2
      - name: TRACE_LOCKON_ARG3
      item_type: enum
      name: trace_lockon
      pos:
        line_end: 124
        line_start: 107
        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_ARG1_PRIV
      pos:
        line_end: 49
        line_start: 48
        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: 50
        line_start: 49
        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: 51
        line_start: 50
        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: 52
        line_start: 51
        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: 53
        line_start: 52
        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: 54
        line_start: 53
        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: 55
        line_start: 54
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX << 0)
    - item_type: preproc_def
      name: TRC_ARG2_PRIV
      pos:
        line_end: 57
        line_start: 56
        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: 58
        line_start: 57
        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: 59
        line_start: 58
        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: 60
        line_start: 59
        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: 61
        line_start: 60
        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: 62
        line_start: 61
        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: 63
        line_start: 62
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX << 8)
    - item_type: preproc_def
      name: TRC_ARG3_PRIV
      pos:
        line_end: 65
        line_start: 64
        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: 66
        line_start: 65
        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: 67
        line_start: 66
        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: 68
        line_start: 67
        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: 69
        line_start: 68
        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: 70
        line_start: 69
        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: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX << 16)
    - item_type: preproc_def
      name: TRC_ARG4_PRIV
      pos:
        line_end: 73
        line_start: 72
        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: 74
        line_start: 73
        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: 75
        line_start: 74
        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: 76
        line_start: 75
        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: 77
        line_start: 76
        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: 78
        line_start: 77
        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: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX << 24)
    - item_type: preproc_def
      name: TRC_ARGS_CONN
      pos:
        line_end: 82
        line_start: 81
        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: 83
        line_start: 82
        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: 84
        line_start: 83
        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: 85
        line_start: 84
        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: 86
        line_start: 85
        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: 87
        line_start: 86
        source_file: /src/haproxy/include/haproxy/trace-t.h
      type_or_value: (TRC_ARG_APPCTX * 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: 136
        line_start: 132
        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
      item_type: struct
      name: trace_ctx
      pos:
        line_end: 150
        line_start: 139
        source_file: /src/haproxy/include/haproxy/trace-t.h
    - fields:
      - name: name
        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: 187
        line_start: 158
        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: 50
        line_start: 49
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000001  '
    - item_type: preproc_def
      name: CF_READ_TIMEOUT
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000004  '
    - item_type: preproc_def
      name: CF_WRITE_EVENT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000100  '
    - item_type: preproc_def
      name: CF_WRITE_TIMEOUT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00000400  '
    - item_type: preproc_def
      name: CF_WAKE_WRITE
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00001000  '
    - item_type: preproc_def
      name: CF_AUTO_CLOSE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00008000  '
    - item_type: preproc_def
      name: CF_STREAMER
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00010000  '
    - item_type: preproc_def
      name: CF_STREAMER_FAST
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00020000  '
    - item_type: preproc_def
      name: CF_WROTE_DATA
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00040000  '
    - item_type: preproc_def
      name: CF_AUTO_CONNECT
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00800000  '
    - item_type: preproc_def
      name: CF_DONT_READ
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x01000000  '
    - item_type: preproc_def
      name: CF_WAKE_ONCE
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x10000000  '
    - item_type: preproc_def
      name: CF_FLT_ANALYZE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x20000000  '
    - item_type: preproc_def
      name: CF_ISRESP
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x80000000  '
    - item_type: preproc_def
      name: CF_MASK_ANALYSER
      pos:
        line_end: 82
        line_start: 81
        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: 117
        line_start: 116
        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: 118
        line_start: 117
        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: 119
        line_start: 118
        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: 120
        line_start: 119
        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: 121
        line_start: 120
        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: 123
        line_start: 122
        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: 124
        line_start: 123
        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: 125
        line_start: 124
        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: 126
        line_start: 125
        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: 127
        line_start: 126
        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: 128
        line_start: 127
        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: 129
        line_start: 128
        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: 131
        line_start: 130
        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: 132
        line_start: 131
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x00010000'
    - item_type: preproc_def
      name: AN_REQ_ALL
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x0001bfbe  '
    - item_type: preproc_def
      name: AN_RES_INSPECT
      pos:
        line_end: 140
        line_start: 139
        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: 141
        line_start: 140
        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: 142
        line_start: 141
        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: 143
        line_start: 142
        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: 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_XFER_BODY
      pos:
        line_end: 146
        line_start: 145
        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: 147
        line_start: 146
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x08000000'
    - item_type: preproc_def
      name: AN_RES_ALL
      pos:
        line_end: 150
        line_start: 149
        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: 153
        line_start: 152
        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: 154
        line_start: 153
        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: 155
        line_start: 154
        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: 156
        line_start: 155
        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: 157
        line_start: 156
        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: 159
        line_start: 158
        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: 160
        line_start: 159
        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: 161
        line_start: 160
        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: 162
        line_start: 161
        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: 163
        line_start: 162
        source_file: /src/haproxy/include/haproxy/channel-t.h
      type_or_value: '0x20000000'
    - item_type: preproc_def
      name: CHN_INFINITE_FORWARD
      pos:
        line_end: 195
        line_start: 194
        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: total
        type: unsigned long long
      - name: analyse_exp
        type: int
      item_type: struct
      name: channel
      pos:
        line_end: 208
        line_start: 197
        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: 11
        line_start: 8
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
    preproc_defs:
    - item_type: preproc_def
      name: QUIC_DGRAM_FL_REJECT
      pos:
        line_end: 29
        line_start: 28
        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: 30
        line_start: 29
        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: 17
        line_start: 14
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
    - fields:
      - name: buf
        type: struct buffer
      - name: dgram_list
        type: struct list
      - name: rxbuf_el
        type: struct mt_list
      item_type: struct
      name: quic_receiver_buf
      pos:
        line_end: 26
        line_start: 22
        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'
        type: unsigned char
      - name: dcid_len
        type: size_t
      - name: saddr
        type: struct sockaddr_storage
      - name: daddr
        type: struct sockaddr_storage
      - name: '*qc'
        type: struct quic_conn
      - name: recv_list
        type: struct list
      - name: handler_list
        type: struct mt_list
      - name: flags
        type: int
      item_type: struct
      name: quic_dgram
      pos:
        line_end: 47
        line_start: 32
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
    - fields:
      - name: dgrams
        type: struct mt_list
      - name: '*task'
        type: struct tasklet
      item_type: struct
      name: quic_dghdlr
      pos:
        line_end: 53
        line_start: 50
        source_file: /src/haproxy/include/haproxy/quic_sock-t.h
    typedefs: []
    union: []
- 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: []
  source_file: /src/haproxy/include/haproxy/counters-t.h
  types:
    enum: []
    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[MAX_TGROUPS]'
        type: "struct {\n\t\tCOUNTERS_SHARED_TG;\n\t}"
      item_type: struct
      name: counters_shared
      pos:
        line_end: 67
        line_start: 62
        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: 97
        line_start: 74
        source_file: /src/haproxy/include/haproxy/counters-t.h
    - fields:
      - name: '*tg[MAX_TGROUPS]'
        type: struct fe_counters_shared_tg
      item_type: struct
      name: fe_counters_shared
      pos:
        line_end: 102
        line_start: 99
        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: 120
        line_start: 105
        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: 156
        line_start: 127
        source_file: /src/haproxy/include/haproxy/counters-t.h
    - fields:
      - name: '*tg[MAX_TGROUPS]'
        type: struct be_counters_shared_tg
      item_type: struct
      name: be_counters_shared
      pos:
        line_end: 161
        line_start: 158
        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: 183
        line_start: 164
        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_TCP
        value: '0x01'
      - name: PR_MODE_SYSLOG
        value: '0x08'
      - name: PR_MODE_HTTP
        value: '0x02'
      - name: PR_MODE_CLI
        value: '0x04'
      - name: PR_MODE_PEERS
        value: '0x10'
      - name: PR_MODE_SPOP
        value: '0x20'
      item_type: enum
      name: pr_mode
      pos:
        line_end: 60
        line_start: 52
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - enumerators:
      - name: PR_SRV_STATE_FILE_UNSPEC
        value: '0'
      - name: PR_SRV_STATE_FILE_NONE
      - name: PR_SRV_STATE_FILE_GLOBAL
      - name: PR_SRV_STATE_FILE_LOCAL
      item_type: enum
      name: PR_SRV_STATE_FILE
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    preproc_defs:
    - item_type: preproc_def
      name: PR_CAP_NONE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0000'
    - item_type: preproc_def
      name: PR_CAP_FE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0001'
    - item_type: preproc_def
      name: PR_CAP_BE
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0002'
    - item_type: preproc_def
      name: PR_CAP_LISTEN
      pos:
        line_end: 75
        line_start: 74
        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: 76
        line_start: 75
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0004      '
    - item_type: preproc_def
      name: PR_CAP_INT
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0008      '
    - item_type: preproc_def
      name: PR_CAP_LB
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0010      '
    - item_type: preproc_def
      name: PR_CAP_HTTPCLIENT
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x0020      '
    - item_type: preproc_def
      name: PR_O_REDISP
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: PR_O_TRANSP
      pos:
        line_end: 83
        line_start: 82
        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: 86
        line_start: 85
        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: 87
        line_start: 86
        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: 88
        line_start: 87
        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: 89
        line_start: 88
        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: 90
        line_start: 89
        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: 92
        line_start: 91
        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: 93
        line_start: 92
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020      '
    - item_type: preproc_def
      name: PR_O_DISPATCH
      pos:
        line_end: 94
        line_start: 93
        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: 95
        line_start: 94
        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: 97
        line_start: 96
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000200      '
    - item_type: preproc_def
      name: PR_O_NULLNOLOG
      pos:
        line_end: 98
        line_start: 97
        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: 99
        line_start: 98
        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: 100
        line_start: 99
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00001000      '
    - item_type: preproc_def
      name: PR_O_PERSIST
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00004000      '
    - item_type: preproc_def
      name: PR_O_LOGASAP
      pos:
        line_end: 103
        line_start: 102
        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: 105
        line_start: 104
        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: 106
        line_start: 105
        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: 107
        line_start: 106
        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: 108
        line_start: 107
        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: 110
        line_start: 109
        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: 111
        line_start: 110
        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: 113
        line_start: 112
        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: 114
        line_start: 113
        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: 115
        line_start: 114
        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: 116
        line_start: 115
        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: 118
        line_start: 117
        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: 119
        line_start: 118
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x08000000 '
    - item_type: preproc_def
      name: PR_O_TCPCHK_SSL
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x10000000      '
    - item_type: preproc_def
      name: PR_O_CONTSTATS
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x20000000      '
    - item_type: preproc_def
      name: PR_O_DISABLE404
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x40000000      '
    - item_type: preproc_def
      name: PR_O2_SPLIC_REQ
      pos:
        line_end: 127
        line_start: 126
        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: 128
        line_start: 127
        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: 129
        line_start: 128
        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: 130
        line_start: 129
        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: 131
        line_start: 130
        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: 132
        line_start: 131
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000010      '
    - item_type: preproc_def
      name: PR_O2_NOLOGNORM
      pos:
        line_end: 133
        line_start: 132
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020      '
    - item_type: preproc_def
      name: PR_O2_LOGERRORS
      pos:
        line_end: 134
        line_start: 133
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000040      '
    - item_type: preproc_def
      name: PR_O2_SMARTACC
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000080      '
    - item_type: preproc_def
      name: PR_O2_SMARTCON
      pos:
        line_end: 136
        line_start: 135
        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: 137
        line_start: 136
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000200      '
    - item_type: preproc_def
      name: PR_O2_CLFLOG
      pos:
        line_end: 138
        line_start: 137
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000400      '
    - item_type: preproc_def
      name: PR_O2_LOGHCHKS
      pos:
        line_end: 139
        line_start: 138
        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: 140
        line_start: 139
        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: 141
        line_start: 140
        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: 143
        line_start: 142
        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: 144
        line_start: 143
        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: 145
        line_start: 144
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00010000 '
    - item_type: preproc_def
      name: PR_O2_NODELAY
      pos:
        line_end: 147
        line_start: 146
        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: 148
        line_start: 147
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00040000      '
    - item_type: preproc_def
      name: PR_O2_CHK_SNDST
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00080000      '
    - item_type: preproc_def
      name: PR_O2_SRC_ADDR
      pos:
        line_end: 151
        line_start: 150
        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: 153
        line_start: 152
        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: 155
        line_start: 154
        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: 156
        line_start: 155
        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: 157
        line_start: 156
        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: 158
        line_start: 157
        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: 163
        line_start: 162
        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: 164
        line_start: 163
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x90000000     '
    - item_type: preproc_def
      name: PR_O2_EXT_CHK
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0xA0000000      '
    - item_type: preproc_def
      name: PR_O2_CHK_ANY
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0xF0000000      '
    - item_type: preproc_def
      name: PR_O3_DONTPARSELOG
      pos:
        line_end: 173
        line_start: 172
        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: 174
        line_start: 173
        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: 178
        line_start: 177
        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: 179
        line_start: 178
        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: 180
        line_start: 179
        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: 181
        line_start: 180
        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: 182
        line_start: 181
        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: 185
        line_start: 184
        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: 186
        line_start: 185
        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: 187
        line_start: 186
        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: 188
        line_start: 187
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000300 '
    - item_type: preproc_def
      name: PR_CK_RW
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000001      '
    - item_type: preproc_def
      name: PR_CK_IND
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000002      '
    - item_type: preproc_def
      name: PR_CK_INS
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000004      '
    - item_type: preproc_def
      name: PR_CK_PFX
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000008      '
    - item_type: preproc_def
      name: PR_CK_ANY
      pos:
        line_end: 198
        line_start: 197
        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: 199
        line_start: 198
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000010      '
    - item_type: preproc_def
      name: PR_CK_POST
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020      '
    - item_type: preproc_def
      name: PR_CK_PSV
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000040      '
    - item_type: preproc_def
      name: PR_CK_HTTPONLY
      pos:
        line_end: 202
        line_start: 201
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000080      '
    - item_type: preproc_def
      name: PR_CK_SECURE
      pos:
        line_end: 203
        line_start: 202
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000100      '
    - item_type: preproc_def
      name: PR_CK_DYNAMIC
      pos:
        line_end: 204
        line_start: 203
        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: 207
        line_start: 206
        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: 208
        line_start: 207
        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: 209
        line_start: 208
        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: 212
        line_start: 211
        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: 213
        line_start: 212
        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: 214
        line_start: 213
        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: 217
        line_start: 216
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: PR_RE_DISCONNECTED
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000002 '
    - item_type: preproc_def
      name: PR_RE_TIMEOUT
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000004 '
    - item_type: preproc_def
      name: PR_RE_401
      pos:
        line_end: 220
        line_start: 219
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000008 '
    - item_type: preproc_def
      name: PR_RE_403
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000010 '
    - item_type: preproc_def
      name: PR_RE_404
      pos:
        line_end: 222
        line_start: 221
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000020 '
    - item_type: preproc_def
      name: PR_RE_408
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000040 '
    - item_type: preproc_def
      name: PR_RE_421
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000080 '
    - item_type: preproc_def
      name: PR_RE_425
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000100 '
    - item_type: preproc_def
      name: PR_RE_429
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000200 '
    - item_type: preproc_def
      name: PR_RE_500
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000400 '
    - item_type: preproc_def
      name: PR_RE_501
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00000800 '
    - item_type: preproc_def
      name: PR_RE_502
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00001000 '
    - item_type: preproc_def
      name: PR_RE_503
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00002000 '
    - item_type: preproc_def
      name: PR_RE_504
      pos:
        line_end: 231
        line_start: 230
        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: 235
        line_start: 231
        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: 239
        line_start: 238
        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: 240
        line_start: 239
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x00020000 '
    - item_type: preproc_def
      name: PR_FL_DISABLED
      pos:
        line_end: 243
        line_start: 242
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x01  '
    - item_type: preproc_def
      name: PR_FL_STOPPED
      pos:
        line_end: 244
        line_start: 243
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x02  '
    - item_type: preproc_def
      name: PR_FL_READY
      pos:
        line_end: 245
        line_start: 244
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x04  '
    - item_type: preproc_def
      name: PR_FL_EXPLICIT_REF
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x08  '
    - item_type: preproc_def
      name: PR_FL_IMPLICIT_REF
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x10  '
    - item_type: preproc_def
      name: PR_FL_PAUSED
      pos:
        line_end: 248
        line_start: 247
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x20  '
    - item_type: preproc_def
      name: PR_FL_CHECKED
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/haproxy/include/haproxy/proxy-t.h
      type_or_value: '0x40  '
    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: 262
        line_start: 252
        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: 271
        line_start: 264
        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: 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: 300
        line_start: 278
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: queue
        type: struct queue
      - name: lbprm
        type: struct lbprm_per_tgrp
      item_type: struct
      name: proxy_per_tgroup
      pos:
        line_end: 306
        line_start: 303
        source_file: /src/haproxy/include/haproxy/proxy-t.h
    - fields:
      - name: obj_type
        type: enum obj_type
      - name: flags
        type: char
      - name: mode
        type: enum pr_mode
      - name: cap
        type: char
      - name: to_log
        type: int
      - name: last_change
        type: unsigned long
      - name: global_list
        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: served
        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: queueslength
        type: unsigned int
      - name: totpend
        type: int
      - name: feconn
        type: unsigned int
      - 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: 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_rules
        type: struct tcpcheck_rules
      - 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 refcount;          /* refcount on this proxy (only
          used for default proxy for now) */\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: load_server_state_from_file
        type: int
      - name: '*server_state_file_name'
        type: char
      - name: filter_configs
        type: struct list
      - name: guid
        type: struct guid_node
      item_type: struct
      name: proxy
      pos:
        line_end: 510
        line_start: 308
        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: 523
        line_start: 512
        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: 536
        line_start: 525
        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: 542
        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: '*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: 553
        line_start: 544
        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: 569
        line_start: 556
        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: 578
        line_start: 572
        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: 276
        line_start: 273
        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_ETMOUT
      - name: HLUA_E_NOMEM
      - name: HLUA_E_AGAIN
      - name: HLUA_E_BTMOUT
      - 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: 241
        line_start: 240
        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: 242
        line_start: 241
        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: '*next'
        type: struct proxy
      - name: capabilities
        type: char
      item_type: struct
      name: hlua_proxy_list_iterator_context
      pos:
        line_end: 226
        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: 230
        line_start: 228
        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: 238
        line_start: 232
        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: 251
        line_start: 244
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields:
      - name: '*ref'
        type: struct hlua_patref
      - name: bref
        type: struct bref
      item_type: struct
      name: hlua_patref_iterator_context
      pos:
        line_end: 257
        line_start: 253
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields: []
      item_type: struct
      name: hlua
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields: []
      item_type: struct
      name: hlua_socket
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/haproxy/include/haproxy/hlua-t.h
    - fields: []
      item_type: struct
      name: hlua_rule
      pos:
        line_end: 265
        line_start: 265
        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_APPLET
      - name: OBJ_TYPE_SERVER
      - name: OBJ_TYPE_PROXY
      - name: OBJ_TYPE_APPCTX
      - name: OBJ_TYPE_CONN
      - name: OBJ_TYPE_SRVRQ
      - name: OBJ_TYPE_SC
      - name: OBJ_TYPE_STREAM
      - name: OBJ_TYPE_DGRAM
      - name: OBJ_TYPE_ENTRIES
      - name: OBJ_TYPE_CHECK
      item_type: enum
      name: obj_type
      pos:
        line_end: 49
        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_UNSET_VAR
      - name: SPOP_ACT_T_SET_VAR
        value: '1'
      - name: SPOP_ACT_TYPES
      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_TOO_BIG
        value: '0x03'
      - name: SPOP_ERR_TOUT
        value: '0x02'
      - name: SPOP_ERR_IO
        value: '0x01'
      - 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_RES
        value: '0x0d'
      - name: SPOP_ERR_UNKNOWN
        value: '0x63'
      - name: SPOP_ERR_FRAG_NOT_SUPPORTED
        value: '0x0a'
      - name: SPOP_ERR_ENTRIES
      - name: SPOP_ERR_INTERLACED_FRAMES
        value: '0x0b'
      - 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_SESS
      - name: SPOP_SCOPE_TXN
      - name: SPOP_SCOPE_REQ
      - name: SPOP_SCOPE_RES
      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_INT64
      - name: SPOP_DATA_T_INT32
      - name: SPOP_DATA_T_UINT32
      - name: SPOP_DATA_T_BOOL
      - 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_AGENT_HELLO
        value: '101'
      - name: SPOP_FRM_T_HAPROXY_HELLO
        value: '1'
      - name: SPOP_FRM_T_HAPROXY_DISCON
      - name: SPOP_FRM_T_HAPROXY_NOTIFY
      - 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
  - 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
  - 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: 358
        line_start: 352
        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
  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_HEAD
      - name: HTTP_METH_GET
      - name: HTTP_METH_PUT
      - 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_BEARER
      - name: HTTP_AUTH_DIGEST
      - name: HTTP_AUTH_UNKNOWN
        value: '0'
      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_PATH_DONE
      - name: URI_PARSER_STATE_AUTHORITY_DONE
      - name: URI_PARSER_STATE_SCHEME_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_ABSURI_OR_AUTHORITY
      - name: URI_PARSER_FORMAT_ABSPATH
      - 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: 251
        line_start: 237
        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
      item_type: struct
      name: sample_conv
      pos:
        line_end: 267
        line_start: 254
        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: 274
        line_start: 270
        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
      item_type: struct
      name: sample_fetch
      pos:
        line_end: 290
        line_start: 277
        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: 298
        line_start: 293
        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: 304
        line_start: 301
        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: 310
        line_start: 307
        source_file: /src/haproxy/include/haproxy/sample-t.h
    typedefs:
    - item_type: typedef
      name: (*sample_cast_fct)(struct sample *smp)
      pos:
        line_end: 312
        line_start: 312
        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: 232
        line_start: 226
        source_file: /src/haproxy/include/haproxy/sample-t.h
- function_names:
  - quic_tp_cid_dump
  - quic_tp_version_info_dump
  - quic_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: RESTRICTED_THREADGROUP_TAKEOVER
        value: '1'
      - name: FULL_THREADGROUP_TAKEOVER
        value: '2'
      item_type: enum
      name: threadgroup_takeover
      pos:
        line_end: 118
        line_start: 114
        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_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_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: GDBG_CPU_AFFINITY
      pos:
        line_end: 91
        line_start: 90
        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: 93
        line_start: 92
        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: 94
        line_start: 93
        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: 95
        line_start: 94
        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: 96
        line_start: 95
        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: 97
        line_start: 96
        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: 98
        line_start: 97
        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: 99
        line_start: 98
        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: 100
        line_start: 99
        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: 101
        line_start: 100
        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: 102
        line_start: 101
        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: 103
        line_start: 102
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x0400 '
    - item_type: preproc_def
      name: WARN_ANY
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x00000001 '
    - item_type: preproc_def
      name: WARN_FORCECLOSE_DEPRECATED
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/haproxy/include/haproxy/global-t.h
      type_or_value: '0x00000002'
    - item_type: preproc_def
      name: WARN_EXEC_PATH
      pos:
        line_end: 124
        line_start: 123
        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\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\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: 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
      item_type: struct
      name: global
      pos:
        line_end: 265
        line_start: 129
        source_file: /src/haproxy/include/haproxy/global-t.h
    typedefs: []
    union: []
- function_names:
  - sc_ic
  - sc_oc
  - sc_ib
  - sc_ob
  - 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_chk_rcv
  - sc_chk_snd
  - 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_abort
  - sc_schedule_shutdown
  - sc_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/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               /* 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_B
        value: '0x0b'
      - name: QUIC_FT_STREAM_F
        value: '0x0f'
      - 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_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'
      - name: QUIC_FT_PING
        value: '0x01'
      - name: QUIC_FT_STOP_SENDING
        value: '0x05'
      - name: QUIC_FT_STREAM_9
        value: '0x09'
      - name: QUIC_FT_MAX_STREAM_DATA
        value: '0x11'
      - name: QUIC_FT_STREAM_D
        value: '0x0d'
      - 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_MAX
      - name: QUIC_FT_ACK
        value: '0x02'
      - name: QUIC_FT_CRYPTO
        value: '0x06'
      - name: QUIC_FT_STREAM_A
        value: '0x0a'
      - name: QUIC_FT_MAX_STREAMS_BIDI
        value: '0x12'
      - name: QUIC_FT_STREAM_E
        value: '0x0e'
      - name: QUIC_FT_STREAMS_BLOCKED_BIDI
        value: '0x16'
      - name: QUIC_FT_PATH_CHALLENGE
        value: '0x1a'
      - name: QUIC_FT_HANDSHAKE_DONE
        value: '0x1e'
      item_type: enum
      name: quic_frame_type
      pos:
        line_end: 82
        line_start: 46
        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: 295
        line_start: 294
        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: 296
        line_start: 295
        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: 297
        line_start: 296
        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: 298
        line_start: 297
        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: 299
        line_start: 298
        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: 300
        line_start: 299
        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: 301
        line_start: 300
        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: 302
        line_start: 301
        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: 303
        line_start: 302
        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: 304
        line_start: 303
        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: 305
        line_start: 304
        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: 306
        line_start: 305
        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: 307
        line_start: 306
        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: 308
        line_start: 307
        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: 309
        line_start: 308
        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: 310
        line_start: 309
        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: 311
        line_start: 310
        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: 313
        line_start: 312
        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: data[QUIC_TOKEN_LEN]
        type: unsigned char
      item_type: struct
      name: qf_new_token
      pos:
        line_end: 164
        line_start: 161
        source_file: /src/haproxy/include/haproxy/quic_frame-t.h
    - fields:
      - name: id
        type: uint64_t
      - name: '*stream'
        type: struct qc_stream_desc
      - 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: 188
        line_start: 166
        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: 192
        line_start: 190
        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: 197
        line_start: 194
        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: 201
        line_start: 199
        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: 205
        line_start: 203
        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: 210
        line_start: 207
        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: 214
        line_start: 212
        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: 224
        line_start: 216
        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: 228
        line_start: 226
        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: 232
        line_start: 230
        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: 236
        line_start: 234
        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: 243
        line_start: 238
        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: 249
        line_start: 245
        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: 284
        line_start: 251
        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: 291
        line_start: 288
        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_TCP
        value: '0x01'
      - name: HA_PROTO_UDP
        value: '0x02'
      - name: HA_PROTO_QUIC
        value: '0x04'
      - name: HA_PROTO_ANY
        value: '0xff'
      item_type: enum
      name: ha_proto
      pos:
        line_end: 178
        line_start: 170
        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: 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: 167
        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
  - 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: line
        type: unsigned int
      - name: size
        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(64);\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_PRV
      - name: CEB_WM_NXT
      - name: CEB_WM_KEQ
      - name: CEB_WM_LST
      - 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_U64
      - name: CEB_KT_U32
      - name: CEB_KT_IM
      - 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_NEON
        value: '4'
      - name: XXH_AVX512
        value: '3'
      - name: XXH_SSE2
        value: '1'
      - name: XXH_AVX2
        value: '2'
      - 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_STRING
        value: '11'
      - name: MJSON_TOK_NUMBER
        value: '12'
      - name: MJSON_TOK_TRUE
        value: '13'
      - name: MJSON_TOK_KEY
        value: '1'
      - 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: 152
        line_start: 151
        source_file: /src/haproxy/addons/deviceatlas/da.c
      type_or_value: '"DAPROPS"'
    - item_type: preproc_def
      name: DA_MAX_HEADERS
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/haproxy/addons/deviceatlas/da.c
      type_or_value: '24'
    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: 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.daset = 0,\n\t.separator = '|',\n}"
      pos:
        line_end: 35
        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_BOOLEAN
      - name: DA_TYPE_INTEGER
      - name: DA_TYPE_NUMBER
      - name: DA_TYPE_STRING
      - 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_INVALID_JSON
      - name: DA_NOMEM
      - name: DA_FORMAT_ERROR
      - name: DA_SYS
      - name: DA_NOTIMPL
      - name: DA_NOTFOUND
      - name: DA_REGEXBAD
      - name: DA_NOMORE
      - name: DA_INVALID_COOKIE
      - name: DA_STATUS_LAST
      - name: DA_INTERNAL_ERROR
      - name: DA_INVALID_TYPE
      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: cache_size
        type: unsigned int
      - name: __reserved[15]
        type: unsigned int
      item_type: struct
      name: da_config
      pos:
        line_end: 146
        line_start: 143
        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: 519
        line_start: 494
        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: 536
        line_start: 531
        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: 547
        line_start: 542
        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: 578
        line_start: 559
        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: 586
        line_start: 583
        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: 596
        line_start: 593
        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_DOM
      - name: FLT_OT_PARSE_INVALID_CTX
      - 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_WAIT
        value: '0'
      - name: FLT_OT_RET_IGNORE
        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_LOG
      - name: FLT_OT_EVENT_SAMPLE_BAGGAGE
      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_GROUP_ID
      - name: FLT_OT_ARG_FLT_CONF
        value: '0'
      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: 198
        line_start: 193
        source_file: /src/haproxy/addons/promex/service-prometheus.c
    - enumerators:
      - name: PROMEX_BACK_STATE_DOWN
        value: '0'
      - name: PROMEX_BACK_STATE_UP
      - name: PROMEX_BACK_STATE_COUNT
      item_type: enum
      name: promex_back_state
      pos:
        line_end: 210
        line_start: 205
        source_file: /src/haproxy/addons/promex/service-prometheus.c
    - enumerators:
      - name: PROMEX_SRV_STATE_DOWN
        value: '0'
      - name: PROMEX_SRV_STATE_NOLB
      - name: PROMEX_SRV_STATE_UP
      - name: PROMEX_SRV_STATE_DRAIN
      - name: PROMEX_SRV_STATE_MAINT
      - name: PROMEX_SRV_STATE_COUNT
      item_type: enum
      name: promex_srv_state
      pos:
        line_end: 225
        line_start: 217
        source_file: /src/haproxy/addons/promex/service-prometheus.c
    preproc_defs:
    - item_type: preproc_def
      name: PROMEX_MAX_NAME_LEN
      pos:
        line_end: 92
        line_start: 91
        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: 98
        line_start: 97
        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: 69
        line_start: 66
        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: 75
        line_start: 72
        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: modules
        type: struct list
      - name: filters
        type: struct eb_root
      item_type: struct
      name: promex_ctx
      pos:
        line_end: 86
        line_start: 78
        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_CAP
        value: '100'
      - name: HA_WURFL_DATA_TYPE_PROPERTY
        value: '300'
      - name: HA_WURFL_DATA_TYPE_VCAP
        value: '200'
      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_process_match
  - _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: 50
        line_start: 47
        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_COOKIE
        value: 1 << 4
      - name: FIFTYONE_DEGREES_EVIDENCE_QUERY
        value: 1 << 3
      - name: FIFTYONE_DEGREES_EVIDENCE_SERVER
        value: 1 << 2
      - name: FIFTYONE_DEGREES_EVIDENCE_HTTP_HEADER_IP_ADDRESSES
        value: 1 << 1
      - name: FIFTYONE_DEGREES_EVIDENCE_IGNORE
        value: 1 << 7
      item_type: enum
      name: e_fiftyone_degrees_evidence_prefix
      pos:
        line_end: 159
        line_start: 152
        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: 58
        line_start: 56
        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: 61
        line_start: 59
        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: 64
        line_start: 62
        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: 69
        line_start: 65
        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: 100
        line_start: 98
        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: 110
        line_start: 105
        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: 133
        line_start: 130
        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: 54
        line_start: 52
        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: 80
        line_start: 78
        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: 84
        line_start: 82
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_collection_item_t
      pos:
        line_end: 88
        line_start: 86
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_list_t
      pos:
        line_end: 92
        line_start: 90
        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: 96
        line_start: 94
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_result_hash_t
      pos:
        line_end: 113
        line_start: 111
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_resource_manager_t
      pos:
        line_end: 123
        line_start: 121
        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: 128
        line_start: 125
        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: 142
        line_start: 140
        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: 146
        line_start: 144
        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: 150
        line_start: 148
        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: 163
        line_start: 161
        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: 168
        line_start: 165
        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: 172
        line_start: 170
        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: 189
        line_start: 174
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    - fields: []
      item_type: struct
      name: fiftyone_degrees_property_available_t
      pos:
        line_end: 195
        line_start: 193
        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: 206
        line_start: 201
        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: 215
        line_start: 210
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
    typedefs:
    - item_type: typedef
      name: bool
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type: int
    - item_type: typedef
      name: byte
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type: unsigned char
    - item_type: typedef
      name: fiftyoneDegreesResultsHash
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type: fiftyoneDegreesResultHashArray
    - item_type: typedef
      name: fiftyoneDegreesHeaders
      pos:
        line_end: 138
        line_start: 138
        source_file: /src/haproxy/addons/51degrees/dummy/v4hash/hash/hash.h
      type: fiftyoneDegreesHeaderArray
    - item_type: typedef
      name: fiftyoneDegreesPropertiesAvailable
      pos:
        line_end: 199
        line_start: 199
        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_INCORRECT_VERSION
      - name: DATA_SET_INIT_STATUS_INSUFFICIENT_MEMORY
      - name: DATA_SET_INIT_STATUS_FILE_NOT_FOUND
      - 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: 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: NEAREST
      - name: CLOSEST
      - name: EXACT
      - name: NUMERIC
      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_INSUFFICIENT_MEMORY
      - 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_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: []
